Скрипт 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
#Имя группы хостов
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\"
Комментариев нет:
Отправить комментарий