美文网首页
ansible命令之palybook应用实践

ansible命令之palybook应用实践

作者: 慕男 | 来源:发表于2019-04-27 16:26 被阅读0次

playbook

1、什么是playbook?

把所有的操作按照ansible编程语法,放到文件里执行就是playbook。

2、ansible剧本编写格式说明

ansible剧本遵循PYyaml语法规则进行编写,yaml文件基本编写规则如下说明:

规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成。切记一定不能使用tab键进行缩进。
规则二:冒号
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分

3、playbook替换文案

playbook替换文案1:

[root@m01 /server/scripts]# cat one_key.sh 
ansible r1 -m yum -a "name=rsync state=installed" &&\
ansible r1 -m shell -a "useradd rsync"&&\
ansible r1 -m file -a "path=/backup state=directory owner=rsync group=rsync" &&\
ansible r1 -m copy -a "src=/etc/rsyncd.conf dest=/etc/rsyncd.conf" &&\
ansible n2 -m shell -a "echo rsync_backup:oldboy >/etc/rsync.password" &&\

playbook替换文案2:

4、ansible的实践:

  • 准备目录,用于存放语法:
    mkdir -p /etc/ansible/yaml
    cd /etc/ansible/yaml
  • 开始编写:
    [root@m01 /etc/ansible/yaml]# vim p1.yaml
    [root@m01 /etc/ansible/yaml]# cat p1.yaml
  • hosts: r1 #填写要指定的机器 与/etc/ansible/hosts相符
    tasks:
    • name: munan #代表注释,无意义
      shell: echo love_munan. >/tmp/munan.log #要执行的命令
测试执行:(出现绿色,不出现红色;故测试成功。)
[root@m01 /etc/ansible/yaml]# ansible-playbook -C /etc/ansible/yaml/p1.yaml 

PLAY [r1] **********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.16.1.31]
ok: [172.16.1.41]

TASK [munan] *******************************************************************
skipping: [172.16.1.41]
skipping: [172.16.1.31]

PLAY RECAP *********************************************************************
172.16.1.31                : ok=1    changed=0    unreachable=0    failed=0   
172.16.1.41                : ok=1    changed=0    unreachable=0    failed=0   

真正执行:(命令提示出现黄色;故执行成功。)

[root@m01 /etc/ansible/yaml]# ansible-playbook  /etc/ansible/yaml/p1.yaml 

PLAY [r1] **********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.16.1.41]
ok: [172.16.1.31]

TASK [munan] *******************************************************************
changed: [172.16.1.41]
changed: [172.16.1.31]

PLAY RECAP *********************************************************************
172.16.1.31                : ok=2    changed=1    unreachable=0    failed=0   
172.16.1.41                : ok=2    changed=1    unreachable=0    failed=0   
  • 利用剧本实现创建文件
[root@m01 /etc/ansible/yaml]# cat p2.yaml 
- hosts: r1
  remote_user: root
  tasks:
    - name: munan
      file: name=/tmp/munan state=touch

黄色提示表示成功

[root@m01 /etc/ansible/yaml]# ansible-playbook   /etc/ansible/yaml/p2.yaml 

PLAY [r1] **********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.16.1.31]
ok: [172.16.1.41]

TASK [munan] *******************************************************************
changed: [172.16.1.41]
changed: [172.16.1.31]

PLAY RECAP *********************************************************************
172.16.1.31                : ok=2    changed=1    unreachable=0    failed=0   
172.16.1.41                : ok=2    changed=1    unreachable=0    failed=0  

定时任务剧本编写:

[root@m01 /etc/ansible/yaml]# vim p3.yaml
- hosts: r1
  tasks:
    - name: munan
      cron: name='sync time' minute=*/10 job='/usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1'

注明:

minute:    # Minute when the job should run ( 0-59, *, */2, etc )
 hour:     # Hour when the job should run ( 0-23, *, */2, etc )
day:      # Day of the month the job should run ( 1-31, *, */2, etc )
month:     # Month of the year the job should run ( 1-12, *, */2, etc )
weekday:   # Day of the week that the job should run ( 0-6 for Sunday-Saturday, *, etc )
 job:      # The command to execute or, if env is set, the value of  environment variable. The
command should not contain line   breaks. Required if    state=present.

拷贝文件剧本编写:

[root@m01 /etc/ansible/yaml]# vim p4.yaml 
- hosts: r1
  tasks:
    - copy: src=/etc/rsyncd.conf dest=/etc/rsyncd.conf backup=yes
    - copy: content='rsync_backup:oldboy' dest=/etc/rsync.password backup=yes mode=0600

相关文章

  • ansible命令之palybook应用实践

    playbook 1、什么是playbook? 把所有的操作按照ansible编程语法,放到文件里执行就是play...

  • 24-运维自动化之ANSIBLE

    本章内容 ◆ 运维自动化发展历程及技术应用◆ Ansible命令使用◆ Ansible常用模块详解◆ YAML语法...

  • ansible 运行命令

    ansible 运行命令 ansible运行命令,需要以下步骤: 通信 主机管理 运行命令 1. ansible通...

  • ansible笔记

    1.安装介绍ansible 2.ansible 主机清单 3.ansible命令 4. ansible命令执行过程...

  • Ansible常用模块

    模块的使用查看模块帮助 ansible命令应用基础 常用模块command功能:命令模块,默认模块,用于在远程主机...

  • 快速上手 Ansible

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 命令

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 主机清单配置文件

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible Playbook 剧本语法

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • D-38&39综合架构批量管理 ansible(自动化软件)

    一、ansible应用配置说明 掌握功能模块 第一个模块: command 命令模块 批量执行命令 默认模块...

网友评论

      本文标题:ansible命令之palybook应用实践

      本文链接:https://www.haomeiwen.com/subject/hilagqtx.html