jenkins+git+nginx持续代码发布
环境配置
1.主机准备
操作系统 | 主机 | IP地址 | 安装软件 | 扮演角色 |
---|---|---|---|---|
centos7 | git-node05 | 10.1.1.15 | git | git版本控制服务器 |
centos7 | nginx-node04 | 10.1.1.14 | git/nginx(tomcat+java) | web服务器 |
centos7 | jenkins-node03 | 10.1.1.13 | git/jenkins/java | jenkins |
windows10 | **** | 192.168.31.69 | git | 开发人员主机 |
2.centos7主机上环境部署(三台centos7系统都要安装)
2-1.关闭firewalld防火墙
##临时关闭firewalld防火墙,重启服务器失效
systemctl stop firewalld
##永久关闭firewalld防火墙,必须重启服务器生效
systemctl disable firewalld
2-2.关闭selinux
##临时关闭,服务器重启失效
setenforce 0
##永久关闭,服务器重启生效,与setenforce一起使用,就可以不用重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
##查看当前selinux状态
getenforce
2-3.主机名解析
echo 10.1.1.13 jenkins-node03 >>/etc/hosts
echo 10.1.1.14 nginx-node04 >>/etc/hosts
echo 10.1.1.15 git-node05 >>/etc/hosts
2-4.dns server服务器地址
echo nameserver 202.96.128.86 >>/etc/resolv.conf
2-5.git安装(安装方法有两种)
##方法1:源码安装
##安装依赖包
yum install -y zlib-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker openssl-devel libcurl-devel expat-devel
##解压
tar -xf git-1.8.4.1.tar.gz
cd git-1.8.4.1/
##make编译安装
make prefix=/usr/local/git-1.8.4.1 all
make prefix=/usr/local/git-1.8.4.1 install
ln -s git-1.8.4.1 git
##方法2:yum安装
yum install -y git
##查看版本()
git --version
3.git服务器部署
useradd git
cd /home/git
mkdir .ssh
chmod 700 .ssh
##添加jenkins服务器ssh免密登录
echo 'jenkins服务器jenkins用户公钥'>/home/git/.ssh/authorized_keys
4.nginx服务器部署
##创建nginx用户
useradd nginx -s /sbin/nologin
##安装依赖
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
##下载nginx-1.16.1版
wget http://nginx.org/download/nginx-1.16.1
##解压
tar -xf nginx-1.16.1
cd nginx-1.16.1
##编译安装
./configure --prefix=/usr/local/nginx-1.16.1 --with-pcre --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
make && make install -j 4
##创建软连接
ln -s /usr/local/nginx-1.16.1 /usr/local/nginx
##我们用root做ssh免密登录,这里也可以用其他用户,但是注意权限
echo 'jenkins服务器jenkins用户公钥'>~/.ssh/authorized_keys
5.jenkins服务器部署
5-1.安装jenkins
jenkins安装部署参考地址:https://blog.csdn.net/chenliang1038/article/details/103735235
5-2.配置jenkins环境,及ssh免密登录
##jenkins使用的用户jenkins,通过/etc/passwd可以看到jenkins用户家目录是/var/lib/jenkins,要想免密登录,就必须要有密钥对,并添加到家目录中.ssh,.ssh权限是700,id_rsa.pub公钥权限644 id_rsa私钥权限600
cat /etc/passwd |grep jenkins
jenkins:x:998:996:Jenkins Automation Server:/var/lib/jenkins:/bin/false
mkdir /var/lib/jenkins/.ssh
chmod 700 /var/lib/jenkins/.ssh
##因为jenkins安装时,创建的jenkins用户是不能登录的,所用通过root用户创建密钥对,cp到jenkin用户家目录中就可以了,但是记得改权限
ssh-keygen -t rsa
cp ~/.ssh/* /var/lib/jenkins/.ssh
##个人建议,复制完密钥对后,重新生成root密钥对,或者直接删除,为了安全起见
chown -R jenkins:jenkins /var/lib/jenkins/.ssh
5-3.验证jenkins是否能ssh免密登录
cat /etc/passwd |grep jenkins
jenkins:x:998:996:Jenkins Automation Server:/var/lib/jenkins:/bin/false
##把/bin/flase给为/bin/bash,更改后:
cat /etc/passwd |grep jenkins
jenkins:x:998:996:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
##ssh连接nginx服务器
ssh root@10.1.1.14
###ssh连接git服务器
ssh git@10.1.1.15
注意:验证完了,注意把jenkins登录shell改回/bin/false
6.通过jenkins部署代码
6-1.登录jenkins的web界面
浏览器输入:http://10.1.1.13:8080/
6-2.设置jenkins凭证
git常用命令:
6-3.配置需要部署代码的web服务器
步骤:“系统管理”--------->“系统配置”------>向下找“Publish over SSH”这个插件配置
6-4.创建一个任务(大家通常称呼job)
6-5.配置test02任务参数
配置git参数化构建
配置从节点
这个不说了,没有就不用配置
配置git源代码URL
构建
步骤:点击“增加构建步骤”---->选择“Send files or execute commands over SSH”在配置参数
保存退出
构建
构建的结果
到nginx服务器查看
[root@nginx-node04 user]# tree /webapps/
/webapps/
├── user
│ ├── index.html
│ ├── index.php
│ └── index.py
└── user2019-12-29.tar.gz
1 directory, 4 files
到此ok 哈哈--------------------------------------------------------------------------------