Jenkins+Gitlab+Ansible自动化部署(2021-08-12)
一、环境构建要求
- 编写ansible playbook脚本实现静态网页远程部署
- 将playbook部署脚本提交到GitLab仓库
- 构建Freestyle Job任务框架
- Jenkins集成Ansible与Gitlab实现静态网页的自动化部署
二、检查环境已经准备完毕。
1、登录gitlab查看
2、登录Jenkins首页
3、登录Jenkins主机查看Ansible2.9+python 3.8环境
[root@jenkins ~]# su - deploy
Last login: Wed Aug 11 17:48:04 CST 2021 on pts/1
[deploy@jenkins ~]$ ansible --version
ansible [core 2.11.3]
config file = None
configured module search path = ['/home/deploy/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
ansible collection location = /home/deploy/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.9.1 (default, Aug 11 2021, 11:57:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
jinja version = 3.0.1
libyaml = True
4、编写ansible playbook脚本
- 实现静态网页远程部署,打开Git bash命令行,将之前创建好的ansible-playbook-repo仓库clone到本地
1、拉取项目到本地
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~
$ git clone https://gitlab.example.com/root/ansible-playbook-repo.git
Cloning into 'ansible-playbook-repo'...
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
remote: Enumerating objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~
$ cd ansible-playbook-repo/
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo (main)
$ ll
total 1
-rw-r--r-- 1 qiufeng.li 197121 12 Aug 12 10:41 ansible-playbook.txt
2、配置 playbook
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo (main)
$ mkdir nginx_playbooks
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo (main)
$ cd nginx_playbooks/
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo/nginx_playbooks (main)
$ vim deploy.yml
- hosts: "nginx"
gather_facts: true
remote_user: root
roles:
- nginx
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo/nginx_playbooks (main)
$ mkdir inventory
qiufeng.li@DESKTOP-JC7QDVB MINGW64 ~/ansible-playbook-repo/nginx_playbooks (main)
$ vim inventory/prod
[nginx]
test.example.com
[nginx:vars]
server_name=test.example.com
port=80
user=deploy
worker_processes=4
max_open_file=65505
root=/www
qiufen