Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
maxLevel2


Информация

Подробнее про службы времени в Astra Linux см. статью
Службы синхронизации времени в ОС Astra Linux



Информация
titleДанная статья применима к:
  • ОС ОН Орёл 2.12.26




Конфигурация стенда

Управляющий узел: master.astra.lan 192.168.230.10

Управляемый узел: agent1.astra.lan 192.168.230.11

Для разрешения IP-адресов обоих узлов используются файл /etc/hosts. При необходимости можно настроить DNS-сервер.

Настройка служб времени с помощью Ansible

Предварительные настройки

1. Устанавливаем Ansible

Command

sudo apt install ansible

2. Настраиваем inventory-файл

По умолчанию inventory-файл hosts располагается в каталоге /etc/ansible/.

Информация

Расположение inventory-файла можно задать переменной окружения $ANSIBLE_HOSTS, либо через параметр -i при выполнении команд ansible и ansible-playbook

Изменим содержимое этого файла на следующее:

Блок кода
languagetext
themeConfluence
[agents]
agent1.astra.lan ansible_ssh_host=192.168.230.11

3. Генерируем ssh-ключ и переносим на управляемый узел

Command

ssh-keygen -t rsa -b 4096
ssh-copy-id user@192.168.230.11

4. Проверяем

Command
Titleansible -m ping agents
Блок кода
language
bash

agent1.astra.lan

|

SUCCESS

=>

{


"changed":

false,


"ping":

"pong"


}

Настройка NTP с помощью Ansible

1. Устанавливаем роль

Command

sudo apt install ansible-role-geerlingguy-ntp

2. Создаем Ansible-плэйбук configure_ntp.yml

Блок кода
languageyml
titleconfigure_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. Выполняем плэйбук

yml
Command
Titleansible-playbook configure_ntp.
Блок кода
languageyml

PLAY

[all]

*********************************************************************

TASK

[setup]

*******************************************************************


ok:

[agent1.astra.lan]

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]

PLAY

RECAP

*********************************************************************


agent1.astra.lan

:

ok=7

changed=3

unreachable=0

failed=

0

Настройка systemd-timesyncd с помощью Ansible

1. Уставливаем роль

Command

sudo apt install ansible-role-idiv-biodiversity-systemd-timesyncd

2. Создаем Ansible-плэйбук configure-systemd_timesyncd.yml

Блок кода
languageyml
titleconfigure-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


Доступные переменные:

  1. system_timezone — часовой пояс системы;
  2. ntp_servers — список предпочтительных NTP-серверов;
  3. ntp_fallback_servers — списко региональных второстепенных NTP-серверов.


С помощью тэгов можно запускать только определенные части ansible-роли:

  1. timezone — используется, если необходимо просто установить часовой пояс;
  2. systemd-timesyncd — настраивает /etc/systemd/timesyncd.conf и перезапускает при необходимости сервис;
  3. service, service-timesyncd и timesyncd-service — включает и запускает сервис.

3. Выполяем плэйбук

Command
Titleansible-playbook configure-systemd_timesyncd.yml
Блок кода
languageyml
PLAY

PLAY [all]

*********************************************************************

TASK

[setup]

*******************************************************************


ok:

[agent1.astra.lan]

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]

PLAY

RECAP

*********************************************************************


agent1.astra.lan

:

ok=7

changed=3

unreachable=0

failed=0

Настройка OpenNTPd с помощью Ansible

1. Уставливаем роль

Command

sudo apt install ansible-role-trombik-openntpd

2. Создаем Ansible-плэйбук configure-openntpd.yml

Блок кода
languageyml
titleconfigure-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"

Доступные переменные:

  1. openntpd_flags — дополнительный флаг для ntpd;
  2. openntpd_config — содержимое конфигурационного файла /etc/openntpd/ntpd.conf.

3. Выполяем плэйбук

Command

ansible-playbook configure-openntpd.yml

Блок кода
languageyml

PLAY

[all]

*********************************************************************


TASK

[setup]

*******************************************************************


ok:

[agent1.astra.lan]


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]


PLAY

RECAP

*********************************************************************


agent1.astra.lan

:

ok=9

changed=5

unreachable=0

