zoukankan      html  css  js  c++  java
  • ansible-playbook流程控制-loops循环使用

    1. ansible-playbook流程控制-loops循环使用
        有时你想要多次重复任务。在计算机编程中,这称为循环。common ansible循环包括使用文件模块更改多个文件和/或目录的所有权,使用用户模块创建多个用户,并重复轮询步骤,直到达到某个结果。ansible提供两个用于创建循环的关键字:loop和with_<lookup>
        注意:

    • 我们loop在ansible 2.5中添加了,他尚未完全替代with_<lookup>,但我们建议大多数用例。
    • 我们还没弃用with_<lookup> 该语法乃然有效

    2. 循环示例1:
      2.1) 示例1:with_list直接替换为loop

     1 - name: with_list
     2   debug:
     3     msg: "{{ item }}"
     4   with_list:
     5     - one
     6     - two
     7 
     8 - name: with_list -> loop
     9   debug:
    10     msg: "{{ item }}"
    11   loop:
    12     - one
    13     - two

    3. 案例:循环操作
      3.1) 案例1:with_list直接替换为loop

     1 [root@test-1 loops]# vim loops_test1.yaml 
     2 [root@test-1 loops]# cat loops_test1.yaml 
     3 ---
     4 - hosts: web1
     5   gather_facts: no
     6 
     7   tasks:
     8     - name: with list 
     9       debug:
    10         msg: "{{ item }}"
    11       with_list:
    12         - one
    13         - two
    14     - name: with_list -> loop
    15       debug:
    16         msg: "{{ item  }}"
    17       loop:
    18         - one
    19         - two

      3.2) 检查配置文件

    1 [root@test-1 loops]# ansible-playbook  --syntax-check loops_test1.yaml 
    2 
    3 playbook: loops_test1.yaml

    3.3) 执行模块

     1 [root@test-1 loops]# ansible-playbook loops_test1.yaml 
     2 
     3 PLAY [web1] *************************************************************************************************************************************************************
     4 
     5 TASK [with list] ********************************************************************************************************************************************************
     6 ok: [192.168.200.132] => (item=one) => {
     7     "msg": "one"
     8 }
     9 ok: [192.168.200.132] => (item=two) => {
    10     "msg": "two"
    11 }
    12 ok: [192.168.200.133] => (item=one) => {
    13     "msg": "one"
    14 }
    15 ok: [192.168.200.133] => (item=two) => {
    16     "msg": "two"
    17 }
    18 
    19 TASK [with_list -> loop] ************************************************************************************************************************************************
    20 ok: [192.168.200.132] => (item=one) => {
    21     "msg": "one"
    22 }
    23 ok: [192.168.200.132] => (item=two) => {
    24     "msg": "two"
    25 }
    26 ok: [192.168.200.133] => (item=one) => {
    27     "msg": "one"
    28 }
    29 ok: [192.168.200.133] => (item=two) => {
    30     "msg": "two"
    31 }
    32 
    33 PLAY RECAP **************************************************************************************************************************************************************
    34 192.168.200.132            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    35 192.168.200.133            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  • 相关阅读:
    简单粗暴,微生物生态研究中常用数据库简介--转载
    sliva数据库简介--转载
    DriverDBv2---人类肿瘤driver基因数据库
    lncrnablog
    胞外囊泡与外泌体数据库--转载
    Oncomine: 一个肿瘤相关基因研究的数据库--转载
    circRNA研究手册
    常用Gene ID转换工具--转载
    miRNA几大常用的数据库
    zk使用通知移除节点
  • 原文地址:https://www.cnblogs.com/scajy/p/11561437.html
Copyright © 2011-2022 走看看