环境
hostname:vm72 ip:192.168.1.72 # jenkins服务器
hostname:vm73 ip:192.168.1.73 # 部署机器
hostname:vm114 ip:192.168.1.114 # git 服务器
jenkins安装
1、插件安装
系统管理 —> 插件管理 —> 已安装,检查是否有“Git plugin”和“Publish over SSH”两个插件,没有到可选插件里面进行安装
Publish over SSH,该插件主要是构建完毕后自动发包到配置的服务器具体路径中
2、重启 jenkins
systemctl restart jenkins
3、jenkins 服务器免密登陆 部署服务器
# -f 生成自定义密钥
ssh-keygen -f ~/.ssh/jenkins
# 把公钥传给部署机器,-i 发送指定的密钥
ssh-copy-id -i ~/.ssh/jenkins.pub root@192.168.1.73
# 但是ssh命令默认只会读取id_rsa这个私钥文件,需要添加配置文件 ~/.ssh/config
vi ~/.ssh/config
# 添加
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/jenkins
4、配置插件
系统管理 —> 系统设置 —> Publish over SSH
Passphrase 和 Path to key,刚没有设置,所以这为空
Key:填入私钥
SSH Servers:新增一组部署机器
name:vm73
hostname:192.168.1.73
username:root
Remote Directory: /
测试是否连通,显示 Success 表示已通,点击应用
新建项目
1、回到首页,新建一个任务,选择构建一个自由风格的软件项目
2、配置
源码管理
1、选择 Git
Git 服务器配置 https://blog.csdn.net/mshxuyi/article/details/103019730
2、Repositories
Repository URL git@192.168.1.114:/opt/git/rubis.git
添加 credentials 凭据
类型:SSH Username with private key
Usename:root
Private Key:jenkins服务器 root 用户生成的密钥
构建触发器 和 构建环境 为空
构建
选择 Send files or execute commands over SSH
name 输入 vm73
Source files 输入 **/**, 表示要发布的代码为全部文件
Remote directory 输入 /tmp/jenkins ,代码要部署的路径
3、点击左侧(Build Now)立即构建
,会出现构建历史
,其中 #1 表示第一次构建
4、点击 #1,点击控制台输出,显示已成功
5、在 192.168.1.73 部署机器上面查看,发现文件已经过来了,如果 git 服务器上面做了变更,继续点击立即构建
,如果构建成功,那么在目标部署机器上也可以看到变更的内容
[root@vm73 tmp]# ll /tmp/jenkins/
总用量 0
-rw-r--r--. 1 root root 0 10月 16 14:54 1.txt
6、Poll SCM 自动构建
构建触发器 选择 Poll SCM,输入 * * * * *,代表如果有人提交代码,1分钟后触发这个job