failed=0

Настройка служб времени с помощью Puppet

Предварительные настройки

1. Устанавливаем и настраиваем Puppet Server на управляющем узле

Command

sudo apt install puppetserver
sudo ufw allow 8140
sudo systemctl enable puppetserver
sudo systemctl start puppetserver

2. Устанавливаем и настраиваем Puppet Agent на управляемом узле

Command

sudo apt install puppet-agent

В файле /etc/puppetlabs/puppet/puppet.conf добавляем/изменяем в секции main параметры:

Блок кода
languagetext
themeConfluence
server = master.astra.lan
show_diff = true


Command

sudo systemctl enable puppet
sudo systemctl start puppet

3. Подписываем сертификаты на управляющем узле

Command

sudo /opt/puppetlabs/bin/puppetserver ca sign --certname agent1.astra.lan

4. Проверяем на управляемом узле

Command

sudo systemctl stop puppet
sudo /opt/puppetlabs/bin/puppet agent --test

sudo systemctl start puppet

Настройка NTP с помощью Puppet

1. Устанавливаем модуль

Command

sudo apt install puppet-module-puppetlabs-ntp

2. Создаем/редактируем манифест

Command

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp


Блок кода
languageactionscript3
title/etc/puppetlabs/code/environments/production/manifests/site.pp
node default {
  class { 'ntp':
    servers => [ 'ntp1.vniiftri.ru', 'ntp2.vniiftri.ru' ],
    restrict  => [
      'default ignore',
      '-6 default ignore',
      '127.0.0.1',
      '-6 ::1'
    ],
  }
}

Используемые параметры:

  1. servers –  список NTP-серверов;
  2. restrict – правила подключения клиентов.

3. Запрашиваем изменения конфигурации на управляющем узле

Command
Titlesudo /opt/puppetlabs/bin/puppet agent --test
Блок кода
languageyml

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

'{md5}46220696b8e1a45932533296bddeabc9'

to

'{md5}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. Устанавливаем модуль

Command

sudo apt install puppet-module-camptocamp-systemd

2. Создаем/редактируем манифест

Command

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp


Блок кода
languageactionscript3
title/etc/puppetlabs/code/environments/production/manifests/site.pp
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'],
  }
}

Используемые параметры:

  1. manage_timesyncd – настраивает /etc/systemd/timesyncd.conf;
  2. ntp_server – список основных NTP-серверов;
  3. fallback_ntp_server – список региональных второстепенных NTP-серверов.

3. Запрашиваем изменения конфигурации на управляющем узле

code
Command
Titlesudo /opt/puppetlabs/bin/puppet agent --test
languageyml

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. Устанавливаем модуль

Command

sudo apt install puppet-module-tohuwabohu-openntp

2. Создаем/редактируем манифест

Command

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp


Блок кода
languageactionscript3
title/etc/puppetlabs/code/environments/production/manifests/site.pp
node default {
  class { 'openntp': 
    server => ['ntp1.vniiftri.ru'] 
  }
}

Используемые параметры:

  1. server – NTP-сервер.

3. Запрашиваем изменения конфигруации на управляющем узле

Command
Titlesudo /opt/puppetlabs/bin/puppet agent --test
Блок кода
languageyml

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

'{md5}d79975ee6ca862279de0f4d8d68833f6'

to

'{md5}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. Устанавливаем модуль

Command

sudo apt install puppet-module-szhi-redhat-ptp

2. Создаем/редактируем манифест

Command

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp


Блок кода
languageactionscript3
title/etc/puppetlabs/code/environments/production/manifests/site.pp
node default {
  ptp::instance_ptp4l { 'instance_name':
    ptp4l_interface => 'eth0',
  }
}

Используемые параметры:

  1. ptp4l_interface – используемый сетевой интерфейс.

3. Запрашиваем изменения конфигурации на управляющем узле

Command
Titlesudo /opt/puppetlabs/bin/puppet agent --test
Блок кода
languageyml

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

'{md5}2aa1dd119bc191e4843ad67c48370679'


Notice:

/Stage[main]/Ptp::Config/File[phc2sys@.service]/ensure:

defined

content

as

'{md5}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

'{md5}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