четверг, 14 января 2021 г.

Изменить скрипт backup на mikrotik через ansible

Скрипт backup должен быть предварительно создан с любым содержимым на mikrotik.
Playbook ниже приведет содержимое скрипта к единообразному виду на всех микротах. 

- name: Getting data from routers
#Имя группы хостов
  hosts: routers
# Перед работой с хостом ансибл собирает с него инфу с помощью питона, естественно на микротике это работать не будет, так что эту фичу выключаем
  gather_facts: no
#количество систем, которые будут обрабатываться одновременно
  serial: 1 
#тип соединения, по идее уже указан в hosts
  connection: paramiko 
  vars:
    contents: "{{ lookup('file', '/etc/ansible/txt/mktk_backup.txt') }}"
  tasks:
  - name: Run command on remote devices
    community.network.routeros_command:
      commands: 
        - /system script set [find name =backup] source="{{ contents }}"
#        - /log info message="{{ contents }}"
#        - debug: msg="the value of foo.txt is {{ contents }}"
        - /quit


На микроте должны быть объявлены системные переменные datetimestring и thisdate, а также запланировано задание на выполнение скрипта по расписанию. 
Пример содержимого скрипта:

log info \"Starting Backup\"\r\n
:global thisdate [/system clock get date]\r\n
:global datetimestring ([:pick \$thisdate 0 3] .\"-\" . [:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdate 7 11])\r\n
\r\n
/system backup save name=\"\$[/system identity get name]_\$datetimestring\" \r\n
/export compact file=\"\$[/system identity get name]_\$datetimestring\" \r\n
\r\n
:log info \"Please wait...!!!\"\r\n
:delay 5s\r\n
:log info \"Sending Backup Mikrotik to FTP Server.............\"\r\n
\r\n
/tool fetch address=ftp.medirus.ru src-path=\"\$[/system identity get name]_\$datetimestring.backup\" user=config_backup@user password=pa$$w0rd port=21 upload=yes mode=ftp dst-path=\"/Backup/Network/Mikrotik/\$[/system identity get name]/\$datetimestring.backup\"\r\n
:log info \".backup was sent\"\r\n
:log info \"sending rsc.....\"\r\n
/tool fetch address=ftp.domain.tld src-path=\"\$[/system identity get name]_\$datetimestring.rsc\" user=config_backup@user password=pa$$w0rd port=21 upload=yes mode=ftp dst-path=\"/Backup/Network/Mikrotik/\$[/system identity get name]/\$datetimestring.rsc\"\r\n
:log info \".rsc was sent\"\r\n
:delay 1\r\n
\r\n
/file remove \"\$[/system identity get name]_\$datetimestring.backup\"\r\n
/file remove \"\$[/system identity get name]_\$datetimestring.rsc\"\r\n
\r\n
log info \"Finished Backup\"

Комментариев нет:

Отправить комментарий