--- - name: Migrate Docker repository to modern DEB822 standard hosts: docker become: true tasks: # 1. Зачищаем старые следы (legacy-дефолт) - name: Remove legacy Docker apt source list if exists ansible.builtin.file: path: /etc/apt/sources.list.d/docker.list state: absent - name: Remove legacy Docker GPG key from trusted.gpg.d ansible.builtin.file: path: /etc/apt/trusted.gpg.d/docker.gpg state: absent # 2. Разворачиваем репозиторий по "актуальной мете" - name: Setup Docker CE repository using deb822 format ansible.builtin.deb822_repository: name: docker types: deb uris: https://download.docker.com/linux/debian # ansible_distribution_release автоматически подставит имя дистрибутива (например, bookworm или trixie) suites: "{{ ansible_distribution_release }}" components: stable # Ansible сам скачает текстовый ключ, дебронирует его в бинарный # и сохранит по канону в /etc/apt/keyrings/docker.gpg signed_by: https://download.docker.com/linux/debian/gpg register: docker_repo_added # 3. Обновляем кэш пакетов только при изменениях - name: Run apt update ansible.builtin.apt: update_cache: true when: docker_repo_added.changed - name: Install the packages versions ansible.builtin.package: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin - name: Напоминание о настройке LXC на гипервизоре ansible.builtin.pause: prompt: | [ВНИМАНИЕ] Для корректной работы Docker внутри LXC, необходимо проверить что он в priveledge-моде и необходимо вручную добавить следующие строки в конфиг контейнера на гипервизоре (например, Proxmox в файл /etc/pve/lxc/%lxc_container_id%.conf): [33m====================================================================== lxc.apparmor.profile: unconfined lxc.cgroup2.devices.allow: c 10:200 rwm ====================================================================== [0m Нажмите ENTER для продолжения, когда убедитесь, что настройки применены.