Ansible playbook的使用循环和判断

Ansible playbook格式

playbook由YMAL语言编写,playbook常用到的YMAL格式:

1、文件的第一行应该以 “- - -” (三个连字符)开始,表明YMAL文件的开始。
2、在同一行中,#之后的内容表示注释,类似于shell,python和ruby。
3、YMAL中的列表元素以”-”开头然后紧跟着一个空格,后面为元素内容。
4、同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理。
5、play中hosts,variables,roles,tasks等对象的表示方法都是键值中间
以":“分隔表示,”:"后面还要增加一个空格。

举例:

---
- hosts: node1
  remote_user: root
  tasks:
      - name: install mysql-server package

解析:

文件名称应该以.yml结尾
①host部分:使用 hosts 指示使用哪个主机或主机组来运行下面的 tasks 每个 playbook
都必须指定 hosts ,hosts也可以使用通配符格式。 ②remote_user:指定远端主机中的哪个用户来登录远端系统,在远端系统执行
task 的用户,可以任意指定,也可以使用 sudo,但是用户必须要有执行相应 task 的权限。
③tasks:指定远端主机将要执行的一系列动作。tasks 的核心为 ansible 的模块,前面已经提到模块的用法。tasks 包含
name 和要执行的模块,name 是可选的,只是为了便于用户阅读,不过还是建议加上去,模块是必须的,同时也要给予模块相应的参数。

输出信息:

使用ansible-playbook运行playbook文件,输出内容为JSON格式。并且由不同颜色组成,便于识别,执行有三个步骤:1、收集facts
2、执行tasks 3、报告结果。一般而言 | 绿色代表执行成功,系统保持原样 | 黄色代表系统代表系统状态发生改变 |
红色代表执行失败,显示错误输出

Ansible playbook的使用(把模块写入配置文件里面)

模块写入到配置文件里面
[root@ansible-01 ~]# vi /etc/ansible/test.yml

---
- hosts: 192.168.200.23
  remote_user: root
  tasks:
    - name: test_playbook
      shell: touch /tmp/ansible_test.txt

运行:
[root@ansible-01 ~]# ansible-playbook /etc/ansible/test.yml
在这里插入图片描述
在23端检测一下:
[root@ansible-02 ~]# ls /tmp
在这里插入图片描述

创建用户的例子:

[root@ansible-01 ~]# vi /etc/ansible/create_user.yml

---
- name: create_user
  hosts: 192.168.200.23
  user: root
  gather_facts: false
  vars:
    - user: "test"
  tasks:
    - name: create user
      user: name="{
   { user }}"

运行:

[root@ansible-01 ~]# ansible-playbook /etc/ansible/create_user.yml

PLAY [create_user] *************************************************************

TASK [create user] *************************************************************
changed: [192.168.200.23]

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

说明:

name参数对该playbook实现的功能做一个概述,后面执行过程中,会打印 name变量的值
,可以省略;gather_facts参数指定了在以下任务部分执行前,是否先执行setup模块获取主机相关信息,这在后面的task会使用到setup获取的信息时用到;vars参数,指定了变量,这里指字一个user变量,其值为test
,需要注意的是,变量值一定要用引号引住;user提定了调用user模块,name是user模块里的一个参数,而增加的用户名字调用了上面user变量的值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值