В этой серии статей по Ansible вы изучите все навыки, необходимые для управления и автоматизации операций ИТ-инфраструктуры с помощью Ansible.
Что такое Ansible?
Ansible – это инструмент с открытым исходным кодом для управления конфигурацией, инициализацией программного обеспечения и развертыванием приложений, который упрощает автоматизацию развертывания приложений и работы ИТ-инфраструктуры.
Ansible очень легок, прост в настройке и не требует ресурсов, потому что ему не нужен агент для работы (без агента), в отличие от других инструментов автоматизации, например, Puppet, который основан на агентах и немного сложен в настройке.
Это объясняет, почему популярность Ansible растет с каждым днем и становится инструментом автоматизации перехода для многих предприятий.
В научной фантастике слово Ansible относится к гипотетическому устройству, которое позволяет пользователям мгновенно общаться на больших расстояниях; то есть устройство связи быстрее скорости света. Теперь вы знаете, откуда Ansible получил свое название.
Создание вашей игровой площадки
Чтобы извлечь максимальную пользу из этой серии и безболезненно следовать ей, я советую вам использовать ту же настройку, что и я.
Мы создали одну виртуальную машину RHEL (Red Hat Enterprise Linux) 8, которая будет служить управляющим узлом. Узел управления, как следует из названия, в основном представляет собой сервер, который используется для управления другими удаленными хостами (управляемыми узлами).
Мы создали три виртуальные машины CentOS 8 для управляемых узлов: node1, node2 и node3. Мы также создали Ubuntu 18.04 для последнего управляемого узла.
У нас недостаточно ресурсов на компьютере для создания всех этих виртуальных машин без сбоя компьютера. Итак, мы использовали Microsoft Azure на всех виртуальных машинах, как вы можете видеть на скриншоте ниже:
Вы можете использовать любых других поставщиков облачных серверов.
Установка Ansible
Ansible полагается на SSH и Python для выполнения всей магии автоматизации, поэтому вам нужно только установить Ansible на контрольном узле и убедиться, что OpenSSH и Python установлены как на контрольном, так и на управляемых узлах.
Короче говоря, вам не нужно устанавливать Ansible на управляемых узлах!
Теперь мы собираемся показать вам, как установить Ansible в различных системах.
Установка Ansible в системах RHEL
Сначала мы покажем вам, как установить Ansible в системе RHEL 8.
Войдите в свой управляющий узел и переключитесь на пользователя root:
[andreyex@control ~]$ sudo su - Last login: Tue Oct 20 01:05:00 UTC 2020 on pts/0
Проверяя информацию о версии Linux, вы можете увидеть, что мы запускаем RHEL 8.2 и собираюсь использовать его в качестве узла управления:
[root@control ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.2 (Ootpa)
Чтобы установить Ansible в системе RHEL 8, вам сначала нужно зарегистрировать свою систему с помощью команды subscription-manager :
[root@control ~]# subscription-manager register Registering to: subscription.rhsm.redhat.com:443/subscription Username:xxxxx Password: xxxxx The system has been registered with ID: 1d8ace59-c140-4f8c-b4bb-b4cd0f4fb811 The registered system name is: control
Вам будет предложено ввести имя пользователя и пароль, как видите, если у вас нет учетной записи Red Hat, вы можете создать учетную запись и получить бесплатную пробную версию.
Затем вы должны присоединить новую подписку с помощью следующей команды:
[root@control ~]# subscription-manager attach --auto Installed Product Current Status: Product Name: Red Hat Enterprise Linux for x86_64 Status: Subscribed Product Name: Red Hat Enterprise Linux for x86_64 - Extended Update Support Status: Subscribed
Обратите внимание, что вы могли зарегистрировать и присоединить подписку с помощью одной команды:
subscription-manager register --username=<USER_NAME> --password=<PASSWORD> --auto-attach
Теперь у нас есть доступ ко всем репозиториям RHEL 8. Вы можете просмотреть все доступные репозитории Ansible, выполнив следующую команду:
[root@control ~]# yum repolist all | grep ansible ansible-2-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled ansible-2-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled ansible-2-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled ansible-2.8-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled ansible-2.8-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled ansible-2.8-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled ansible-2.9-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled ansible-2.9-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
Теперь найдите репозиторий новейшей версии Ansible и включите его. На момент написания этой статьи ansible-2.9 является последней версией, поэтому мы собираемся включить ansible-2.9-for-rhel-8-x86_64-rpms с помощью команды yum_config_manager следующим образом:
[root@control ~]# yum-config-manager --enable ansible-2.9-for-rhel-8-x86_64-rpms Updating Subscription Management repositories.
Теперь вы можете убедиться, что репозиторий Ansible действительно включен, перечислив все включенные репозитории в вашей системе:
[root@control ~]# yum repolist enabled Updating Subscription Management repositories. repo id repo name ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs) microsoft-azure-rhel8-eus Microsoft Azure RPMs for RHEL8 Extended Update Support rhel-8-for-x86_64-appstream-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream - Extended Update Support from RHUI (RPMs) rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) rhel-8-for-x86_64-baseos-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Extended Update Support from RHUI (RPMs) rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
Вся эта предварительная работа сделана. Теперь вы можете, наконец, установить Ansible:
[root@control ~]# yum install -y ansible
После завершения установки. Вы можете убедиться, что Ansible действительно установлен, выполнив команду:
[root@control ~]# ansible --version ansible 2.9.14 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Dec 5 2019, 15:45:45) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
Потрясающе! Теперь вы успешно установили Ansible на RHEL 8. Мы уверены, что вы могли подумать, что это был длительный процесс!
Установка Ansible на CentOS
В CentOS Ansible предоставляется репозиторием EPEL (Extra Package for Enterprise Linux).
Вы можете установить и включить репозиторий EPEL, установив пакет epel-release следующим образом:
[root@node1 ~]# yum install -y epel-release
Теперь вы можете установить ansible:
[root@node1 ~]# yum install -y ansible
Имейте в виду, что мы установили Ansible на одном из управляемых узлов здесь (node1) только в учебных целях; вам нужно только установить Ansible на контрольном узле.
Установка Ansible в Ubuntu
В Ubuntu вам необходимо убедиться, что в вашей системе включен репозиторий желаемой версии Ansible.
Вы можете добавить и включить репозиторий ansible-2.9 ppa, используя следующую команду:
root@node4:~# apt-add-repository --yes --update ppa:ansible/ansible-2.9
Наконец, вы можете установить Ansible в Ubuntu :
root@node4:~# apt-get -y install ansible
На этом мы подошли к концу нашего первого руководства в этой серии подготовки к RHCE Ansible. Следите за обновлениями в следующей статье, так как вы узнаете, как настроить Ansible и запустить несколько действительно крутых команд Ad-Hoc Ansible.