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