Jenkins Gitlab
一、基本环境
1. docker
2. 主机名、IP、selinux
$ hostnamectl set-hostname jenkins
$ nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.119.148/24 ipv4.gateway 192.168.119.2 autoconnect yes
$ nmcli con up ens33
$ echo "nameserver 192.168.119.2" >> /etc/resolv.conf
$ setenforce 0
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
二、Jenkins
1. 安装Jenkins
$ docker pull jenkinsci/blueocean
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkinsci/blueocean latest c56b701dbca2 15 hours ago 745MB
2. 启动Jenkins
$ docker volume create jenkins_data
$ docker run -d -u root --restart always \
-p 8080:8080 -p 50000:50000 \
-v jenkins_data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged \
--name jenkins-server \
jenkinsci/blueocean
3. 防火墙
$ firewall-cmd --add-port= 8080/tcp --permanent
$ firewall-cmd --add-port= 50000/tcp --permanent
$ firewall-cmd --reload
$ systemctl stop firewalld
$ systemctl disable firewalld
4. 安装后设置向导
$ docker logs jenkins-server
.. .略.. .
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
0901b4d2ab524d8aa4010054759ffd71
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
.. .略.. .
4.1 访问 192.168.119.128:8080
4.2 安装插件
4.3 创建管理员账户
4.4 开始使用
三、配置jenkins从Gitlab获取代码
1. 安装插件
2. gitlab创建项目
3. 建立一对公私密钥对
$ docker exec -it jenkins-server /bin/bash
$ su - jenkins
$ ssh-keygen -t rsa
4. 上传刚生成的公钥到gitlab
5. 将私钥添加到jenkins上
6. 在jenkins上创建任务
7. 添加项目仓库地址
$ docker exec -it gitlab-ce /bin/bash
$ cat /opt/gitlab/version-manifest.json | grep build_version
"build_version" : "13.10.3" ,
8. 测试构建
四、配置Gitlab Hook
1. 添加插件
Gitlab Hook
Build Authorization Token Root
Publish Over SSH
Gitlab Authentication
Gitlab
Git Parameter
2. 配置构建触发器
3. gitlab配置Hook
3.1 SSL验证取消
3.2 gitlab配置Hook
3.3 测试
3.4 可以到Jenkins上,看到项目会自动构建
五、Jenkins自动拉取
1. gitlab创建test-dev项目
$ git clone http://192.168.119.128:8081/development/test-dev.git
$ git checkout develop
$ echo "# this is test py file" > aaa.py
$ git add aaa.py
$ git commit -m "first aaa.py file"
$ git push -u origin develop
2. 查看gitlab项目
3. 查看Jenkins自动拉取