本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Ansible
  • 自动化运维工具Ansible入门教程(七)with循环与when条件判断

自动化运维工具Ansible入门教程(七)with循环与when条件判断

发布:TangLu2017-9-20 11:01分类: Ansible 标签: 自动化运维 ansible

在Ansible中也支持条件判断与循环语句。

一、首先看看如何实现循环操作,要实现循环效果的话使用到的是with_items配置

示例1:

 vi /etc/ansible/while.yml  #加入如下内容
- hosts: 192.168.1.100
  user: root
  tasks:
    - name: change mode for files
      file: path=/tmp/{{ item }} state=touch mode=600  #这里使用了item变量
      with_items:  #定义了item变量的对象
        - 1.txt
        - 2.txt
        - 3.txt

ansible-playbook while.yml

示例2,通过循环安装多个软件包:

- name: Install Nginx Package
  yum: name={{ item }} state=latest
  with_items:
  - epel-release
  - nginx

二、使用when来实现条件测试,用于“当满足某个条件时再执行某个操作”,而这个条件一般是取facts的值,因为每个远程主机的信息不一样,而通过facts来获得详细信息最为方便,要获取facts值的方法是:

ansible all -m setup 

when语句书写格式如下:

tasks:

  - name: "shutdown Debian system"

    command: /sbin/shutdown -h now

    when: ansible_os_family == "Debian"


示例1:

 vi /etc/ansible/when.yml  #加入如下内容
- hosts: dbservers
  user: root
  gather_facts: True
  tasks:
    - name: use when
      shell: touch /tmp/when.txt
      when: ansible_ens33.ipv4.address == "172.7.15.114"


示例2:当远程主机FQDN名为test时,给该主机添加一个用户user10

vi test.yml
- hosts: all
  remote_user: root
  vars:
  - username: user10
  tasks:
  - name: create {{ username }} user
    user: name={{ username }}
    when: ansible_fqdn == "test"


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《自动化运维工具Ansible入门教程(七)with循环与when条件判断
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-279.html  [生成短网址]

已有 0/2899 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~