Оглавление | ||
---|---|---|
|
Информация |
---|
Подробнее про службы времени в 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 | ||
---|---|---|
| ||
Блок кода | ||
| ||
|
Настройка 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 | ||
---|---|---|
| yml||
Блок кода | ||
| ||
PLAY [all] ********************************************************************* TASK [setup] *******************************************************************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : set time zone] *********************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] *******
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : install systemd] *******************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] *******
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] *********
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] ***
[agent1.astra.lan] PLAY RECAP *********************************************************************
: ok=7 changed=3 unreachable=0 failed= 00 |
Настройка 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 PLAY [all] ********************************************************************* TASK [setup] *******************************************************************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : set time zone] *********************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] *******
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : install systemd] *******************
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] *******
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] *********
[agent1.astra.lan] TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] ***
[agent1.astra.lan] PLAY RECAP *********************************************************************
: ok=7 changed=3 unreachable=0 failed=0 |
Настройка 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] *******************************************************************
[agent1.astra.lan] TASK [trombik.openntpd : Include OS-specific variables.] ***********************
[agent1.astra.lan] TASK [trombik.openntpd : Include OS-specific variables (AstraLinux).] **********
[agent1.astra.lan] TASK [trombik.openntpd : Include OS-specific install.] *************************
[agent1.astra.lan] TASK [trombik.openntpd : Install openntpd] *************************************
[agent1.astra.lan] TASK [trombik.openntpd : Create /etc/default/openntpd] *************************
[agent1.astra.lan] TASK [trombik.openntpd : Enable openntpd] **************************************
[agent1.astra.lan] TASK [trombik.openntpd : Create ntpd.conf] *************************************
[agent1.astra.lan] TASK [trombik.openntpd : Start openntpd] ***************************************
[agent1.astra.lan] TASK [trombik.openntpd : Restart openntpd at the end of the role] **************
[agent1.astra.lan] RUNNING HANDLER [trombik.openntpd : Restart openntpd] **************************
[agent1.astra.lan] PLAY RECAP *********************************************************************
: ok=9 changed=5 unreachable=0 failed=0 |
Настройка служб времени с помощью 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'
Retrieving pluginfacts
Retrieving plugin
Computing checksum on file /etc/ntp.conf
/Stage[main]/Ntp::Config/File[/etc/ntp.conf]: Filebucketed /etc/ntp.conf to puppet with sum 46220696b8e1a45932533296bddeabc9
/Stage[main]/Ntp::Config/File[/etc/ntp.conf]/content: content changed '{md5}46220696b8e1a45932533296bddeabc9' to '{md5}093a967a0f58919dd8ba4f7e67feba94'
Class[Ntp::Config]: Scheduling refresh of Class[Ntp::Service]
Class[Ntp::Service]: Scheduling refresh of Service[ntp]
/Stage[main]/Ntp::Service/Service[ntp]/ensure: ensure changed 'stopped' to 'running'
/Stage[main]/Ntp::Service/Service[ntp]: Unscheduling refresh on Service[ntp]
Applied catalog in 0.73 seconds |
Настройка 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'
Retrieving pluginfacts
Retrieving plugin
Retrieving locales
Loading facts
Caching catalog for agent1.astra.lan
Applying configuration version '1586530810'
/Stage[main]/Systemd::Timesyncd/Ini_setting[ntp_server]/ensure: created
/Stage[main]/Systemd::Timesyncd/Ini_setting[ntp_server]: Scheduling refresh of Service[systemd-timesyncd]
/Stage[main]/Systemd::Timesyncd/Ini_setting[fallback_ntp_server]/ensure: created
/Stage[main]/Systemd::Timesyncd/Ini_setting[fallback_ntp_server]: Scheduling refresh of Service[systemd-timesyncd]
/Stage[main]/Systemd::Timesyncd/Service[systemd-timesyncd]/ensure: ensure changed 'stopped' to 'running'
/Stage[main]/Systemd::Timesyncd/Service[systemd-timesyncd]: Unscheduling refresh on Service[systemd-timesyncd]
Applied catalog in 0.20 seconds |
Настройка 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'
Retrieving pluginfacts
Retrieving plugin
Retrieving locales
Loading facts
Caching catalog for agent1.astra.lan
Applying configuration version '1587724838'
/Stage[main]/Openntp::Install/Package[openntpd]/ensure: created
Computing checksum on file /etc/openntpd/ntpd.conf
/Stage[main]/Openntp::Config/File[/etc/openntpd/ntpd.conf]: Filebucketed /etc/openntpd/ntpd.conf to puppet with sum d79975ee6ca862279de0f4d8d68833f6
/Stage[main]/Openntp::Config/File[/etc/openntpd/ntpd.conf]/content: content changed '{md5}d79975ee6ca862279de0f4d8d68833f6' to '{md5}9560617a8c9371f531b636abb542aa8a'
Class[Openntp::Config]: Scheduling refresh of Class[Openntp::Service]
Class[Openntp::Service]: Scheduling refresh of Service[openntpd]
/Stage[main]/Openntp::Service/Service[openntpd]: Triggered 'refresh' from 1 event
Applied catalog in 3.24 seconds |
Настройка 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'
Retrieving pluginfacts
Retrieving plugin
Retrieving locales
Caching catalog for agent1.astra.lan
Applying configuration version '1586533343'
/Stage[main]/Ptp::Config/File[ptp4l@.service]/ensure: defined content as '{md5}2aa1dd119bc191e4843ad67c48370679'
/Stage[main]/Ptp::Config/File[phc2sys@.service]/ensure: defined content as '{md5}8eb0cd481eb55055b5f466b6de987b25'
Class[Ptp::Config]: Scheduling refresh of Class[Ptp::Service]
/Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/File[ptp4l-instance_name-eth0.conf]/ensure: defined content as '{md5}31422fb72702c7265a822c8ed78782f3'
/Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/Service[instance_name]/ensure: ensure changed 'stopped' to 'running'
/Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/Service[instance_name]: Unscheduling refresh on Service[instance_name]
Applied catalog in 0.49 seconds |