Как развернуть Ansible on Ubuntu 20.04 Server

Posted by

Хочется чего-то интересного, а интересно что-то автоматизировать в плане обслуживания.

Ansible — инструмент в задачу которого будет управление всеми другими узлами через единый центр, взаимодействие осуществляется через SSH соединение, либо с использованием логина и пароля, либо с помощью публичного ключа.

Схема взаимодействия через Ansible с

Пояснение по работе Ansible:

  • через файл hosts происходит инвентаризация удаленный узлов, с которыми предстоит работа
  • через файл playbook (файла с расширением YAML) все также опираясь на файл инвентаризации (файл hosts), но описывается список действий, к примеру: установить, обновить, переместить и т.д.

За основу беру свои заметки:

Что понадобится? несколько систем на с которыми центральная система будет взаимодействовать посредством Ansible, у меня это будет

VM: Ubuntu 20.04 Server

  • Hostname: srv-us2004b

VM2: Ubuntu 18.04 Server

  • Hostname: srv-us1804c
  • IP: 172.33.33.133

VM3: Ubuntu 18.04 Server

  • Hostname: srv-us1804d
  • IP: 172.33.33.128

Шаг №1: Обновляю систему Ubuntu 20.04 на самую последнюю версию установленных пакетов из дефолтных репозитариев:

Шаг №2: Текущая версия приложения Ansible в дефолтных репозитариях Ubuntu 20.04 Server:

Шаг №3: Но использовать будут самую последнюю доступную в подключаемых репозитариях:

Шаг №4: На узлах в качестве учетной записи использую логин ekzorchik и дабы команды с правами суперпользователя исполнялись, изменяю файл visudo:

Шаг №5: Копирую публичный ключ с Ubuntu 20.04 Server на узлы с которыми буду взаимодействовать:

Проверяю что могу подключаться без ввода пароля:

Шаг №6: Изменяю под кем ansible будет взаимодействовать с узлами и указываю какой приватный ключ использовать:

После не забываем сохранить внесенные изменения.

Шаг №7: Создаю дефолтную копию инвентаризованного файла hosts:

Синтаксис хостов внутри файла hosts

Шаг №8: Создаю группу хостов в файле hosts:

Шаг №9: Пробую взаимодействовать через Ansible с удаленными хостами:

Если Ваш собственный файл с хостами находится в другом месте то чтобы выполнить по нему действия следует задействовать ключ «-i»:

ansible -i ~/hosts -m ping all

где ключ

  • -m → использовать модуль
  •  -a ‘uptime’ → передать параметр к задействованному модулю

Или можно указать конкретный хост, а не применять запрос ко всей группе хостов обозначенных в квадратных скобках:

На заметку: Дабы при выполнении через ansible не было диагностических сообщений на консоль уже после того как все отлажено и работает, можно добавить параметр:

После не забываем сохранить внесенные изменения.

Отлично, подключение успешно через публичный ключ прошло.

Шаг №10: Чтобы обновить обслуживаемые системы до последнего состояния в рамках текущего релиза, для этого использую модуль raw:

Странно почему версия ядра разная, 128 и 136, разбираю как сделать одинаковыми или более новыми:

Отлично, что мне и требовалось. А требовалось, как через Ubuntu 20.04 с помощью Ansible взаимодействовать с удаленными узлами. Я понимаю, что выше написанное это малая часть, но начинать же нужно с чего-то, а после если требует задача усложнять взаимодействие.

Итого, на этом пока все, с уважением автор блога Олло Александр aka ekzorchik.