Этот учебник проведет вас через установку Docker на нескольких хостах с использованием Ansible и популярной поддерживаемой сообществом роли Ansible geerlingguy.docker
.
Предварительные требования
Перед началом убедитесь, что у вас есть:
- Установленный Ansible на вашем управляющем компьютере. (Руководство по установке)
- Настроенный доступ по SSH к вашим целевым хостам.
- Пользователь с правами sudo (или доступом root) на целевых хостах.
Шаг 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 на нескольких серверах, упрощая управление вашей инфраструктурой.