Поиск по сайту:

Как создавать и загружать роли в Ansible Galaxy и использовать их — часть 9


В Части 9 серии Ansible вы узнаете, как создавать и загружать роли в Ansible Galaxy и использовать их. Ansible — это простой, но эффективный инструмент управления конфигурацией и автоматического развертывания, который эффективно автоматизирует сложные задачи. Вы можете управлять сотнями или даже тысячами серверов с одного узла управления, используя один файл playbook.

Однако написание плейбуков для управления одним и тем же сервисом в разных средах может быть довольно громоздким, и это обычно приводит к избыточности кода. Кроме того, большая сложность может усложнить управление всеми устройствами.

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

Роли — это просто функциональные возможности сборников пьес. Роль включает в себя практически то же, что и сборник сценариев: задачи, файлы, модули, переменные и шаблоны. Также обратите внимание, что каждая роль ограничена конкретной задачей или желаемым результатом.

Создание Ansible роли

Чтобы создать роль в Ansible, просто используйте синтаксис.

ansible-galaxy init role_name 

В вашем текущем рабочем каталоге будет создано несколько каталогов и файлов. В данном случае я решил создать роль в каталоге /etc/ansible/roles.

Давайте создадим роль под названием apache.

ansible-galaxy init apache

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

tree apache

Как видите, каталогов создано несколько, однако не все из них будут использоваться в плейбуке.

Теперь, чтобы использовать вновь созданную роль в книге воспроизведения, определите задачу в файле main.yml, который находится в каталоге задач вашей новой роли.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

После этого создайте файл книги воспроизведения и вызовите роль, как показано.

--- 
- hosts: webservers
  roles:
   - apache

Установка роли из Ansible Galaxy

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

Ansible Galaxy — это база данных или репозиторий ролей Ansible, которые вы можете использовать в своих сборниках сценариев и оптимизировать свои задачи.

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

ansible-galaxy search <role>

Например, чтобы найти роль с именем mysql, запустите.

ansible-galaxy search mysql

Как видите, существуют сотни ролей, соответствующих ключевому слову поиска mysql. Однако не все роли будут соответствовать вашим намерениям, поэтому рекомендуется внимательно прочитать инструкции.

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

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

В нашем примере мы собираемся установить роль 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Роль загружается и извлекается в каталог ролей по умолчанию, расположенный по адресу /etc/ansible/roles.

После этого роль можно вызвать в playbook, например:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Теперь вы можете безопасно запустить плейбук Ansible, как показано.

ansible-playbook install_mysql.yml

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

Например, чтобы найти роль мониторинга, например elasticsearch, нажмите кнопку «Мониторинг» и найдите роль, как показано.

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

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

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Чтобы просмотреть список установленных ролей, просто запустите.

ansible-galaxy list

Заключение

Роли упрощают повторное использование и совместное использование сборников сценариев Ansible. Таким образом, они экономят пользователю много времени, пытаясь написать много избыточного кода, и тратят слишком много времени, которое могло бы быть использовано для других задач системного администрирования. И это все, что касается этого руководства.