美文网首页
playbook 条件(when)与循环

playbook 条件(when)与循环

作者: 阿当运维 | 来源:发表于2021-04-06 14:12 被阅读0次

    当我们需要判断某些条件,符合才能执行tasks任务时,用when
    如:当目标主机IP为192.168.1.111 的时候才输出
    vim ip.yml

    ---
    - hosts: web
      tasks:
      - name:
        debug: msg={{ansible_default_ipv4.address}}
        when: ansible_default_ipv4.address == '192.168.1.111'
    

    可看到跳出了112 ,在111这个机器执行输出了对应IP


    image.png

    例2:安装http软件,当目标主机为centos系统yum时安装httpd, 为ubantu系统apt时候安装apache,安装完启动服务
    vim install_http.yml

    ---
    - hosts: web
      tasks: 
      - name: apache version - yum
        yum: name=httpd state=present
        when: ansible_pkg_mgr == 'yum'
        notify: restart hpptd service
    
      - name: apache version - apt
        apt: name=apache2 state=present update_cache=yes
        when: ansible_pkg_mgr == 'apt'
        notify: restart apache service
    
      handlers:
        - name: restart hpptd service
          service: name=httpd state=restarted
        
        - name: restart apache service
          service: name=apache2  state=restarted
    

    例3:当系统为Centos6和Debian 7才能重启 (条件可用and 和or )


    image.png

    循环 (loop关键字,{{item}}获取遍历value)

    - hosts: web
      gather_facts: no
      tasks:
        - name: xunhuan
          debug: msg="{{item}}"
          loop: 
            - one
            - two
            - three
    

    结果为:


    image.png

    循环字典:

    格式:

    with_items:
      - {key1: 'value1', key2: 'value2'}
      - {key1: 'value1', key2: 'value2'}
      . . . 
    

    例如:在远程主机批量创建用户,名字为字典中的列表名称。

    [root@server-www xunhuan]# cat item.yml 
    - hosts: web
      gather_facts: no
      tasks:
          - name: zidian
          #debug: msg="{{item.groups}}"
          user: name={{item.name}} groups={{item.groups}} state=present
          with_items:
            - {name: 'zhangsan', groups: 'nginx'}
            - {name: 'lisi', groups: 'nginx'}
          tags: add
    

    结果为


    image.png
    image.png

    相关文章

      网友评论

          本文标题:playbook 条件(when)与循环

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