Gitlab_ansible_jenkins三剑客⑥Jenkins和ansible集成
ip |
角色 |
备注 |
10.11.0.215 |
jenkins服务器 |
通过deploy运行jenkins服务,deploy用户做了免秘钥登录ansible服务器 |
10.11.0.210 |
ansible服务器 |
通过deploy执行ansible服务,做了免秘钥登录test主机 |
10.11.0.212 |
需要被ansible控制的主机 |
|
环境准备:
- 搭建ansible服务环境,参考前面章节
- Ansible和10.11.0.212做免密码登录
- Jenkins和ansible服务做免秘钥登录
整理的逻辑:
Jenkins –> 远程调用ansible上的testansible.sh脚本 -->test.example终端机
Jenkins的配置,执行脚本
# 通过jenkins服务器调用ansible(10.11.0.210)上的脚本执行ansible任务
#!/bin/sh
source /etc/profile
ssh deploy@10.11.0.210 "/usr/sbin/ip a"
ssh deploy@10.11.0.210 "ls"
ssh deploy@10.11.0.210 "/bin/sh testansible.sh"
Testansible.sh脚本
[deploy@node1 ~]$ cat testansible.sh
#!/bin/sh
set +x
source /home/deploy/.py3-a2.5-env/bin/activate
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
cd /home/deploy
ansible --version
ansible-playbook --version
cat test servers
ansible -i testservers testserver -m command -a "ip addr"
set -x
备注:
由于ansible和jenkins没有部署在同一台服务器中,为了方便就把jenkins挪到了ansible中(因为ansible部署比较麻烦,jenkins简单)
实际生产环境中不建议 gitlab/jenkins/ansible部署在一台机器中
可以将gitlab单独一台机器
jenkins和ansible公用一台机器
主要步骤:
1.在目标服务器中安装java环境
2.拷贝jenkins相关的程序即 /usr/local/tomcat 到目标服务器目录下,解压并赋权 chown -R deploy.deploy /usr/local/apache-tomcat-8.5.39
3.拷贝运行jenkins的用户配置到目标服务器下:/home/deploy/.jenkins目录
由于里面集成了gitlab,原来tomcat的8080口被gitlab占用,修改tomcat端口为8090
直接访问 10.11.0.210:8090/jenkins 就可以正常访问jenkins了