Публикация

Курс Ansible - урок 16 - Шаблоны

Курс Ansible - урок 16 - Шаблоны

Курс Ansible - урок 16 - Шаблоны

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

Расположение файла конфигурации демона OpenSSH (используется в качестве примера для шаблона)

1
 /etc/ssh/sshd_config

В каталоге ролей

Создайте каталог для шаблонов:

1
 mkdir templates

Скопируйте файл конфигурации sshd с сервера в этот каталог с расширением *.j2:

1
 sshd_config_ubuntu.j2

Примечание: «ubuntu» включено в название, потому что, если вы используете несколько дистрибутивов, лучше начать создание шаблона на основе существующего файла. У каждого дистрибутива свои пути, поэтому НЕ используйте один и тот же шаблон для всех дистрибутивов!

Добавление переменной внутри шаблона конфигурационного файла OpenSSH

Внутри шаблона (шаблонов) добавьте:

1
 AllowUsers Template:Ssh users

Примечание: убедитесь, что параметр «AllowUsers» уже не указан в файле. Если он указан, замените его на приведенный выше)

Добавление переменной к хосту

В каталоге host_vars у нас уже должен быть файл с переменными хостов для каждого сервера. Добавьте новую переменную в файл (файлы):

1
2
 ssh_users: "jay simone"
 ssh_template_file: sshd_config_ubuntu.j2

Примечание: убедитесь, что вы изменили имена пользователей в переменной ssh_users на фактические имена пользователей, которые вы используете для себя, а также для пользователя Ansible.

Перепишем роль с учтом шаблона

Внутри базовой роли, в файле main.yml, добавьте эту строку:

1
2
3
4
5
6
7
8
9
 - name: openssh | generate sshd_config file from template
   tags: ssh
   template:
     src: "Template:Ssh template file"
     dest: /etc/ssh/sshd_config
     owner: root
     group: root
     mode: 0644
   notify: restart_sshd

Создайте обработчик для перезапуска демона OpenSSH

Внутри базовой роли создайте каталог для обработчиков:

1
 mkdir handlers

Зайдите в этот каталог и создайте файл ‘main.yml’:

1
2
3
4
5
6
 cd handlers
 vim main.yml
 - name: restart_sshd
   service:
     name: sshd
     state: restarted

Запустите плейбук

1
 ansible-playbook site.yml

Добавление значения по умолчанию к переменной

В шаблоне измените строку “AllowUsers” на:

1
 AllowUsers Template:Ssh users

Если пойти дальше, можно добавить в шаблон ещё одну переменную, чтобы определить, разрешена ли аутентификация по паролю для хоста:

1
 PasswordAuthentication Template:Passwd auth

Примечание: не забудьте добавить новую переменную PasswordAuthentication в файлы host_vars.

Оригинал

Публикация защищена лицензией CC BY 4.0 .