繁体   English   中英

我如何优化Ansible的剧本

[英]How can i optimize ansible's playbook

这时我的剧本看起来像这样:

    - role: co_java
      vars:
        co_java_version: jdk1.6.0_45
    - role: co_java
      vars:
        co_java_version: jdk1.8.0_161

我可以迭代项目吗? Desiderata:

    - role: co_java
      vars:
        co_java_version: {{ item }}
      with_items: 
         - jdk1.6.0_45
         - jdk1.8.0_161

谢谢

参考:“ 角色”文档页面

您不能使用经典的角色调用方式来做到这一点(就像上面的示例一样)。 但是从ansible 2.4 import_role ,可以使用import_roleinclude_role做到这一点。

- name: playbook to install java
  hosts: my_hosts

  tasks:
    - name: Include role to install java versions
      include_role:
        name: co_java
      vars:
        co_java_version: "{{ item }}"
      loop:
        - jdk1.6.0_45
        - jdk1.8.0_161

同时,修改角色以直接接受要安装的jdks列表可能更容易甚至更有效 ,因此循环直接发生在相关任务中。 然后,您可以使用类似以下内容的名称进行调用:

- name: playbook to install java
  hosts: my_hosts

  roles:
    - role: co_java
      vars:
        co_java_version:
          - jdk1.6.0_45
          - jdk1.8.0_161

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM