Назад | Перейти на главную страницу

Стратегия библиотеки Ansible?

Я начинаю использовать ansible для управления конфигурацией и задаюсь вопросом, как структурировать свой каталог ansible. Например, web1 это хост, которому необходимо внести изменения в конфигурацию Apache и / и т.д. / SSH / sshd_config. jira1 это хост, который не использует Apache, но нужно внести те же изменения в / и т. д. / ssh / sshd_config.

Моя мысль заключалась в том, чтобы сделать каталог библиотеки под моим ansible каталог и поместите sshd.yml под плейбуки. Я мог бы создать каталог хоста с символическими ссылками на библиотеку:

ansible
   |
   |
   + library
   |       |
   |       +- sshd.yml
   |       +- apache.yml
   |       +- nginx.yml
   + web1
   |    |  
   |    + playbooks
   |              |
   |              +- symlink_to_../../library/sshd.yml
   |              +- symlink_to_../../library/apache.yml
   + jira1
        |  
        + playbooks
                  |
                  +- symlink_to_../../library/sshd.yml
                  +- symlink_to_../../library/nginx.yml

Это исключает дублирование .yml files и ansible, похоже, не возражают против символических ссылок. Заглянув в подкаталог, я могу точно сказать, какие плейбуки необходимы / используются для настройки данного хоста. Это кажется хорошей схемой, но есть ли способ лучше?

Единственное, что я могу придумать, - это снабдить каждую пьесу vars/facts которые включают / исключают каждый отдельный хост из конфигурации. Хотя это кажется долгим путем; редактировать каждую книгу воспроизведения каждый раз, когда я добавляю или удаляю хост из локальной сети.

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

ansible
   |
   |
   +-roles
   |   |
   |   +-sshd
   |   +-apache
   |   +-nginx
   |
   +-playbook_for_group_web.yml
   |
   +-playbook_for_group_jira.yml