Установка нескольких пакетов в Ansible - PullRequest
0 голосов
/ 01 марта 2019

У меня есть эта задача в 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

1 Ответ

0 голосов
/ 22 марта 2019

Я думаю, что это лучший способ, но так как имена пакетов не должны быть жестко запрограммированы, предпочтительнее хранить их в vars / main.yml, например:

mongodb_version: 5
packages:
  - "mongodb-org-shell-{{ mongodb_version }}"
  - "mongodb-org-server-{{ mongodb_version }}"

Назовите это в вашей игровой книге как

- name: Install mongodb packages
  yum: name={{ item }}
       state=latest
  with_items: "{{ packages}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...