Ansible Galaxy

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

Давайте познакомимся с инструментом ansible-galaxy. Проведём поиск по Galaxy и выберем подходящую роль из списка:

ansible-galaxy search "PHP for RedHat/CentOS/Fedora/Debian/Ubuntu"

Команда поиска выведет нечто подобное:

werwolf@werwolf-System-Product-Name:~$ ansible-galaxy search php
 
Found 631 roles matching your search:
 
 Name                                              Description
 ----                                              -----------
 0ta2.php_role                                     Setup PHP
 tenequm.php                                       PHP installation role.
 aadl.docker-php-fpm-alpine                        Ansible role to manage and run the alpine php docker container.
 aaronpederson.ansible-php7                        PHP 7 is the latest version of general-purpose scripting language that is popular in web development.
 aaronpederson.php                                 PHP is a popular general-purpose scripting language that is popular in web development.
 infOpen.phpmyadmin                                install phpmyadmin package
 adarnimrod.mod-php                                Provision PHP application server using Apache with mod-php
 adarnimrod.mod-php7                               Provision PHP7 application server using Apache with mod-php7
 adarnimrod.php5                                   Install PHP5 (cli, not mod-php nor fpm)
 adarnimrod.php7                                   Install PHP7 (cli, not mod-php nor fpm)
 adarnimrod.php7-fpm                               Provision PHP7 FastCGI (FPM)
 adarnimrod.php-fpm                                Provision PHP FastCGI (FPM)
 adfinis-sygroup.php_fpm                           This role is used to install and configure php-fpm on CentOS
 AerisCloud.php                                    Installs PHP on a server
 A-j-K.php-install                                 Deploys PHP 7.1 CLI
 Akellacom.role-telesales-phpmyadmin               Install phpMyAdmin in directory /var/www/phpmyadmin
 Akman.php_mcrypt                                  mCrypt package for php on Linux
 AlbanAndrieu.phpvirtualbox                        A role for installing phpvirtualbox

Предположим, мы выбрали роль aaronpederson.ansible-php7 Чтобы загрузить её в наш плейбук, используем команду ansible-galaxy install:

ansible-galaxy install geerlingguy.php

Предположим, мы выбрали роль geerlingguy.php. Чтобы загрузить её в наш плейбук, используем команду ansible-galaxy install:

werwolf@werwolf-System-Product-Name:~$ ansible-galaxy install geerlingguy.php
Starting galaxy role install process
- downloading role 'php', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-php/archive/5.0.1.tar.gz
- extracting geerlingguy.php to /home/werwolf/.ansible/roles/geerlingguy.php
- geerlingguy.php (5.0.1) was installed successfully

Теперь можем добавить роль в файл playbook.yml:

---
- name: All configs
  hosts: cluster
  roles:
    - preconfig
    - deploy
    - geerlingguy.php
  vars: 
    - doc_root: /var/www/example
    - php_default_version_debian: "7.2"