简单记录下jenkins 和 swarm 结合安装使用过程和注意事项
安装配置过程:
1、各服务器安装docker (不详细介绍了,网上都有)。
2、安装warm (网上有详细安装方法,比如 http://www.cnblogs.com/rio2607/p/4445968.html,推进用第二种安装方法,即以静态IP形式加入warm 集群)。
3、jenkins 插件安装。安装docker 插件即可。因为swarm 的集群把多个的docker API 集合起来变为一个API 入口,而且这个swarm API 和 docker API 基本一致,即swarm API 是兼容docker API ,让用户在操作docker 集群时,感觉和操作一个的docker 一样。
安装插件后进入jenkins 系统管理,添加一个云,可以到如图所示:
需要注意的几个选项:
docker URL ,这里填docker API URL地址,注意端口号,如果填的 是warm 集群,那这个插件管理就是这个docker URL所在主机内的的 docker容器,如果填的是swarm API 地址,则管理的是swarm 集群。
Container Cap,总的管理的最大容器数量,即最多起多少容器。
docker template,容器镜像模板,根据业务需要添加,一般这种业务添加一个模板,
Instance Capacity,该镜像能启动的最大数量。
Docker Image,容器镜像名,后面再提如何制作jenkins slave docker 镜像
container setting,容器配置,一些容器的高级配置,可以不配。因为我这边不想每个容器都有自己的独立svn下载地址,就让容器映射宿主机的文件夹,这个一个job更新svn后,另外一个job不用重新更新。
Labels,该类镜像名,这条最最重要,jenkins job 就根据这个名字来判断job是否在容器内运行。
Availability ,可用性,即启动的容器策略,可以选容器用完就删除,或者长久保留。
Launch method,即容器以slave加入jenkin master方式,当前只支持ssh ,这就要求容器镜像支持ssh 密钥登录,即容器镜像安装有ssh服务器和ssh私钥,这里设置相应的公钥。
Pull strategy,镜像拉取策略,可以从网上下,也可以各warm 节点本地准备好。建议选never pull ,各节点本地准备好,省去下载时间,不然长时间的下载会让用户以为系统有问题。
使用:
新建一个job,将job 运行环境限定在swarm上运行。
运行job,过1~2分钟,一个新的容器就启动起来了。job 在该容器内运行。
docker jenkins slave镜像制作:
1、下载基础镜像 ubuntu 或者 centos
2、用该镜像启动容器注意带22端口(以后master 用22端口来将容器加入master)
3、在容器内安装openssh-server,java (注意要和master java同版本)
3、在容器内安装必要的业务需要的软件,比如编译需要的gcc之类
4、生成ssh密钥,将ssh 公钥复制到jenkin server 里面的密钥管理里,后续jenkin server根据该密钥登录容器。
5、提交容器,生成镜像,再加镜像复制到其他swarm 节点上。