Ansible playbook в Ubuntu 20

Как написать Ansible Playbook для установки различных приложений на разные хосты в Ubuntu 20.04 {{1} } Условия

  1. При запуске playbook он должен запрашивать имя хоста (мы должны указать конкретное имя хоста)

Для всех пакетов мы должны указать числа вроде 1,2,3, .....

После указания имени хоста он должен запросить номер пакета, в это время мы должны указать этот номер, конкретный пакет должен быть установлен на конкретном хосте

0
задан 28 August 2021 в 04:31

1 ответ

Я бы организовал свое репозиторий Ansible так, чтобы у него была отдельная роль для каждого программного обеспечения, а затем использовал бы ansible_hostname факт модуля gather_facts в качестве условия для установки программного обеспечения для конкретного хоста. Я бы выбрал такую ​​структуру папок:

└── ansible_repo
    ├── roles
    │   ├── vim
    │   │   └── tasks
    │   │       └── main.yml
    │   ├── tmux
    │   │   └── tasks
    │   │       └── main.yml
    │   └── vlc
    │       └── tasks
    │           └── main.yml
    ├── inventory
    └── playbook.yml

Содержимое playbook.yml будет выглядеть примерно так:

# playbook.yml
- hosts: all
  become: true
# run roles
- hosts: all
  roles:
    - vim
    - tmux
    - vlc

main.yml внутри каждой задачи будет следуйте этому шаблону (там используется vim):

---
# tasks file for vim

- name: Install vim
  apt:
    name:
      - vim
    when gather_facts.ansible_hostname = "host1" or "host3"

Вы также можете сохранить имя хоста в файле inventory .

Хотя это сработает, но я думаю, это не лучшая практика. Лучшим способом было бы сгруппировать ваши хосты в зависимости от того, какие пакеты нужны, а затем использовать определенные роли для этой группы.

0
ответ дан 4 September 2021 в 09:27

Другие вопросы по тегам:

Похожие вопросы: