【发布时间】:2019-03-01 11:49:39
【问题描述】:
我在 Ansible 中有这个任务:
- name: Install mongodb
yum:
name:
- "mongodb-org-{{ mongodb_version }}"
- "mongodb-org-server-{{ mongodb_version }}"
- "mongodb-org-mongos-{{ mongodb_version }}"
- "mongodb-org-shell-{{ mongodb_version }}"
- "mongodb-org-tools-{{ mongodb_version }}"
state: present
notify: Restart mongodb
有没有一种方法可以指示版本而不必使用这样的循环?有什么更“优雅”的写法?
- name: Install mongodb
yum:
name: "{{ item }}-{{ mongodb_version }}"
state: present
loop:
- mongodb-org-server
- mongodb-org-mongos
- mongodb-org-shell
- mongodb-org-tools
notify: Restart mongodb
【问题讨论】:
-
我怀疑有没有更好的解决方案。也许如果您将包列表作为变量,然后使用
name中的变量。它至少会使代码更清晰,并将逻辑与变量和常量分开。 -
为了更清楚一点,我会使用 var 文件夹并创建一个包含所需 mongodb 列表的 var,然后调用该 var,这样您的整体任务将更加清晰看着它。
标签: ansible