- Конфигурация стенда
- Настройка служб времени с помощью Ansible
- Предварительные настройки
- 1. Устанавливаем Ansible
- 2. Настраиваем inventory-файл
- 3. Генерируем ssh-ключ и переносим на управляемый узел
- 4. Проверяем
- 5. Настройка каталогов модулей
- Настройка NTP с помощью Ansible
- 1. Устанав ливаем роль
- 2. Создаем Ansible-плэйбук configure_ ntp.yml
- 3. Выполняем плэйбук
- Настройка systemd-timesyncd с помощью Ansible
- 1. Уставливаем роль
- 2. Создаем Ansible- плэйбук configure- systemd_timesyncd.yml
- 3. Выполяем плэйбук
- Настройка OpenNTPd с помощью Ansible
- 1. Уставливаем роль
- 2. Создаем Ansible- плэйбук configure- openntpd.yml
- 3. Выполяем плэйбук
- Настройка служб времени с помощью Puppet
- Предварительные настройки
- 1. Устанавливаем и настраиваем Puppet Server на управляющем узле
- 2. Устанавливаем и настраиваем Puppet Agent на управляемом узле
- 3. П одписываем сертификаты на управляющем узле
- 4. Проверяем на управляемом узле
- Настройка NTP с помощью Puppet
- 1. Устан авливаем модуль
- 2. Создаем/редактируем манифест
- 3. Запрашиваем изменения конфигурации на управляющем узле
- Настройка systemd-timesyncd с помощью Puppet
- 1. Устанавливаем модуль
- 2. Создаем/редактируем манифест
- 3. Запрашиваем изменения конфигурации на управляющем узле
- Настройка OpenNTPd с помощью Puppet
- 1. Устанавливаем модуль
- 2. Создаем/редактируем манифест
- 3. Запрашиваем изменения конфигруации на управляющем узле
- Настройка linuxptp с помощью Puppet
- 1. Устанавливаем модуль
- 2. Создаем/редактируем манифест
- 3. Запрашиваем изменения конфигурации на управляющем узле
- Синхронизация времени на AstraLinux в Windows домене
Конфигурация стенда
Для разрешения IP-адресов обоих узлов используются файл /etc/hosts. При необходимости можно настроить DNS-сервер.
Настройка служб времени с помощью Ansible
Предварительные настройки
1. Устанавливаем Ansible
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-ключ и переносим на управляемый узел
4. Проверяем
5. Настройка каталогов модулей
Перед установкой puppet-модулей выполнить следующие действия:
- Создать каталог /usr/share/puppet/modules:
modulepath = /usr/share/puppet/modules:./modules:$basemodulepath
Настройка NTP с помощью Ansible
1. Устанав ливаем роль
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
Указывает нужно ли запускать службу ntp и включать ее при запуске системы.
ntp_timezone
ntp_package
Указывает название пакета, обеспечивающего функциональность NTP.
ntp_config_file
Указывает путь к файлу конфигурации NTP. Для RHEL / CentOS 7 и новее значение по умолчанию etc/chrony.conf
ntp_manage_config
Разрешает или запрещает роли управлять файлом конфигурации NTP
Устанавливает NTP Pool Area
ntp_servers
Устанавливает NTP сервера для использования. Используется только в том случае, если роли разрешено управлять файлом конфигурации NTP.
ntp_restrict
Ограничивает доступ NTP к указанным хостам.
ntp_cron_handler_enabled
Разрешает или запрещает перезапуск демона cron после изменения часового пояса
ntp_tinker_panic
Включает или выключает «параноидальный» режим ntp.
3. Выполняем плэйбук
TASK [idiv-biodiversity.systemd_timesyncd : set time zone] *********************
ok: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] *******
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : install systemd] *******************
ok: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] *******
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] *********
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] ***
ok: [agent1.astra.lan]
Настройка systemd-timesyncd с помощью Ansible
1. Уставливаем роль
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. Выполяем плэйбук
TASK [idiv-biodiversity.systemd_timesyncd : set time zone] *********************
ok: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : remove unneeded ntp clients] *******
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : install systemd] *******************
ok: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : configure systemd-timesyncd] *******
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : restart systemd-timesyncd] *********
changed: [agent1.astra.lan]
TASK [idiv-biodiversity.systemd_timesyncd : enable systemd-timesyncd service and assure it is started] ***
ok: [agent1.astra.lan]
Настройка OpenNTPd с помощью Ansible
1. Уставливаем роль
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. Выполяем плэйбук
TASK [trombik.openntpd : Include OS-specific variables.] ***********************
skipping: [agent1.astra.lan]
TASK [trombik.openntpd : Include OS-specific variables (AstraLinux).] **********
ok: [agent1.astra.lan]
TASK [trombik.openntpd : Include OS-specific install.] *************************
skipping: [agent1.astra.lan]
TASK [trombik.openntpd : Install openntpd] *************************************
changed: [agent1.astra.lan]
TASK [trombik.openntpd : Create /etc/default/openntpd] *************************
changed: [agent1.astra.lan]
TASK [trombik.openntpd : Enable openntpd] **************************************
ok: [agent1.astra.lan]
TASK [trombik.openntpd : Create ntpd.conf] *************************************
changed: [agent1.astra.lan]
TASK [trombik.openntpd : Start openntpd] ***************************************
ok: [agent1.astra.lan]
TASK [trombik.openntpd : Restart openntpd at the end of the role] **************
changed: [agent1.astra.lan]
RUNNING HANDLER [trombik.openntpd : Restart openntpd] **************************
changed: [agent1.astra.lan]
Настройка служб времени с помощью Puppet
Предварительные настройки
1. Устанавливаем и настраиваем Puppet Server на управляющем узле
sudo apt install puppetserver
sudo ufw allow 8140
sudo systemctl enable puppetserver
sudo systemctl start puppetserver
2. Устанавливаем и настраиваем Puppet Agent на управляемом узле
В файле /etc/puppetlabs/puppet/puppet.conf добавляем/изменяем в секции main параметры:
server = master.astra.lan show_diff = true
3. П одписываем сертификаты на управляющем узле
4. Проверяем на управляемом узле
Настройка NTP с помощью Puppet
1. Устан авливаем модуль
2. Создаем/редактируем манифест
node default < class < 'ntp': servers =>[ 'ntp1.vniiftri.ru', 'ntp2.vniiftri.ru' ], restrict => [ 'default ignore', '-6 default ignore', '127.0.0.1', '-6 ::1' ], > >
3. Запрашиваем изменения конфигурации на управляющем узле
sudo /opt/puppetlabs/bin/puppet agent —test
Info: Using configured environment ‘production’
Info: Retrieving pluginfacts
Info: Retrieving plugin
…
Info: Computing checksum on file /etc/ntp.conf
Info: /Stage[main]/Ntp::Config/File[/etc/ntp.conf]: Filebucketed /etc/ntp.conf to puppet with sum 46220696b8e1a45932533296bddeabc9
Notice: /Stage[main]/Ntp::Config/File[/etc/ntp.conf]/content: content changed ‘46220696b8e1a45932533296bddeabc9’ to ‘093a967a0f58919dd8ba4f7e67feba94’
Info: Class[Ntp::Config]: Scheduling refresh of Class[Ntp::Service]
Info: Class[Ntp::Service]: Scheduling refresh of Service[ntp]
Notice: /Stage[main]/Ntp::Service/Service[ntp]/ensure: ensure changed ‘stopped’ to ‘running’
Info: /Stage[main]/Ntp::Service/Service[ntp]: Unscheduling refresh on Service[ntp]
Notice: Applied catalog in 0.73 seconds
Настройка systemd-timesyncd с помощью Puppet
1. Устанавливаем модуль
2. Создаем/редактируем манифест
node default < classtrue, 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. Запрашиваем изменения конфигурации на управляющем узле
sudo /opt/puppetlabs/bin/puppet agent —test
Info: Using configured environment ‘production’
Info: Retrieving pluginfacts
Info: Retrieving plugin
.
Info: Retrieving locales
Info: Loading facts
Info: Caching catalog for agent1.astra.lan
Info: Applying configuration version ‘1586530810’
Notice: /Stage[main]/Systemd::Timesyncd/Ini_setting[ntp_server]/ensure: created
Info: /Stage[main]/Systemd::Timesyncd/Ini_setting[ntp_server]: Scheduling refresh of Service[systemd-timesyncd]
Notice: /Stage[main]/Systemd::Timesyncd/Ini_setting[fallback_ntp_server]/ensure: created
Info: /Stage[main]/Systemd::Timesyncd/Ini_setting[fallback_ntp_server]: Scheduling refresh of Service[systemd-timesyncd]
Notice: /Stage[main]/Systemd::Timesyncd/Service[systemd-timesyncd]/ensure: ensure changed ‘stopped’ to ‘running’
Info: /Stage[main]/Systemd::Timesyncd/Service[systemd-timesyncd]: Unscheduling refresh on Service[systemd-timesyncd]
Notice: Applied catalog in 0.20 seconds
Настройка OpenNTPd с помощью Puppet
1. Устанавливаем модуль
2. Создаем/редактируем манифест
node default < class < 'openntp': server =>['ntp1.vniiftri.ru'] > >
3. Запрашиваем изменения конфигруации на управляющем узле
sudo /opt/puppetlabs/bin/puppet agent —test
Info: Using configured environment ‘production’
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Loading facts
Info: Caching catalog for agent1.astra.lan
Info: Applying configuration version ‘1587724838’
Notice: /Stage[main]/Openntp::Install/Package[openntpd]/ensure: created
.
Info: Computing checksum on file /etc/openntpd/ntpd.conf
Info: /Stage[main]/Openntp::Config/File[/etc/openntpd/ntpd.conf]: Filebucketed /etc/openntpd/ntpd.conf to puppet with sum d79975ee6ca862279de0f4d8d68833f6
Notice: /Stage[main]/Openntp::Config/File[/etc/openntpd/ntpd.conf]/content: content changed ‘d79975ee6ca862279de0f4d8d68833f6’ to ‘9560617a8c9371f531b636abb542aa8a’
Info: Class[Openntp::Config]: Scheduling refresh of Class[Openntp::Service]
Info: Class[Openntp::Service]: Scheduling refresh of Service[openntpd]
Notice: /Stage[main]/Openntp::Service/Service[openntpd]: Triggered ‘refresh’ from 1 event
Notice: Applied catalog in 3.24 seconds
Настройка linuxptp с помощью Puppet
1. Устанавливаем модуль
2. Создаем/редактируем манифест
3. Запрашиваем изменения конфигурации на управляющем узле
sudo /opt/puppetlabs/bin/puppet agent —test
Info: Using configured environment ‘production’
Info: Retrieving pluginfacts
Info: Retrieving plugin
.
Info: Retrieving locales
Info: Caching catalog for agent1.astra.lan
Info: Applying configuration version ‘1586533343’
Notice: /Stage[main]/Ptp::Config/File[ptp4l@.service]/ensure: defined content as ‘2aa1dd119bc191e4843ad67c48370679’
Notice: /Stage[main]/Ptp::Config/File[phc2sys@.service]/ensure: defined content as ‘8eb0cd481eb55055b5f466b6de987b25’
Info: Class[Ptp::Config]: Scheduling refresh of Class[Ptp::Service]
Notice: /Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/File[ptp4l-instance_name-eth0.conf]/ensure: defined content as ‘31422fb72702c7265a822c8ed78782f3’
Notice: /Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/Service[instance_name]/ensure: ensure changed ‘stopped’ to ‘running’
Info: /Stage[main]/Main/Node[default]/Ptp::Instance_ptp4l[instance_name]/Service[instance_name]: Unscheduling refresh on Service[instance_name]
Notice: Applied catalog in 0.49 seconds
Синхронизация времени на AstraLinux в Windows домене
Во первых определяем источник точного времени, как правило это один из Domain Controller. Для этого на Windows находящейся в домене выполняем команду :
Получим список контроллеров домена. Либо получаем имя сервера с которого данная Windows машина обновляет время, выполняем команду :
(Выполнение данной команды может занять некоторое время)
На Линукс сервере проверяем доступность полученого сервера точного времени — пингуем его.
Далее в файле /etc/systemd/timesyncd.conf раскомментируем строку NTP и добавляем в нее IP сервера времени :
Закомментируем строку с FallbackNTP
Добавляем в файл /etc/ntp.conf строку :
закомментируем остальные строки начинающиеся с pool …
sudo systemctl ntp restart
Проверяем работу ntp выполнив команду :
будет выведена таблица, где:
- remote — имя ntp сервера
- refid — ip вышестоящего NTP сервера
- st — stratum — уровент данного ntp сервера , может быть число от 1 до 16
- t — Тип удаленного сервера
- when — как давно было последнее обновление времени
- poll — период опроса сервера в секундах
- reach — успешность выполнения предыдущих попыток 377 — все попытки были успешными
- delay — задержка ответов от сервера
- offset — разница во времени между локальным и удаленным сервером. Чем меньше данное значение тем лучше.
- jitter — дисперсия отклонения удаленных часов относительно локальных.
Активируем синхронизацию времени по NTP, для этого выполняем:
sudo timedatectl set-ntp true
проверяем что NTP sync активировано:
Синхронизация времени закончена.