---
# Плейбук: копирование файлов, замена ключа KESL, импорт расписания задачи, рестарт службы
- name: Обновление ключа и расписания KESL
hosts: kesl_clients
become: true
vars:
src_folder: "/path/to/local/kesl_files" # локальная папка (на управляющей машине)
dest_folder: "/tmp/kesl_files" # куда копируем на клиенте
key_file: "new.key" # имя файла ключа внутри dest_folder
schedule_file: "schedule.ini" # файл параметров расписания внутри dest_folder
schedule_task_id: 6 # ID задачи (у тебя 6)
kesl_service: "kesl" # имя службы, поправь если отличается
tasks:
- name: Создать целевую папку на клиенте
ansible.builtin.file:
path: "{{ dest_folder }}"
state: directory
mode: "0750"
- name: Скопировать папку с файлами на клиент
ansible.builtin.copy:
src: "{{ src_folder }}/"
dest: "{{ dest_folder }}/"
mode: preserve
- name: Удалить старый активный ключ KESL
ansible.builtin.command:
cmd: kesl-control --remove-active-key
register: remove_key_result
failed_when:
- remove_key_result.rc != 0
- "'not found' not in remove_key_result.stderr | default('') | lower"
changed_when: remove_key_result.rc == 0
- name: Активировать новый ключ из скопированной папки
ansible.builtin.command:
cmd: "kesl-control --install-active-key {{ dest_folder }}/{{ key_file }}"
register: install_key_result
changed_when: install_key_result.rc == 0
- name: Импортировать расписание задачи из файла
ansible.builtin.command:
cmd: "kesl-control -T --set-schedule {{ schedule_task_id }} --file {{ dest_folder }}/{{ schedule_file }}"
register: set_schedule_result
changed_when: set_schedule_result.rc == 0
- name: Перезапустить службу kesl
ansible.builtin.systemd:
name: "{{ kesl_service }}"
state: restarted