博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible+jenkins+svn实现生产环境自动发布
阅读量:7192 次
发布时间:2019-06-29

本文共 1504 字,大约阅读时间需要 5 分钟。

ansible+jenkins实战

1、部分机器信息:

image_1c2vkg8cmjd1151b10elc291m8m4h.png-22.8kB
2、远程执行用户:(ansible机器并没有开通外网哦)
ansible_ssh_port=22   ansible_ssh_user=ane    ansible_ssh_pass=ane
image_1c2vr9onbnok15gf1bkqirkkv09.png-33.7kB
3、ansible用到的两个重要角色

/etc/ansible/hosts      #hosts文件定义主机与和执行权限/etc/ansible/roles       #roles是任务集合,可在roles下面新建多模块,如tomcat,jdk、yum源,防火墙等,分角色方便管理且灵活

##Jenkins配置

1、新建-自由分格项目
项目名称:lbbs
Svn配置:(这个svn地址也是内网哦)
地址:svn://172.17.103.10:3391/lbproject/bs/
image_1c2vj35k81r0a10ai114pee0t7q13.png-39.4kB
###构建:
1)、增加构建后的操作-->Invoke Ansible Playbook
image_1c2vj6bn9giv1mr31bppoq6glm1g.png-12.3kB

Playbook path:/etc/ansible/roles/lbbs/lbbs.yml (备注:该路径为ansible的roles)

Inventory:选择File or host list File path or comma separated host list:/etc/ansible/hosts (备注:该路径为ansible的hosts文件)
Hostsubset:lbbs (备注:此处为hosts文件中ip或者定义的主机组都行

image_1c307j4rc1anjkflp2d110fejo9.png-48.5kB

[root@lbzpf bs]# cat /etc/ansible/roles/lbbs/tasks/main.yml - name: copy package to 103.111   copy:     src={
{ src_path }}/103.111/ne-ops-1.0.0.war dest={
{ dest_path }} backup=yes #开启远程备份,在远程主机/ane/update下备份 when: "ansible_nodename == 'lb_bs1' and ansible_eth0.ipv4.address == '172.17.103.111'" #条件判断 - name: copy package to 103.32 copy: src={
{ src_path }}/103.32/ne-ops-1.0.0.war dest={
{ dest_path }} backup=yes when: "ansible_nodename == 'bs-web04' and ansible_eth0.ipv4.address == '172.17.103.32'"备注:加when条件判断原因是:war包里有个文件引用了当前的主机ip,没办法,只能这样了[root@lbzpf bs]# cat /etc/ansible/roles/lbbs/vars/main.yml #vars定义了上面用到的两个变量路径src_path: /var/lib/jenkins/workspace/lbbs #源路径dest_path: /ane/update #目标路径

image_1c2vune911fo4stl1c611m6219jam.png-20.2kB

2)、增加构建后的操作-->(Invoke Ansible Ad-Hoc Command)
image_1c307mf7h1sdf43n1nt01mq61o06m.png-34kB
###发布
1、Jenkins中点击立即构建,或者指定定时任务,
image_1c2vk0e2aq6a1ap51h5p14o119kc2a.png-16.7kB
2、编写计划任务发布
发布时间一般是固定的,所以可以指定定时任务(通linux下的crond),让其自动构建操作
image_1c2vk4tbr171bp4s3fv1m9v1nao2n.png-30.3kB

检查执行结果

image_1c2vur2532121v0q1dul1hqes4413.png-21.8kB
image_1c2vnilncmvs1oi711u1741ech5o.png-15.7kB
image_1c2vqlrnh2p6r0g1kfhea811li65.png-88.5kB

转载于:https://blog.51cto.com/9682938/2134829

你可能感兴趣的文章
UIView
查看>>
mysql-distinct去重、mysql-group …
查看>>
Vmworkstation启用错误
查看>>
mysql中函数DISTINCT,group by,CONCAT及GROUP_CONCAT的使用
查看>>
4月5日 编码问题
查看>>
消息反射
查看>>
DVWA之brute force
查看>>
HTML DOM 第一篇
查看>>
Java 枚举类型简介
查看>>
21. Merge Two Sorted Lists (Java 合并有序链表 空间复杂度O(1))
查看>>
Visual Studio 2010 Shortcut
查看>>
一些互联网术语
查看>>
ArrayList的底层实现
查看>>
基于Cyclone II Device Hankbook 的几种电压描述(转)
查看>>
springboot单元测试通过MockMvc类调用controller接口
查看>>
[NOI2013]快餐店
查看>>
Linux 文件操作总结
查看>>
Chrome下的语音控制框架MyVoix.js使用篇(三)
查看>>
【iOS】UIKit框架 学习笔记
查看>>
thinkphp5 自动注册Hook机制钩子扩展
查看>>