5.ansible 剧本playbook编写规范

1.什么是playbook

playbook是ad-hoc的编排工具,是由yaml语法编写的文本文件,它是由 play 和 book两部分组成。可以把它看陈shell脚本
paly 主要定义的是主机和主机组
book 主要定义的是task(任务),它可以是一个或多个任务

2.为什么用Ansible playbook

  • 2.1 执行一些简单的任务,使用ad-hoc命令可以方便的解决问题,但是有时一个设施过于复杂,需要大量的操作的时候,执行的ad-hoc命令是不合适的,这时候最好使用playbook。
  • 2.2 就像执行shell命令与写shell脚本一样,也可以理解为批处理任务,不过playbook有自己的语法格式
  • 2.3 使用playbook可以方便的重复使用这些代码,可以移植到不同的机器上面,像函数一样,最大化的利用代码。在你使用Ansible的过程中,你也会发现,你所处理的大部分操作都是编写playbook。可以把常见的应用都编写playbook,之后管理服务器会变得很简单

3.playbook编写格式

三种规范原则:

语法 含义
空格 缩进信息 两个空格 PS:编写剧本时,将tab键扣掉
冒号 key-value(键值关系) hosts: 172.16.1.41冒号后面不需要有空格情况
短横线 - 生成列表信息
- hosts: 172.16.1.41
- hosts: 172.16.1.31

1.编写示例

cat test.yaml 
- hosts: 192.168.1.203
  tasks:
    - yum: name=cowsay state=installed
    - copy: src=/etc/hosts dest=/tmp/hosts.bak remote_src=yes

2.语法检查 检查语法有没有错误

ansible-playbook --syntax-check test.yaml 

3.模拟执行

ansible-playbook -C test.yaml

4.剧本模拟执行 检查剧本是否能执行

ansible-playbook -C  test.yaml 

PLAY [192.168.1.203] ****************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************
ok: [192.168.1.203]

TASK [yum] **************************************************************************************************************************************************
changed: [192.168.1.203]

TASK [copy] *************************************************************************************************************************************************
ok: [192.168.1.203]

PLAY RECAP **************************************************************************************************************************************************
192.168.1.203              : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

5.剧本执行

ansible-playbook test.yaml 

PLAY [192.168.1.203] ****************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************
ok: [192.168.1.203]

TASK [yum] **************************************************************************************************************************************************
changed: [192.168.1.203]

TASK [copy] *************************************************************************************************************************************************
ok: [192.168.1.203]

PLAY RECAP **************************************************************************************************************************************************
192.168.1.203              : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

rsync 示例

cat rsync.yaml

- hosts: 172.16.1.41
  tasks:
    - name: 01:install rsync software
      yum: name=rsync state=installed
    - name: 02:push client
      copy: src=./rsyncd.conf dest=/etc/
    - name: 03:create user
      user: name=rsync shell=/sbin/nologin create_home=no
    - name: 04:create password file
      copy: content='rsync_backup:oldboy123' dest=/etc/rsync.password mode=600
    - name: 05:create backup dir
      file: path=/backup state=directory owner=rsync group=rsync
    - name: 06:重启rsync服务  
      service: name=rsyncd state=restarted enabled=yes   

- hosts: rsync_client
  tasks:
    - name: 01:ceate password file
      copy: content='oldboy123' dest=/etc/rsync.password mode=600
posted @ 2021-03-29 14:51  老夫聊发少年狂88  阅读(215)  评论(0编辑  收藏  举报