Оглавление | ||
---|---|---|
|
Информация |
---|
Подробнее про службы времени в Astra Linux см. статью |
Информация | ||
---|---|---|
| ||
|
Конфигурация стенда
Управляющий узел: master.astra.lan 192.168.230.10
Управляемый узел: agent1.astra.lan 192.168.230.11
Для разрешения IP-адресов обоих узлов используются файл /etc/hosts. При необходимости можно настроить DNS-сервер.
Настройка служб времени с помощью Ansible
Предварительные настройки
1. Устанавливаем Ansible
Command |
---|
|
2. Настраиваем inventory-файл
По умолчанию inventory-файл hosts располагается в каталоге /etc/ansible/.
Информация |
---|
Расположение inventory-файла можно задать переменной окружения $ANSIBLE_HOSTS, либо через параметр -i при выполнении команд ansible и ansible-playbook |
Изменим содержимое этого файла на следующее:
Блок кода | ||||
---|---|---|---|---|
| ||||
[agents] agent1.astra.lan ansible_ssh_host=192.168.230.11 |
3. Генерируем ssh-ключ и переносим на управляемый узел
Command |
---|
|
4. Проверяем
Command | ||
---|---|---|
| ||
|
5. Настройка каталогов модулей
Перед установкой puppet-модулей выполнить следующие действия:
Создать каталог /usr/share/puppet/modules:
Command sudo mkdir -p /usr/share/puppet/modules Отредактировать файл /etc/puppetlabs/code/environments/production/environment.conf, добавив в него строку:
Блок кода modulepath = /usr/share/puppet/modules:./modules:$basemodulepath
Применить настройки, выполнив команду:
Command sudo /opt/puppetlabs/bin/puppet apply --configprint modulepath Проверить, что новый путь добавился можно следующей командой:
Command sudo /opt/puppetlabs/bin/puppet config print modulepath --section master --environment production
Настройка NTP с помощью Ansible
1. Устанавливаем роль
Command |
---|
|
2. Создаем Ansible-плэйбук configure_ntp.yml
Блок кода | ||||
---|---|---|---|---|
| ||||
--- - hosts: all become: yes roles: - role: geerlingguy.ntp vars: ntp_timezone: Europe/Moscow ntp_manage_config: true ntp_servers: - "ntp1.vniiftri.ru iburst" - "0.ru.pool.ntp.org iburst" - "1.ru.pool.ntp.org iburst" - "2.ru.pool.ntp.org iburst" - "3.ru.pool.ntp.org iburst" |
При необходимости можно изменить поведение этой роли. Перечень доступных переменных представлен в таблице:
Переменная | Доступное значение | Значение по умолчанию | Описание |
ntp_enabled | true/false | true | Указывает нужно ли запускать службу ntp и включать ее при запуске системы. |
ntp_timezone | <string> | Etc / UTC | Задает часовой пояс |
ntp_package | ntp/chrony | ntp | Указывает название пакета, обеспечивающего функциональность NTP. |
ntp_config_file | <string> | /etc/ntp.conf | Указывает путь к файлу конфигурации NTP. Для RHEL / CentOS 7 и новее значение по умолчанию etc/chrony.conf |
ntp_manage_config | true/false | false | Разрешает или запрещает роли управлять файлом конфигурации NTP |
ntp_area | <string> | отсутствует | Устанавливает NTP Pool Area |
ntp_servers | <list> | - "0 {{'.' + ntp_area, если ntp_area else ''}}. pool.ntp.org iburst " - "1 {{'.' + ntp_area, если ntp_area else ''}}. pool.ntp.org iburst " - "2 {{'.' + ntp_area, если ntp_area else ''}}. pool.ntp.org iburst " - "3 {{'.' + ntp_area, если ntp_area else ''}}. pool.ntp.org iburst " | Устанавливает NTP сервера для использования. Используется только в том случае, если роли разрешено управлять файлом конфигурации NTP. |
ntp_restrict | <list> | - "127.0.0.1" - ":: 1" | Ограничивает доступ NTP к указанным хостам. |
ntp_cron_handler_enabled | true/false | false | Разрешает или запрещает перезапуск демона cron после изменения часового пояса |
ntp_tinker_panic | true/false | true | Включает или выключает «параноидальный» режим ntp. |
3. Выполняем плэйбук
Command | ||
---|---|---|
| ||
PLAY [all] ********************************************************************* TASK [setup] ******************************************************************* TASK [idiv-biodiversity.systemd_timesyncd : set time zone] ********************* TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] ******* TASK [idiv-biodiversity.systemd_timesyncd : install systemd] ******************* TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] ******* TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] ********* TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] *** PLAY RECAP ********************************************************************* |
Настройка systemd-timesyncd с помощью Ansible
1. Уставливаем роль
Command |
---|
|
2. Создаем Ansible-плэйбук configure-systemd_timesyncd.yml
Блок кода | ||||
---|---|---|---|---|
| ||||
--- - hosts: all become: yes roles: - role: idiv-biodiversity.systemd_timesyncd vars: system_timezone: Europe/Moscow ntp_servers: - "ntp1.vniiftri.ru" ntp_fallback_servers: - "0.ru.pool.ntp.org" - "1.ru.pool.ntp.org" - "2.ru.pool.ntp.org" - "3.ru.pool.ntp.org" tags: - systemd-timesyncd |
Доступные переменные:
- system_timezone — часовой пояс системы;
- ntp_servers — список предпочтительных NTP-серверов;
- ntp_fallback_servers — списко региональных второстепенных NTP-серверов.
С помощью тэгов можно запускать только определенные части ansible-роли:
- timezone — используется, если необходимо просто установить часовой пояс;
- systemd-timesyncd — настраивает /etc/systemd/timesyncd.conf и перезапускает при необходимости сервис;
- service, service-timesyncd и timesyncd-service — включает и запускает сервис.
3. Выполяем плэйбук
Command | ||
---|---|---|
| ||
PLAY [all] ********************************************************************* TASK [setup] ******************************************************************* TASK [idiv-biodiversity.systemd_timesyncd : set time zone] ********************* TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] ******* TASK [idiv-biodiversity.systemd_timesyncd : install systemd] ******************* TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] ******* TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] ********* TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] *** PLAY RECAP ********************************************************************* |
Настройка OpenNTPd с помощью Ansible
1. Уставливаем роль
Command |
---|
|
2. Создаем Ansible-плэйбук configure-openntpd.yml
Блок кода | ||||
---|---|---|---|---|
| ||||
--- - hosts: all become: yes roles: - role: trombik.openntpd vars: openntpd_flags: -s openntpd_config: | servers ntp1.vniiftri.ru sensor * constraints from "https://www.google.com" |
Доступные переменные:
- openntpd_flags — дополнительный флаг для ntpd;
- openntpd_config — содержимое конфигурационного файла /etc/openntpd/ntpd.conf.
3. Выполяем плэйбук
Command |
---|
PLAY [all] ********************************************************************* TASK [setup] ******************************************************************* TASK [trombik.openntpd : Include OS-specific variables.] *********************** TASK [trombik.openntpd : Include OS-specific variables (AstraLinux).] ********** TASK [trombik.openntpd : Include OS-specific install.] ************************* TASK [trombik.openntpd : Install openntpd] ************************************* TASK [trombik.openntpd : Create /etc/default/openntpd] ************************* TASK [trombik.openntpd : Enable openntpd] ************************************** TASK [trombik.openntpd : Create ntpd.conf] ************************************* TASK [trombik.openntpd : Start openntpd] *************************************** TASK [trombik.openntpd : Restart openntpd at the end of the role] ************** RUNNING HANDLER [trombik.openntpd : Restart openntpd] ************************** PLAY RECAP ********************************************************************* |
Настройка служб времени с помощью Puppet
Предварительные настройки
1. Устанавливаем и настраиваем Puppet Server на управляющем узле
Command |
---|
|
2. Устанавливаем и настраиваем Puppet Agent на управляемом узле
Command |
---|
|
В файле /etc/puppetlabs/puppet/puppet.conf добавляем/изменяем в секции main параметры:
Блок кода | ||||
---|---|---|---|---|
| ||||
server = master.astra.lan show_diff = true |
Command |
---|
|
3. Подписываем сертификаты на управляющем узле
Command |
---|
|
4. Проверяем на управляемом узле
Command |
---|
|
Настройка NTP с помощью Puppet
1. Устанавливаем модуль
Command |
---|
|
2. Создаем/редактируем манифест
Command |
---|
|
Блок кода | ||||
---|---|---|---|---|
| ||||
node default { class { 'ntp': servers => [ 'ntp1.vniiftri.ru', 'ntp2.vniiftri.ru' ], restrict => [ 'default ignore', '-6 default ignore', '127.0.0.1', '-6 ::1' ], } } |
Используемые параметры:
- servers – список NTP-серверов;
- restrict – правила подключения клиентов.
3. Запрашиваем изменения конфигурации на управляющем узле
Command | ||
---|---|---|
| ||
Info: Using configured environment 'production' |
Настройка systemd-timesyncd с помощью Puppet
1. Устанавливаем модуль
Command |
---|
|
2. Создаем/редактируем манифест
Command |
---|
|
Блок кода | ||||
---|---|---|---|---|
| ||||
node default { class{'systemd': manage_timesyncd => true, ntp_server => ['ntp1.vniiftri.ru', 'ntp2.vniiftri.ru'], fallback_ntp_server => ['0.ru.pool.ntp.org', '1.ru.pool.ntp.org','2.ru.pool.ntp.org', '3.ru.pool.ntp.org'], } } |
Используемые параметры:
- manage_timesyncd – настраивает /etc/systemd/timesyncd.conf;
- ntp_server – список основных NTP-серверов;
- fallback_ntp_server – список региональных второстепенных NTP-серверов.
3. Запрашиваем изменения конфигурации на управляющем узле
Command | ||
---|---|---|
| ||
Info: Using configured environment 'production' |
Настройка OpenNTPd с помощью Puppet
1. Устанавливаем модуль
Command |
---|
|
2. Создаем/редактируем манифест
Command |
---|
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp |
Блок кода | ||||
---|---|---|---|---|
| ||||
node default { class { 'openntp': server => ['ntp1.vniiftri.ru'] } } |
Используемые параметры:
- server – NTP-сервер.
3. Запрашиваем изменения конфигруации на управляющем узле
Command | ||
---|---|---|
| ||
Info: Using configured environment 'production' |
Настройка linuxptp с помощью Puppet
1. Устанавливаем модуль
Command |
---|
|
2. Создаем/редактируем манифест
Command |
---|
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp |
Блок кода | ||||
---|---|---|---|---|
| ||||
node default { ptp::instance_ptp4l { 'instance_name': ptp4l_interface => 'eth0', } } |
Используемые параметры:
- ptp4l_interface – используемый сетевой интерфейс.
3. Запрашиваем изменения конфигурации на управляющем узле
Command | ||
---|---|---|
| ||
Info: Using configured environment 'production' |