五、gitlab+Jenkins+nginx实现自动化
1.1 Jenkins安装Gitlab所需插件
1.2 Jenkins创建freestyle项目
1.2.1 创建自由风格的项目
1.2.2 配置源码管理
报错:
无法连接仓库。需要配置ssh密钥到gitlab中的用户上。
1.2.3 gitlab创建Jenkins用户
1、创建Jenkins用户
2、Jenkins服务配置git
[root@jenkins ~]
[root@jenkins ~]
[root@jenkins ~]
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzPmI4IsT8vTQBY3jiW7f/K8g0CtMQBvsTg/MLbA4LK/yDioOBMcchUlJ56aYliYUDbwGivgbMFZKgH+PjWgwbj5g/MqQFhnK450OeDtREMRJHzMImTsWNPQ8n2i18zGOPlQduS9ah6dndJM75G7ZYtj0M99TBnjDJD9llcQXf72Wvgy1R86bIOpJw4ukz0IKB9hrNiRHRu9iN4ccngYuW61DiDR22e0+AfRylNUXCPIRBROfKO75tGCoDlzLn8oFTehoHFCeH9IIHhGG8o7ZpGFq0KNTKyeCPXORw2ldfWD4/BW78Ifwe8QWXPe0v4y7XrWuzJ0m5zPlP+r2iFw09 root@jenkins
3、验证Jenkins是否可以通过ssh拉取代码
[root@jenkins webhp]
[root@jenkins webhp]
[root@jenkins ~]
Cloning into 'webhp'...
The authenticity of host '192.168.222.133 (192.168.222.133)' can't be established.
ECDSA key fingerprint is SHA256:FwhcfCp+J2+nTXfRbDcXruRsxJSKRAAbb7v9zdjARPc.
ECDSA key fingerprint is MD5:6c:75:bf:77:e7:8c:d6:aa:14:90:0e:3d:15:f2:17:04.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.222.133' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 22 (delta 3), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (22/22), 355.19 KiB | 0 bytes/s, done.
Resolving deltas: 100% (3/3), done.
1.2.4 配置私钥为Jenkins的凭据
1、修改Jenkins的启动用户为root
[root@jenkins ~]
JENKINS_USER="root"
[root@jenkins ~]
User=root
Group=root
[root@jenkins ~]
[root@jenkins ~]
[root@jenkins ~]
root 2593 1 59 20:16 ? 00:00:18 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
2、jenkins服务器和gitlab服务器做免密
[root@jenkins workspace]
1.3 测试Jenkins拉取线上代码
1、构建触发器
2、构建环境
3、构建
4、构建后的操作
5、开始构建
[root@jenkins workspace]
/var/lib/jenkins/workspace
[root@jenkins workspace]
webhp-gitlab项目 webhp-gitlab项目@tmp
1.4 webhp项目自动发布
1.4.1 配置发布脚本
1、jenkins主机和nginx主机配置免密
2、编写shell脚本
[root@jenkins ~]
[root@jenkins shell]
DATE=$(date +%Y-%m-%d_%H:%M)
webhp_dir="/root/webhp"
web_host="192.168.222.133"
WORKSPACE="/var/lib/jenkins/workspace"
get_code(){
find $WORKSPACE -name "*tmp" | xargs rm -rf
tar -zcf /opt/webhp-${DATE}.tar.gz -C $WORKSPACE .
}
copy_code(){
scp -r /opt/webhp-${DATE}.tar.gz root@${web_host}:/opt
ssh root@${web_host} "tar -xf /opt/webhp-${DATE}.tar.gz -C /opt && \
ls -l /opt && \
cp -rf ${webhp_dir} ${webhp_dir}.bak && \
rm -rf ${webhp_dir} && \
mv /opt/webhp-gitlab项目-线上发布 ${webhp_dir} "
}
deploy(){
get_code
copy_code
}
deploy
1.4.2 修改代码并上线
1、index.html
<h1 style="color: blue; text-align: center; width: 1500px; background-color:cornsilk; height: 50px;">强强科技集团-v1.5版本</h1>
2、Jenkins配置