Перейти к содержанию

Ansible Galaxy

Описание

Облачное хранилище ролей

Преимущества

  • Не надо хранить роли рядом с проектом

  • Можно версионировать роли

  • Каждая роль - отдельный продукт

  • Получать гарантированный результат


Использование

Все начинается с файла requirements.yml

- src: ssh repo url .git
  verison: "1.0"
  name: "название которое будет использовать в вашем проекте (по умолчанию название берется из названия репозитория)

- src:
.
.
.
  1. В папке проекта Ansible создаем файл requirements.yml
  2. В файл requirements.yml указываем адрес репозитория где находится роль, пишем версию и название под которым будем использовать эту роль в своих проектах
  3. Выполняем установку роли через команду ansible-galaxy role install --roles-path=/полный_путь_до_директории_roles -f -r requirements.yml

пример рабочего файла requirements.yml

- src: git@gitlab.com:ansible4990534/ansible-role-nginx.git
  scm: git
  version: "1.0"
  name: nginx

src: ssh ссылка на репозиторий роли

verison: либо название тега который вам требуется, либо название ветки, либо хэш коммита

name: название роли которое будет использоваться внутри вашего проекта, по умолчанию берется название репозитория который вы указали в src

scm: название системы контроля версий


Алгоритм использования

  • Инициировать роль: ansible-galaxy role init <name>

  • Внутри роли инициировать git репозиторий: git init

  • Написать роль и заполнить meta информацию

  • Сохранить роль в git репозитории

  • Возле playbook.yml создать файл requirement.yml с указанием откуда брать роль

  • Скачиваем роль ansible-galaxy role install --roles-path=/полный_путь_до_директории_roles -f -r requirements.txt


Жизненный цикл роли

graph TD
A[Пишем код]
--> B[Проходим тесты]
B --> C[Обновляем роль]
C --> D[Делаем новый тэг]
D --> A