Перейти к содержанию

Пример использования ansible

0. Переносим SSH ключ на целевую машину

ssh-copy-id devops@141.105.69.3

1. Создаем рабочую директорию и настраиваем виртуальное окружение

mkdir ansible-test

и переходим в данную директорию

Затем нам нужно создать и настроить виртуальное окружение


2. Создаем ansible.cfg

Создаем конфигурационный файл нашего проекта

[defaults]

inventory = ./inventory.ini
remote_user = devops
ask_pass = True

3. Создаем инвентарь

Создаем инвентарный файл

vim inventory.ini

и пишем сервера которыми будем управлять через Ansible

Пример файла:

[test]
app01 ansible_host=141.105.69.3

[all:vars] 
ansible_user=test

4. Создаем role

Создаем директорию и переходим в нее

mkdir roles; cd roles

Создаем роль с нужным названием

ansible-galaxy role init k8s

По итогу структура проекта получается следующей

ansible/
|
|- ansible.cfg
|
|- inventory.ini # описывает машины
|
|- playbook.yml # управляет ролями
|
|- roles/
     |
     |- k8s/ # результат выполенния команды ansible role init k8s
        |
        |- defaults/
        |
        |- files/ 
        |
        |- handlers/
        |
        |- meta/
        |
        |- tasks/ # сущность роли
        |
        |- templates/
        |
        |- tests/
        |
        |- vars/

5. Пишем playbook

Переходим в корень нашего проекта и создаем playbook



6. Проверяем наш инвентарь

Проверяем что наш нвентарь написан корректно и запустим простой модуль на проверку доступности

ansible test -m ping -i inventory.ini -u username --ask-pass

пример вывода:

SSH password: 
[WARNING]: Host 'app01' is using the discovered Python interpreter at '/usr/bin/python3.12', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.21/reference_appendices/interpreter_discovery.html for more information.
app01 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3.12"
    },
    "changed": false,
    "ping": "pong"
}

Последняя проверка 21.09.2026