最近更换CI,多方研究选上jenkins作为新的CI,这里简要介绍使用docker搭建配置jenkins的流程,以及遇到的一些坑。直接利用docker镜像跑jenkins,不仅简化了jenkins的安装和配置,而且再也不用担心换机器还要重复配置半天了。
个人原创,版权所有,转载请注明原文出处,并保留原文链接:
https://www.embbnux.com/2016/06/04/how_to_configure_jenkins_with_docker/
一、利用docker镜像安装jenkins
需要事先安装好docker, docker安装请看docker hub里有官方的jenkins镜像,直接pull下来就可以跑了.
docker pull jenkins
这里运行jenkins docker容器的机器为ubuntu, 运行之前给jenkins容器新建个文件夹,作为volume,用来保存jenkins数据,这里其实重启容器,数据也不会就此丢失。
mkdir /var/jenkins sudo chown 1000:1000 /var/jenkins docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins:/var/jenkins_home --name my_jenkins -d jenkins
这样jenkins就成功跑起来了。可以直接通过机器的8080端口访问jenkins,也可以通过nginx代理80端口的流量到8080.
本地的/var/jenkins就相当于容器里jenkins用户的用户主目录,所以要保证该目录的权限为uid为1000的用户目录。
二、配置jenkins
1. 配置用户权限
首次进入jenkins是没有权限控制的,所以首先要配置jenkins的安全。进入系统管理>>安全设置,选择允许用户注册保持,然后注册个用户。再回到安全设置,授权策略,选择项目矩阵授权策略,在添加刚刚注册的用户,设为管理员,然后保存,就会被退出。用刚才注册的用户登录继续配置。
2、配置认证权限
配置git权限,从系统管理进去Manage Credentials,选择添加Credentials,选择ssh username with private key,key的位置选择位于master的~/.ssh目录下。然后回到我们的服务器上/var/jenkins目录下建立文件夹.ssh,把ssh私钥保存在.ssh文件,权限600, 然后jenkins的身份认证就是用该私钥完成,公钥放在需要登录的机器上就可以了。
3、配置从机节点
首先配置作为从机的机器具有java环境,直接apt-get安装就可以了。
sudo apt-get install openjdk-7-jdk
以及把之前jenkins的公钥放着这个从机上相应用户名的~/.ssh/authorized_keys下,这样jenkin主机就能无密码登录从机了。
然后回到jenkins先升级下插件:SSH Slaves plugin,然后进入系统管理>>管理节点里面点击添加节点,填名字,以机器ip,目录,ssh端口相应的Credentials即可。保存后回到节点页面,点击连接节点,则会开始自动配置从机。主要是从主机下载slave.jar运行。
最后就是针对不同的项目进行相应的配置,这里就不讲诉了。