870просмотров
92.4%от подписчиков
18 февраля 2026 г.
Score: 957
Ansible!🐧🐧 Продолжаем тему со сбором коллекции📔 небольших, но полезных плейбуков Ansible🖥. 📱 Playbook №4 - Подключение APT репозитория на примере Docker ---
- name: Add repo and install Docker Engine hosts: all gather_facts: true become: true vars: docker_apt_keyring_dir: "/etc/apt/keyrings" docker_apt_gpg_filename: "docker.gpg" docker_apt_gpg_url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" docker_apt_repo_url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}" tasks: - name: Install required packages ansible.builtin.apt: name: - ca-certificates - curl - gnupg - lsb-release state: present update_cache: true retries: 3 tags: docker_prepare - name: Create directory for apt keyrings ansible.builtin.file: path: "{{ docker_apt_keyring_dir }}" state: directory owner: root group: root mode: "0755" tags: docker_keyring - name: Download Docker GPG key ansible.builtin.get_url: url: "{{ docker_apt_gpg_url }}" dest: "{{ docker_apt_keyring_dir }}/{{ docker_apt_gpg_filename }}" mode: "0644" force: false tags: docker_gpg - name: Add Docker apt repository ansible.builtin.apt_repository: repo: > deb [signed-by={{ docker_apt_keyring_dir }}/{{ docker_apt_gpg_filename }}] {{ docker_apt_repo_url }} {{ ansible_distribution_release }} stable state: present update_cache: true filename: docker tags: docker_repo - name: Install Docker packages ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present update_cache: true retries: 3 tags: docker_install - name: Enable and start Docker service ansible.builtin.systemd: name: docker state: started enabled: true tags: docker_enable ✍️ Плейбук выполняет следующие действия: - Устанавливает необходимые системные пакеты для работы с APT репозиториями (ca-certificates, curl, gnupg, lsb-release);
- Создает директорию для хранения GPG ключей APT (/etc/apt/keyrings);
- Загружает официальный GPG ключ Docker и сохраняет его в директории ключей;
- Добавляет официальный APT репозиторий Docker, используя загруженный GPG ключ для подписи;
- Устанавливает основные пакеты Docker (docker-ce, docker-ce-cli, containerd.io, плагины buildx и compose);
- После успешной установки пакетов выполняет запуск/настраивает автозапуск Systemd сервиса Docker. 🔍 Интересные моменты: - Динамическая конфигурация - использует факты Ansible (ansible_distribution, ansible_distribution_release) для автоматического определения дистрибутива и его версии;
- Управление ключами - GPG ключ Docker загружается и хранится в /etc/apt/keyrings, а репозиторий добавляется с использованием опции signed-by;
- Повторные попытки apt - задачи установки пакетов включают retries: 3 для повторных попыток в случае временных сетевых проблем, кратковременной недоступности репозиториев или когда apt выполняет периодические обновления/проверки по расписанию🤷♂️. ⏳ Запускать так:
ansible-playbook -i ./inventory.yml ./playbook.yml Хорошего вечера 👮♀ #ansible #docker
---
Сайт🐦⬛️ | Чат🧐 | GitHub📱