Курс 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.