【问题标题】:How to loop an array of packages in an Ansible role如何在 Ansible 角色中循环一系列包
【发布时间】:2019-12-20 18:32:44
【问题描述】:

我已经为安装 php5-fpm 做了角色(与其他角色:nginx、worldpress、mysql)。我想安装 php5 包集,但在循环包数组时遇到问题。请提供一些解决此问题的提示。

角色php5-fpm包括:

  • roles/default/main.yml
  • roles/tasks/install.yml

默认/main.yml:

---
# defaults file for php-fpm
# filename: roles/php5-fpm/defaults/main.yml
#
php5:
  packages:
    - php5-fpm
    - php5-common
    - php5-curl
    - php5-mysql
    - php5-cli
    - php5-gd
    - php5-mcrypt
    - php5-suhosin
    - php5-memcache
  service:
    name: php5-fpm

tasks/install.yml:

# filename: roles/php5-fpm/tasks/install.yml
#
- name: install php5-fpm and family
  apt:
    name: "{{ item }}"
  with_items: php5.packages
  notify:
    - restart php5-fpm service

我希望 install.yml 中的“with_items”查看 defaults/main.yml 并获取该包数组

【问题讨论】:

    标签: arrays loops ansible roles


    【解决方案1】:

    展开变量

    错了

    with_items: php5.packages
    

    正确

    loop: "{{ php5.packages }}"
    


    引用Loops
    • 我们在 Ansible 2.5 中添加了 loop。它还不能完全替代 with_,但我们推荐在大多数用例中使用它。

    • 我们并未弃用 with_ - 该语法在可预见的未来仍然有效。

    • 我们正在寻求改进循环语法 - 观看此页面和更新日志以获取更新。

    【讨论】:

    • 您好弗拉基米尔,感谢您的快速反应。循环很好。
    猜你喜欢
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多