自动化部署工具java(自动化部署工具)
自动化部署工具java(自动化部署工具)
一、Playbook 介绍- Playbook可以运行多任务,比直接使用Module能实现更强大的功能。
- Playbook和roles都使用yaml文件格式。
- Playbook里包含一个或多个play,每个play中定义task。
- 可以理解为Playbook就是通过task调用module的集合。
- Hosts 受控主机
- Tasks 任务集合
- Varniables 内置变量或自定义变量
- Templates 模板
- Handlers,和notity结合使用,定义触发条件
- tags 标签,标记Playbook中的一段代码
- playbook 使用yaml格式,文件扩展名为yaml或yml
- 在一个playbook文件中, ---用来区分多个play。
- ...用来表示一个play结束(可以省略)。
- 缩进是严格、有意义的,不能随便混用。
- #表示注释
- yaml中主要定义方式是键值对,使用:分隔;值可以同行或换行写。
- 冒号后、值前要有一个空格。
[webs]
jenkins ansible_ssh_host=192.9.200.182
12
2. playbook.yml
--- # 固定格式
- hosts: jenkins # 定义需要执行主机
remote_user: root
tasks:
- name: append
shell: echo `date "%Y-%m-%d %H:%M:%S"` begin >> /home/a.log
以上示例向目标主机的/home/a.log写入当前时间。
目标主机执行结果:
执行过程:
--- # 固定格式
- hosts: jenkins # 定义需要执行主机
remote_user: root
tasks:
- name: execute app
shell: bash /opt/run_app.sh
4. task示例,添加自启动
- name: autorun
lineinfile: dest=/etc/rc.d/rc.local line="bash /opt/run_app.sh"
5. task 示例,拷贝文件
- name: copy run script
shell: cp /home/run_app.sh /opt/
6. task示例 service
# 启动
- name: Start nginx
service:
name: nginx
state: started
# 重启
- name: Reload Nginx
service:
name: nginx
state: reloaded