Използване на Ansible за инсталиране на Docker на Ubuntu 🐳

Подробно ръководство за начинаещи с обяснения какво, как и защо правим
🔍 Какво е Ansible?
Ansible е инструмент с отворен код за автоматизация. Използва се за:
- Инсталиране на софтуер 🛠️
- Конфигуриране на системи ⚙️
- Управление на сървъри 🖥️
- Разгръщане на приложения 🚀
Той използва SSH за комуникация със сървърите и не изисква инсталация на агент (т.е. няма нужда от софтуер от другата страна).
❓ Защо да използваме Ansible?
Ansible помага да:
- Автоматизираме рутинни задачи — спестява време.
- Избягваме грешки — всичко е описано в код.
- Възпроизвеждаме еднакви инсталации на много машини.
- Поддържаме документация чрез YAML файлове — четими и ясни.
📦 Какво ще направим в тази статия?
Ще използваме Ansible, за да инсталираме Docker и Docker Compose (вече е едно цяло) на Ubuntu сървър. Ще обясним:
- Как работи Ansible.
- Какво е инвентарен файл.
- Какво са роли и плейбуци (playbooks).
- Ще напишем реален Ansible playbook.
- Ще стартираме автоматизираната инсталация.
🛠️ Предварителни изисквания
- Един контролен сървър (вашият компютър или VM), на който е инсталиран Ansible.
- Един или повече Ubuntu сървъри, до които имате SSH достъп (напр. чрез
user@ip
).
🧪 Стъпка 1: Инсталиране на Ansible
На вашия локален компютър (контролен възел):
sudo apt update
sudo apt install ansible -y
Проверка на инсталацията:
ansible --version
📋 Стъпка 2: Създаване на инвентарен файл
Ansible трябва да знае с кои сървъри да работи. За целта използваме инвентарен файл.
Създайте файл inventory.ini
:
[docker_hosts]
10.110.110.10 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa
🔹 Групата [docker_hosts]
съдържа IP адреса на сървъра, потребителя и SSH ключа за достъп.
Можете да добавите колкото искате сървъри.
📘 Стъпка 3: Какво е playbook?
Playbook е YAML файл, в който описваме какви задачи да се изпълнят на сървърите.
В нашия случай ще:
- Обновим пакетите.
- Инсталираме нужни зависимости.
- Инсталираме Docker.
- Активираме Docker.
- Инсталираме Docker Compose (вече е част от Docker).
🧱 Стъпка 4: Създаване на Ansible playbook
Създайте файл install-docker.yml
със следното съдържание:
---
- name: Инсталиране на Docker и Docker Compose на Ubuntu
hosts: docker_hosts
become: true
tasks:
- name: Обновяване на пакетите
apt:
update_cache: yes
upgrade: dist
- name: Инсталиране на нужни зависимости
apt:
name:
- ca-certificates
- curl
- gnupg
- lsb-release
state: present
- name: Добавяне на Docker GPG ключ
ansible.builtin.apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Добавяне на Docker репозиторио
ansible.builtin.apt_repository:
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
state: present
filename: docker
- name: Обновяване на списъка с пакети
apt:
update_cache: yes
- name: Инсталиране на Docker и Docker Compose
apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
state: latest
- name: Добавяне на потребителя към групата docker
user:
name: "{{ ansible_user }}"
groups: docker
append: yes
- name: Стартиране и активиране на Docker
service:
name: docker
state: started
enabled: true
🔍 Обяснение на всяка задача:
apt
модул – използва се за управление на пакети.apt_key
– добавя GPG ключ.apt_repository
– добавя Docker репо.user
– добавя текущия потребител към групатаdocker
(за да не се пишеsudo docker
).service
– стартира и активира Docker.
▶️ Стъпка 5: Стартиране на playbook-а
Изпълнете следната команда:
ansible-playbook -i inventory.ini install-docker.yml
Ако всичко е наред, ще видите поредица от зелени/жълти съобщения ✅
✅ Проверка след инсталацията
Влезте в сървъра:
ssh ubuntu@10.110.110.10
Проверете Docker:
docker --version
docker compose version
Стартирайте тестов контейнер:
docker run hello-world
Ако виждате съобщение с „Hello from Docker!“ — всичко е успешно 🎉
🔁 Повтаряемост и мащабиране
Представете си, че имате 10 сървъра. Вместо да въвеждате ръчно 20 команди на всеки, с Ansible:
- Пишете един playbook
- Изпълнявате една команда
- Всички сървъри се настройват по еднакъв начин 🔁
🧠 Какво научихме?
С тази статия научихме:
- Какво е Ansible и защо е мощен инструмент за автоматизация.
- Как се описват сървъри в инвентарни файлове.
- Какво е playbook и как се пише.
- Как да автоматизираме инсталацията на Docker и Docker Compose.
📦 Защо да използваме Ansible с Docker?
Docker е лесен за използване, но ако настройвате сървъри често – Ansible пести време и ви осигурява:
- Консистентност – всичко се прави еднакво.
- Повторяемост – може да изпълните скрипта колкото пъти желаете.
- Лесна поддръжка – променяте един файл и всички сървъри са в крак.
🚀 Заключение
Ansible е невероятен инструмент, особено когато се комбинира с други технологии като Docker. Дори и да сте начинаещи, с няколко YAML файла можете да изградите стабилна, автоматизирана инфраструктура.
Пробвайте, експериментирайте и изградете собствения си набор от плейбуци! 🧰
📁 Полезни ресурси
Ако тази статия ви беше полезна – споделете я с приятели и колеги 👥
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut