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

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

Подробно ръководство за начинаещи с обяснения какво, как и защо правим


🔍 Какво е Ansible?

Ansible е инструмент с отворен код за автоматизация. Използва се за:

  • Инсталиране на софтуер 🛠️
  • Конфигуриране на системи ⚙️
  • Управление на сървъри 🖥️
  • Разгръщане на приложения 🚀

Той използва SSH за комуникация със сървърите и не изисква инсталация на агент (т.е. няма нужда от софтуер от другата страна).

❓ Защо да използваме Ansible?

Ansible помага да:

  • Автоматизираме рутинни задачи — спестява време.
  • Избягваме грешки — всичко е описано в код.
  • Възпроизвеждаме еднакви инсталации на много машини.
  • Поддържаме документация чрез YAML файлове — четими и ясни.

📦 Какво ще направим в тази статия?

Ще използваме Ansible, за да инсталираме Docker и Docker Compose (вече е едно цяло) на Ubuntu сървър. Ще обясним:

  1. Как работи Ansible.
  2. Какво е инвентарен файл.
  3. Какво са роли и плейбуци (playbooks).
  4. Ще напишем реален Ansible playbook.
  5. Ще стартираме автоматизираната инсталация.

🛠️ Предварителни изисквания

  • Един контролен сървър (вашият компютър или 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 файла можете да изградите стабилна, автоматизирана инфраструктура.

Пробвайте, експериментирайте и изградете собствения си набор от плейбуци! 🧰


📁 Полезни ресурси


Ако тази статия ви беше полезна – споделете я с приятели и колеги 👥

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: