Ansible

Как использовать Ansible Galaxy

Как использовать Ansible Galaxy
Ansible Galaxy - менеджер ролей и коллекций для Ansible. Вы можете сравнить его с диспетчером пакетов NPM (Node Package Manager) в Node.js.

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

Вы также можете написать свои роли и коллекции и загрузить их в Ansible Galaxy. Это выходит за рамки данной статьи.

В этой статье я покажу вам, как использовать инструмент командной строки Ansible Galaxy для установки ролей и коллекций Ansible Galaxy и использования их в своей книге. Итак, приступим.

Предпосылки:

Если вы хотите попробовать примеры из этой статьи,

1) На вашем компьютере должен быть установлен Ansible.

2) У вас должно быть как минимум 2 хоста Linux (Debian 10 и CentOS 7), настроенные для автоматизации Ansible.

На LinuxHint есть много статей, посвященных установке Ansible и настройке хостов для автоматизации Ansible. Вы можете проверить их при необходимости.

Настройка каталога проекта:

Прежде чем мы начнем, давайте создадим каталог проекта, чтобы мы могли организовать файлы нашего проекта.

Чтобы создать каталог проекта галактика-демо / в твоей ДОМ каталог, выполните следующую команду:

$ mkdir -pv galaxy-demo / playbooks, vars

Теперь перейдите к галактика-демо / каталог следующим образом:

$ cd galaxy-demo /

Создайте файл конфигурации Ansible анзибль.cfg в каталоге вашего проекта следующим образом:

$ нано доступный.cfg

Введите следующие строки: анзибль.cfg файл.

[по умолчанию]
inventory = hosts
host_key_checking = Ложь

Когда вы закончите, нажмите + Икс с последующим Y а также чтобы спасти анзибль.cfg конфигурационный файл.

Создайте файл инвентаризации Ansible хозяева в каталоге вашего проекта следующим образом:

$ nano хосты

Введите следующие строки в свой хозяин инвентарный файл.

[база данных]
vm1.нодекит.ком
[Интернет]
vm9.нодекит.ком

Здесь, vm1.нодекит.ком является хостом Debian 10, и vm9.нодекит.ком является хостом CentOS 7.

Когда вы закончите, нажмите + Икс с последующим Y а также чтобы спасти хозяева инвентарный файл.

Чтобы проверить, можете ли вы пропинговать удаленные хосты Ansible со своего компьютера, выполните следующую команду:

$ ansible all -u ansible -m пинг

Как видите, я могу пинговать свои удаленные хосты Ansible vm1.нодекит.com и vm9.нодекит.ком.

Поиск ролей и коллекций Ansible Galaxy:

Вы можете искать роли и коллекции Ansible Galaxy на официальном сайте Ansible Galaxy.

После загрузки веб-страницы щелкните значок поиска, чтобы найти роли и коллекции Ansible Galaxy.

Теперь введите то, что вы ищете, и щелкните значок поиска.

В этом примере я искал сервер mysql. Как видите, отображается результат поиска.

Поисковый запрос сервер mysql вернул 2 коллекции и много ролей.

Роль - это модуль Ansible, который выполняет определенные функции. В коллекции много ролей. Это главное различие между ролью и коллекцией.

Чтобы просмотреть дополнительную информацию о роли, щелкните ее.

В Подробности вкладка пакета ролей покажет техническую информацию о роли.

В Прочти меня Вкладка отобразит информацию об установке и использовании роли.

Таким же образом, пакет коллекции будет иметь информацию об установке на Подробности вкладка.

На Содержание вкладка, будут отображены роли, которые будут установлены коллекции.

В Прочти меня вкладка отобразит полезную информацию о коллекции.

Установка и использование ролей Ansible Galaxy:

В этом разделе я покажу вам, как установить и использовать роль Ansible Galaxy. Итак, приступим.

Скажем; вы хотите установить роль Ansible Galaxy Geerlingguy.MySQL.

Для этого выполните следующую команду:

$ ansible-galaxy установить geerlingguy.MySQL

Роль Ansible Galaxy Geerlingguy.MySQL должен быть установлен.

Создать пьесу install_database.ямл в пьесы / каталог для тестирования Geerlingguy.MySQL роль следующим образом:

$ nano playbooks / install_database.ямл

Затем введите следующие строки в install_database.ямл файл.

- хосты: база данных
пользователь: ansible
стать: да
vars_files:
-… / Vars / database.ямл
роли:
- роль: geerlingguy.MySQL

Когда вы закончите, нажмите + Икс с последующим Y а также чтобы спасти install_database.ямл файл.

Здесь роль Geerlingguy.MySQL используется в роли раздел.

В vars_files Раздел используется для добавления необходимых переменных ролей / пьес в книгу. Здесь переменные будут помещены в вары / база данных.ямл файл.

Теперь создайте база данных.ямл файл в vars / каталог следующим образом:

$ нано вары / база данных.ямл

Теперь добавьте желаемые переменные в база данных.ямл файл. Я добавил следующие переменные в база данных.ямл файл.

mysql_databases:
- имя: db01
кодировка: utf8mb4
сортировка: utf8mb4_unicode_ci
mysql_users:
- имя: linuxhint
хозяин: "%"
пароль: секрет
Priv: "db01.*:ВСЕ"

Эти переменные настраивают geeringguy.MySQL роль, чтобы создать нового пользователя linuxhint, устанавливает пароль секрет для linuxhint пользователь, создает новую базу данных db01 и гранты linuxhint полный доступ пользователя к db01 база данных.

Когда вы закончите, нажмите + Икс с последующим Y а также чтобы спасти база данных.ямл файл.

Теперь вы можете запустить install_database.ямл playbook следующим образом:

Плейбуки $ ansible-playbook / install_database.ямл

Как видите, playbook запускает Geerlingguy.MySQL роль. Это может занять некоторое время.

На данный момент install_mysql.ямл playbook должен быть завершен.

На моем vm1.нодекит.com Хост Debian 10, MySQL сервис запущен, как вы можете видеть на скриншоте ниже,

Я также могу войти на сервер базы данных MySQL как linuxhint Пользователь.

Как видите, база данных db01 также создается.

Итак, вот как вы устанавливаете и используете роли Ansible Galaxy.

Установка и использование коллекций Ansible:

В этом разделе я покажу вам, как установить и использовать коллекцию Ansible Galaxy. Итак, приступим.

Скажем; вы хотите установить коллекцию Ansible Galaxy Geerlingguy.php_roles.

Для этого выполните следующую команду:

$ ansible-galaxy collection установить geerlingguy.php_roles

Коллекция Geerlingguy.php_roles должен быть установлен.

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

$ nano плейбуки / install_php.ямл

Теперь введите следующие строки в install_php.ямл файл.

- хосты: сеть
пользователь: ansible
стать: да
коллекции:
- Geerlingguy.php_roles
роли:
- роль: php
- роль: php_versions
вары:
php_version: '7.3 '

Когда вы закончите, нажмите + Икс с последующим Y а также чтобы спасти install_php.ямл файл.

Эти строки импортируют Geerlingguy.php_roles сборник в твоей пьесе.

в роли раздел, вы можете использовать нужные вам роли из вашей коллекции. Здесь я добавил 2 роли (php а также php_versions) от Geerlingguy.php_roles коллекция.

В php роль не имеет переменных, зависящих от роли.

Если вы хотите настроить роль с помощью переменных, вы можете добавить их под варс раздел роль следующим образом.

Вы можете узнать, какие роли доступны для использования, на официальной странице коллекции Ansible Galaxy

На официальной странице роли Ansible Galaxy будет информация о том, какие переменные вы можете использовать для настройки роли.

Теперь вы можете запустить install_php.ямл playbook следующим образом:

Плейбуки $ ansible-playbook / install_php.ямл

Как видите, playbook запущен. Это может занять некоторое время.

На этом этапе сценарий должен быть завершен.

Как видите, я могу получить доступ к веб-серверу Apache 2, работающему на моем хосте CentOS 7 vm9.нодекит.ком.

Я также создал индекс.php файл в / var / www / html / каталог моего хоста CentOS 7 vm9.нодекит.ком.

Как видите, веб-сервер может обслуживать индекс.php страница правильно.

Итак, вот как вы устанавливаете и используете коллекции Ansible Galaxy.

Заключение:

В этой статье я объяснил, что такое Ansible Galaxy. Я также продемонстрировал, как устанавливать и использовать роли / коллекции из Ansible Galaxy. Ansible Galaxy поможет вам не изобретать велосипед заново, что также называется повторением кода. Вы сможете быстрее выполнять свои проекты на Ansible с помощью Ansible Galaxy.

OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...
Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...