↓Перейти к основному содержимому

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

·332 слов·2 минут
Андрей Двуреченский
Автор
Андрей Двуреченский
Вводный курс Ansible - This article is part of a series.
Part 16: This Article

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

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

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

 /etc/ssh/sshd_config

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

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

 mkdir templates

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

 sshd_config_ubuntu.j2

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

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

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

 AllowUsers Template:Ssh users

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

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

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

 ssh_users: "jay simone"
 ssh_template_file: sshd_config_ubuntu.j2

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

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

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

 - 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
#

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

 mkdir handlers

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

 cd handlers
 vim main.yml
 - name: restart_sshd
   service:
     name: sshd
     state: restarted

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

 ansible-playbook site.yml

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

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

 AllowUsers Template:Ssh users

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

 PasswordAuthentication Template:Passwd auth

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

Оригинал

Вводный курс Ansible - This article is part of a series.
Part 16: This Article