Задача:

  • Project 1 – Установка и настройка NTP клиента Chrony
    • Проект должен быть выполнен средствами Ansible
    • Используйте папку project_1
    • В качестве плейбука используйте файл playbook_1.yml в каталоге project_1
    • Проект должен содержать действия по установке и настройке NTP клиента Chrony включая настройку необходимого часового пояса
      • Использование плагина shell и command НЕ допускается

Вариант реализации:

ANS:

  • Из под пользователя user переходим в директорию /opt/ansible:
cd /opt/ansible
  • Создаём первый playbook_1.yml в директории project_1:
vim project_1/playbook_1.yml
    • Содержимое playbook_1.yml:
      • данный playbook - выполняет следующее:
        • устанавливает настройку необходимого часового пояса - определённого в переменной timezone;
        • устанавливает пакет chrony;
        • в зависимости от дистрибутива - копирует на него заранее подготовленный шаблон конфигурационного файла chrony.conf - в формате jinja2;
        • перезупускается служба chronyd
---
- name: Project_1 - Installing and configuring the Chrony NTP client
  hosts: Astra Redos
  become: true

  vars:
    timezone: Europe/Moscow
    chrony_server: "192.168.100.254"

  tasks:
    - name: "Set timezone to {{ timezone }}" 
      community.general.timezone:
        name: "{{ timezone }}"

    - name: Install chrony
      ansible.builtin.package:
        name: chrony
        state: present

    - name: "Copy template chrony.conf on {{ ansible_os_family }}"
      ansible.builtin.template:
        src: template/astra_chrony.conf.j2
        dest: /etc/chrony/chrony.conf
      when:
        - ansible_os_family == "Astra Linux (Orel)"

    - name: "Copy template chrony.conf on {{ ansible_os_family }}"
      ansible.builtin.template:
        src: template/redos_chrony.conf.j2
        dest: /etc/chrony.conf
      when:
        - ansible_os_family == "RED"

    - name: Restarted chrony
      ansible.builtin.systemd:
        name: chronyd
        state: restarted
        enabled: true
  • Создаём директорию для хранения файлов - шаблонов:
mkdir project_1/template
  • Создаём файл - шаблона для ОС на базе Astra (srv-a):
vim project_1/template/astra_chrony.conf.j2
    • Содержимое:
      • содержимое просто скопировано из файла /etc/chrony/chrony.confsrv-a - убраны комментарии, а также добавлена переменная chrony_server которая определена в playbook_1

  • Создаём файл - шаблона для ОС на базе Redos (srv-r):
vim project_1/template/redos_chrony.conf.j2
    • Содержимое:
      • содержимое просто скопировано из файла /etc/chrony.confsrv-r - убраны комментарии, а также добавлена переменная chrony_server которая определена в playbook_1

  • Устанавливаем необходимую для работу ansible - коллекцию:
    • из под пользователя user
ansible-galaxy collection install community.general
  • Выполняем запуск playbook - сценария:
    • из под пользователя user
ansible-playbook project_1/playbook_1.yml
    • Результат:

  • На RTR - можно проверить клиентов chrony:

Последнее изменение: среда, 3 июля 2024, 14:34