Files
private-ai-platform/ansible/roles/docker/tasks/main.yml
Hrankin, Aleksandr (contracted) f243f440c3 init
2026-02-19 11:34:13 +00:00

75 lines
2.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
# 1) Чистим потенциально битый repo-файл (как у тебя было)
- name: remove broken docker repo if exists
file:
path: /etc/apt/sources.list.d/docker.list
state: absent
# 2) Минимум нужных пакетов
- name: install prerequisites
apt:
name:
- ca-certificates
- curl
- gnupg
state: present
update_cache: yes
# 3) Keyring + ключ
- name: ensure keyrings dir exists
file:
path: /etc/apt/keyrings
state: directory
mode: "0755"
- name: download docker GPG key
get_url:
url: https://download.docker.com/linux/debian/gpg
dest: /etc/apt/keyrings/docker.gpg
mode: "0644"
# 4) Repo (архитектура через ansible_architecture -> amd64)
- name: add docker apt repository
copy:
dest: /etc/apt/sources.list.d/docker.list
content: |
deb [arch={{ 'amd64' if ansible_architecture in ['x86_64','amd64'] else ansible_architecture }} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian {{ ansible_lsb.codename }} stable
# 5) Пробуем поставить containerd.io, перебирая версии (и сразу держим)
- name: install first working containerd.io (skip broken versions) and hold
shell: |
set -euo pipefail
apt-get update
mapfile -t versions < <(apt-cache madison containerd.io | awk '{print $3}' | sort -V | tac)
for v in "${versions[@]}"; do
echo "Trying containerd.io=$v"
if apt-get install -y "containerd.io=$v"; then
apt-mark hold containerd.io
exit 0
fi
done
echo "No working containerd.io version found in repo"
exit 1
args:
executable: /bin/bash
changed_when: true
# 6) Docker пакеты (containerd.io уже стоит/held)
- name: install docker packages
apt:
name:
- docker-ce
- docker-ce-cli
- docker-buildx-plugin
- docker-compose-plugin
state: present
update_cache: yes
- name: enable & start docker service
service:
name: docker
state: started
enabled: yes