Foreman服务器搭建和jenkins plugin的jelly控件添加及问题

如题,这周的工作主要围绕着Foreman服务器的搭建和Jenkinsplugin的UI实现上,其间并不顺利,结果也差强人意。

1.Foreman服务器的搭建和问题

操作系统为CentOS6.4x86_64,安装应用开发版,安装完毕重启进入操作界面,打开终端进入root模式,输入

Yum -y install ruby

自动安装Ruby应用。安装完成后安装插件EPEL repo和Percona repo。接下来最好将防火墙和selinux关闭。在root模式下输入setenforce 0即可将selinux关闭。

然后通过yum源下载安装foreman,步骤如下:

yum -y installhttp://yum.theforeman.org/releases/1.1/el6/x86_64/foreman-release.rpm
yum -y install foreman-installer

接着通过hostname修改一下主机名,主机名要求是完整的域名,比如happy.localhost.com。最后直接输入foreman-installer执行服务器搭建,但初次搭建服务器过程中等待时间较长,可能出现比较多报错甚至无法继续搭建过程。第一次不成功试第二次,同样直接输入foreman-installer执行,最终进行完99%进度后出现两个报错,是关于rubygem bootdisk的,涉及的插件是ruby193-rubygem-foreman_disk,关于这个插件在redhat.com看到一点信息,百度搜索到的信息就三条,这成了我这些天搭建Foreman服务器的死结。

2.Jenkins plugin的jelly控件添加及问题

本plugin开发应用扩展节点为BuildWrapper,类的声明为

public class ForemanSetup extendsBuildWrapper{
//继承扩展节点BuildWrapper
}

2.1.应用节点实现界面

应用节点实现界面如下图:


名称通过内部类DescriptorImpl方法getDisplayName()提交,源码如下:

publicString getDisplayName() {
     return"Setup host via Foreman";
}

2.2.UI设计

Foreman配置界面如下图:


Jelly控件entry添加源码段如下:

 <f:entry title="User" >
   <f:textbox name="user"/>
 </f:entry>
  
 <f:entry title="Password" >
   <f:textbox name="password"/>
 </f:entry>
  
 <f:entry title="URL" >
   <f:textbox name="url"/>
 </f:entry>
 <f:entry>
     <f:hetero-list addCaption="Add toForeman"></f:hetero-list>
 </f:entry>

2.3.Foreman添加Host和Hostgroup界面整体

Foreman添加主机和主机群组界面以及构建环境整体界面如下:


添加主机和主机群组界面jelly实现源码段:

 <f:entry title="Foreman Host">    
 <f:repeatable var="setuphostEntry"items="${instance.buildhostEntries}"> 
 <table width="100%">
 <f:entry title="Host" >
   <f:textbox name="host"/>
 </f:entry>      
 <f:entry title="Build Host">
   <f:checkbox name="buildhost"/>
 </f:entry>
 <f:entry title="">
                    <divalign="right">
                       <f:repeatableDeleteButton/>
                    </div>
 </f:entry>
 </table>
 </f:repeatable>
 </f:entry>
 
 <f:entry title="ForemanHostgroup">
    <f:repeatable var="setuphostgroupEntry"items="${instance.buildhostgroupEntries}">
         <table width="100%">
               <f:entrytitle="Hostgroup" >
                   <f:textboxname="hostgroup"/>
               </f:entry>               
               <f:entry title="BuildHostgroup" >
                   <f:checkboxname="buildhostgroup"/>
               </f:entry>
        
           <f:entry title="">
                    <divalign="right">
                       <f:repeatableDeleteButton/>
                   </div>
           </f:entry>
           </table>
    </f:repeatable>
 </f:entry>


2.4.界面实现遇到问题

到现在还并没有完全实现“Add to Foreman”按钮的下拉选择添加功能。

Acknowledgements

感谢边瑞峰导师提供讨论指导和参考资料,在这个过程中我受益匪浅,古语有云“朋友易结,良师难寻。”

References

1.Foreman安装指导教程

http://my.itwnik.com/2013/06/step-by-step-installationconfiguration-guide-for-foremanpuppet/

2. Jelly Taglib references

https://jenkins-ci.org/maven-site/jenkins-core/jelly-taglib-ref.html#form:repeatable

3. Jenkins插件开发 - 混世魔王 - 开源中国社区

http://my.oschina.net/songcser/blog/159170


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值