Этот учебник проведет вас через установку Docker на нескольких хостах с использованием Ansible и популярной поддерживаемой сообществом роли Ansible geerlingguy.docker.


Предварительные требования

Перед началом убедитесь, что у вас есть:


Шаг 1: Создайте Ansible Playbook

Создайте файл с именем docker-playbook.yml:

- name: Установить Docker с использованием роли geerlingguy.docker
  hosts: all
  become: yes  # Используйте sudo для повышения привилегий
  gather_facts: yes

  roles:
    - geerlingguy.docker

Этот простой playbook применяет роль установки Docker ко всем указанным хостам.


Шаг 2: Определите зависимости ролей и коллекций

Создайте файл с именем requirements.yml, чтобы четко определить внешние зависимости ролей и коллекций Ansible:

roles:
  - name: geerlingguy.docker
    version: 7.4.1  # Укажите версию для согласованности

collections:
  - name: community.docker
    version: ">=3.0.0"

Указание версий обеспечивает повторяемые и согласованные развертывания.


Шаг 3: Установите необходимые роли и коллекции

Запустите следующую команду, чтобы установить зависимости, указанные в requirements.yml:

ansible-galaxy install -r requirements.yml

Эта команда загружает и устанавливает как роль, так и коллекцию.


Шаг 4: Запустите Playbook

Выполните playbook, используя интерфейс командной строки Ansible. Вы можете указать свой инвентарь в строке для простоты:

ansible-playbook docker-playbook.yml -i "host1,host2," -u root

Замените host1 и host2 на ваши фактические имена хостов или IP-адреса.

Примечание:

  • Запятая в конце инвентаря в строке обязательна.
  • Опция -u root устанавливает пользователя, который Ansible использует для подключения к хостам; измените ее в зависимости от вашей настройки SSH.

Проверка установки Docker

После выполнения playbook вы можете проверить установку Docker на каждом хосте, выполнив:

ssh root@host1 docker --version
ssh root@host2 docker --version

Вы должны увидеть вывод, похожий на:

Docker version 26.1.3, build XXXXXXX

Заключение

Следуя этому структурированному методу, вы эффективно используете Ansible для последовательной и надежной установки Docker на нескольких серверах, упрощая управление вашей инфраструктурой.