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

Ansible—如何在给定次数的循环中运行角色

  •  1
  • chenchuk  · 技术社区  · 7 年前

    我使用Ansible将我的应用程序部署到aws。在aws中创建环境时,我希望部署“mq”类型的x台服务器(有时仅1台,有时3台) 在my group\u vars/all中,我有一把钥匙:

    number_of_mqs: 3
    

    有鉴于此,我希望我的角色包括一项任务3次,我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  6
  •   nbari    7 年前

    您可以调用任务中的角色,如下所示:

    ---
    - hosts: localhost
      connection: local
    
      tasks:
        - name: Call role 3 times
          with_sequence: count=3
          include_role:
            name: name_of_the_role
          vars:
            foo: "foo-{{ '%02d'|format(item|int) }}"
    

    在这种情况下,它将调用角色3次,并传递变量 foo 对它。