0
点赞
收藏
分享

微信扫一扫

跨平台自动化部署工具 Ansible 学习2 Playbooks

Sky飞羽 2022-06-28 阅读 79


跨平台自动化部署工具 Ansible 学习2 Playbooks

  • ​​一、Playbook 介绍​​
  • ​​二、Playbook的关键概念​​
  • ​​三、Playbook语法​​
  • ​​四、一个示例说明​​
  • ​​1. `/etc/ansible/hosts`设置​​
  • ​​2. playbook.yml​​
  • ​​3. 执行一个shell的示例​​
  • ​​4. task示例,添加自启动​​
  • ​​5. task 示例,拷贝文件​​
  • ​​6. task示例 service​​

跨平台自动化部署工具 Ansible 学习2 Playbooks_bash

一、Playbook 介绍

  • Playbook可以运行多任务,比直接使用Module能实现更强大的功能。
  • Playbook和roles都使用YAML文件格式。
  • Playbook里包含一个或多个play,每个play中定义task。
  • 可以理解为Playbook就是通过task调用module的集合。

二、Playbook的关键概念

  • Hosts 受控主机
  • Tasks 任务集合
  • Varniables 内置变量或自定义变量
  • Templates 模板
  • Handlers,和notity结合使用,定义触发条件
  • tags 标签,标记Playbook中的一段代码

三、Playbook语法

  • playbook 使用yaml格式,文件扩展名为yaml或yml
  • 在一个playbook文件中,​​---​​用来区分多个play。
  • ​...​​用来表示一个play结束(可以省略)。
  • 缩进是严格、有意义的,不能随便混用。
  • ​#​​表示注释
  • yaml中主要定义方式是键值对,使用​​:​​分隔;值可以同行或换行写。
  • 冒号后、值前要有一个空格。

四、一个示例说明

1. ​​/etc/ansible/hosts​​设置

[webs]
jenkins ansible_ssh_host=192.9.200.182

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写入当前时间。

目标主机执行结果:
跨平台自动化部署工具 Ansible 学习2 Playbooks_bash_02
执行过程:
跨平台自动化部署工具 Ansible 学习2 Playbooks_bash_03

3. 执行一个shell的示例

---                # 固定格式
- 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


举报

相关推荐

0 条评论