代码之家  ›  专栏  ›  技术社区  ›  Ashar

如何在角色之间设置停顿

  •  0
  • Ashar  · 技术社区  · 5 年前

    这是我的剧本:

    ---
    - hosts: "mms"
      user: wladmin
    
      roles:
        - { role: App1 }
        - { role: App2 }
        - { role: App3 }
        - { role: App4 }
    

    我希望在这些角色之间暂停30秒。

    我尝试了以下方法,但它给了我语法错误:

      roles:
        - { role: App1 }
      pause:
        seconds: 30
        - { role: App2 }
      pause:
        seconds: 30
        - { role: App3 }
    

    我也试过了

      roles:
        - { role: App1 }
        - pause:
            seconds: 30
        - { role: App2 }
        - pause:
           seconds: 30
        - { role: App3 }
    

    你能建议一下吗?

    0 回复  |  直到 5 年前
        1
  •  4
  •   larsks    5 年前

    pause 不是角色,所以不能将其包含在 roles 你剧本的一部分。 暂停 这是一项任务。你有几个选择:

    使用 import_role 任务而不是 角色 部分

    例如:

    - hosts: localhost
      tasks:
        - import_role:
            name: App1
        - pause:
            seconds: 30
        - import_role:
            name: App2
        - pause:
            seconds: 30
        - import_role:
            name: App3
    

    创建一个“暂停”角色

    创建一个 暂停 角色把这个放进去 roles/pause/tasks/main.yml :

    - name: pause
      pause:
        seconds: "{{ pause_seconds|default(30) }}"
    

    这个在 roles/pause/meta/main.yml :

    allow_duplicates: true
    

    现在你可以写:

    - hosts: localhost
      roles:
        - App1
        - pause
        - App2
        - pause
        - App3
    
    推荐文章