Назад в блог

Установка и настройка Ansible на Ubuntu 20.04

Установка и настройка Ansible на Ubuntu 20.04

Если вы являетесь системным администратором, важно иметь согласованный способ управления всеми используемыми серверами и компьютерами. Системы управления конфигурациями могут в значительной степени упростить этот процесс. Они эффективно управляют всеми системами из центрального расположения.

В Linux доступно несколько систем управления конфигурациями. Например, Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine и т. д. В то время как такие инструменты, как Puppet и Chef, имеют тенденцию быть более сложными и продвинутыми, Ansible предлагает простоту и удобство использования. Вам не нужно устанавливать какое-либо дополнительное клиентское ПО на узлы, чтобы Ansible работал. Вместо этого Ansible использует SSH для управления и автоматизации систем. Ansible — это программное обеспечение с открытым исходным кодом. Оно также обладает высокой масштабируемостью, согласованностью и надежностью.

В этом руководстве показано, как установить и настроить Ansible на Ubuntu 20.04.

Ansible на Ubuntu

Ansible может выполнять три типа автоматизации:

  • Предоставление ресурсов: Позволяет развертывать различные серверы в соответствии с потребностями инфраструктуры.

  • Управление конфигурацией: Позволяет выполнять различные изменения конфигурации серверов. Например, запуск и остановку служб, установку приложений и обновлений, внедрение политик безопасности и т. д.

  • Развертывание приложений: Упрощает DevOps благодаря автоматическому развертыванию приложений собственной разработки в продуктивной среде.

Ansible может отлично работать практически в любой IT-среде – будь то хостинговые или традиционные серверы, платформы виртуализации или облако. Он также поддерживает управление различными системами, такими как базы данных, сети, брандмауэры, устройства хранения данных и многие другие. CloudSigma также поддерживает Ansible для нашей облачной инфраструктуры.

Предварительные требования

Для этого руководства нам понадобится пара машин:

  • Управляющий узел: Управляющий узел — это центральный узел, который подключается ко всем хост-узлам, выдает задачи и управляет различными аспектами системы. Управляющим узлом может быть что угодно – локальный компьютер или удаленный сервер.

  • Хост-узел: Хосты Ansible — это машины, которые может автоматизировать управляющий узел Ansible.

Как следует из названия руководства, все эти машины должны быть настроены с Ubuntu 20.04 и последними версиями пакетов. Вот краткое руководство по настройке сервера Ubuntu. Поскольку Ansible использует SSH для подключения к машинам, на всех хост-узлах должны быть правильно настроены SSH-ключи для связи с управляющим узлом. Убедитесь, что на всех хост-узлах публичный SSH-ключ управляющего узла добавлен в файл authentication_keys . Следуйте нашему руководству, чтобы узнать, как создать и добавить SSH-ключи на серверы Linux.

Шаг 1. Установка Ansible

В случае с Ubuntu нет необходимости в какой-либо дополнительной настройке пакетов или репозиториев. Ansible доступен напрямую из официальных репозиториев пакетов Ubuntu. Выполнение любых изменений на уровне системы требует прав администратора — пользователя root или пользователя без прав root, но с привилегиями sudo. Файл sudoers управляет правами sudo для пользователей и групп.

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

Control apt update

Install ansible

Если вы собираетесь использовать пароль в качестве механизма аутентификации SSH, вам необходимо, чтобы пакет sshpass был установлен:

Install sshpass

Шаг 2. Настройка файла инвентаря

В Ansible файл инвентаря содержит информацию обо всех хостах, которыми будет управлять ansible. Это могут быть десятки или сотни серверов, зарегистрированных в файле инвентаря. Серверы также могут быть разделены на группы и подгруппы. Как правило, файл инвентаря используется для определения переменных, которые будут действительны только для конкретных хостов или групп. Это полезный прием при написании плейбуков и шаблонов. Определенные переменные также могут влиять на то, как запускается плейбук.

Ansible поставляется с файлом инвентаря по умолчанию. Сначала откройте этот файл в текстовом редакторе:

Ansible hosts file

По умолчанию файл инвентаря содержит различные примеры для справки. Вот пример с группой под названием servers, содержащей три разных сервера. Переменная ansible_python_interpreter определяет интерпретатор Python для всех hosts, включенных в инвентарь. С помощью директивы ansible_user, мы можем объявить учетную запись пользователя, под которой Ansible будет подключаться:

Ansible hosts file updated

Затем сохраните файл и закройте редактор. Чтобы проверить инвентарь, выполните следующую команду:

Вывод должен выглядеть примерно так:

Ansible inventory list

Шаг 3. Тестирование соединения

После настройки файла инвентаря нам нужно проверить, может ли Ansible подключиться к этим серверам по SSH. Мы можем сделать это, просто отправив ping-запрос на все хост-узлы. С управляющего узла, выполните ping всех хост- узлов:

Модуль ping проверяет следующее:

  • Доступность хоста

  • Действительность учетных данных SSH

  • Способность хостов запускать модули Ansible с помощью Python

Вывод должен выглядеть примерно так:

Ansible ping all

Если ответ от конкретного узла — pong, это означает, что узел готов к запуску команд и плейбуков Ansible на сервере.

Шаг 4. Запуск ad-hoc команд

Это необязательный шаг. Однако он может быть полезен для проверки полной функциональности Ansible на удаленных серверах. Этот раздел также может служить базовым введением в дополнительное использование и настройку Ansible. Как только мы подтвердим подключение к узлам, мы сможем начать запуск ad-hoc команд и плейбуков. Любую команду, которую вы обычно запускаете на удаленных серверах, можно запустить с помощью Ansible на всех серверах.

Выполните следующую команду. Она проверит использование диска на всех узлах одновременно:

Ansible all df cmd

Мы также можем выполнять различные модули Ansible с помощью функции ad-hoc команд, точно так же, как мы выполняли модуль ping для тестирования. Например, модуль apt работает с пакетным менеджером APT в Ubuntu. Он может управлять пакетами на удаленном узле Ubuntu. Обратите внимание, что для внесения изменений на системном уровне требуются права root. Удаленный узел должен разрешать вход под root, либо пользователь должен иметь права на выполнение административных задач.

В следующем примере Ansible устанавливает Nginx на все хост-узлы:

Как насчет запуска команд только на одном сервере? Мы будем использовать имя сервера (назначенное в файле инвентаря) для указания сервера:

Adhoc cmd df selected host

Мы также можем указать несколько серверов. Объявите имя каждого целевого сервера через двоеточие в качестве разделителя:

Adhoc cmd df multiple hosts

Заключение

В этом руководстве мы показали вам пошаговый метод установки Ansible и настройки файла инвентаря для запуска ad-hoc команд с управляющего узла Ansible. После настройки управляющий узел сможет выполнять любые команды или плейбуки, которые вы захотите запустить на хостах.

Приятной работы!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.