Jenkins,ansible,gitlab实战
Jenkins,ansible,gitlab集成环境搭建
- gitlab:gitlab.example.com
- jenkins+ansible: jenkins.example.com #安装virtualenv,保证Jenkins和ansible共用一个系统用户,保证这两个工具能够协同工作
- 交付给用户的云主机:test.example.com #需要保证我们的产品利用自动化部署交付到这台主机中,并能够根据用户的随后需求,利用我们的集成工具项目组合持续将更新交付到用户手中
- 本地Windows:本地脚本编写,以及系统配置等相关工作
1. 利用Jenkins抓取卡法人员的项目代码,以及日常维护ansible-playbook脚本,到我们的Jenkins job workspace工作区域内
2. 通过Jenkins内嵌的任务格式编写Jenkins freestyle job或者pipeline job并集成我们的ansible部署工具
3. 通过我们从gitlab抓取到的ansible-playbook脚本进行我们随后的部署工作
4. 最后将我们的产品代码按照我们的脚本的部署逻辑远程推送到我们的客户主机
5. 这样我们就打通了一个从抓取代码到集成部署工具到代码交付的自动化部署流水线
6. 无论客户以后有任何更新需求或者项目本身出现bug需要修复都可以利用Jenkins,ansible,gitlab这个组合去一键将我们的项目自动部署到远程客户主机当中解决我们日常持续交付的效率问题,提升我们的自动化部署交付能力,最终让客户满意
freestyle job 实现静态网站部署交付
- 三剑客平台初始环境构建 #验证环境
- 编写ansible playbook脚本实现静态网页远程部署
- 将playbook部署脚本提交到gitlab仓库
- 构建freestyle job任务框架
- Jenkins集成ansible与gitlab实现静态网页的自动化部署
- 静态网页ansible-playbook脚本编写
git clone https://git.example.com/root/ansible-playbook-repo.git
git config --global http.sslVerify false
cd ansible-playbook-repo/
ll test_playbooks/
cp -a test_playbooks/ nginx_playbooks
ls nginx_playbooks/
deploy.retry deploy.yml inventory/ roles/
vim deploy.yml
hosts: "testservers"
gather_facts: true
remount_user: root
roles:
- nginx
[root@jenkins nginx_playbooks] cd inventory/
cp t