Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #код варианта 1
- [Mikrotiks]
- 1.2.3.4 file_name=Kostroma
- 2.3.4.5 file_name=Adygeya
- 3.4.5.6 file_name=Amur
- [Mikrotiks:vars]
- ansible_ssh_user=ansible_user
- ansible_network_os=routeros
- #файл .yml
- - hosts: Mikrotiks
- vars_files:
- - /etc/ansible/vars/mik_pass_vault.yml
- connection: network_cli
- gather_facts: false
- tasks:
- - name: backup-file create
- routeros_command:
- commands: /system backup save name={{ file_name }}
- - name: backup-resource create
- routeros_command:
- commands: export file={{ file_name }}.rsc
- - name: backup-file download
- ansible.netcommon.net_get:
- src: "{{ file_name }}.backup"
- dest: /usr/svn_backup_repo/DFL_BACKUPS/mikrotik/{{ file_name }}.backup
- protocol: sftp
- - name: backup-resource download
- ansible.netcommon.net_get:
- src: "{{ file_name }}.rsc"
- dest: /usr/svn_backup_repo/DFL_BACKUPS/mikrotik/{{ file_name }}.rsc
- protocol: sftp
- #код варианта 2
- [Mikrotiks]
- 1.2.3.4
- 2.3.4.5
- 3.4.5.6
- [Mikrotiks:vars]
- ansible_ssh_user=ansible_user
- ansible_network_os=routeros
- #файл .yml
- - hosts: Mikrotiks
- vars_files:
- - /etc/ansible/vars/mik_pass_vault.yml
- connection: network_cli
- gather_facts: false
- tasks:
- - name: do backup
- routeros_command:
- commands: /system backup save name=[/system identity get name]
- - name: get name of mik
- routeros_command:
- commands: /system identity print
- register: mik_identity
- - name: get identity from string
- shell: echo {{ mik_identity.stdout_lines }} | cut -d':' -f 2 | cut -c2- | rev | cut -c3- | rev
- register: identity
- - name: get backup
- ansible.netcommon.net_get:
- src: "{{ identity.stdout_lines[0] }}.backup"
- dest: /usr/svn_backup_repo/DFL_BACKUPS/mikrotik/{{ identity.stdout_lines[0] }}.backup
- protocol: sftp
- #Код для сохранения в системе контроля версий
- #!/bin/bash
- now=$(date +"%d_%m_%Y")
- rm /usr/scripts/log.txt
- ansible-playbook --vault-password-file /etc/ansible/vault_pass_file /usr/scripts/mik-backup.yml >> /usr/scripts/log.txt
- cd /usr/svn_backup_repo/DFL_BACKUPS
- svn add mikrotik/* --force -q >> /usr/scripts/log.txt
- svn commit -m "added backups $now" >> /usr/scripts/log.txt
- /usr/bin/mail it@mydomain.ru < /usr/scripts/log.txt -s "Отчет о бэкапах Mikrotik"
- #Код для псевдо-иммутабельности
- - hosts: Mikrotiks
- vars_files:
- - /etc/ansible/vars/mik_pass_vault.yml
- connection: network_cli
- gather_facts: false
- tasks:
- - name: do backup
- routeros_command:
- commands: export file=[/system identity get name]
- - name: get name of mik
- routeros_command:
- commands: /system identity print
- register: mik_identity
- - name: get identity from string
- shell: echo {{ mik_identity.stdout_lines }} | cut -d':' -f 2 | cut -c2- | rev | cut -c3- | rev
- register: identity
- - name: get backup
- ansible.netcommon.net_get:
- src: "{{ identity.stdout_lines[0] }}.rsc"
- dest: /tmp/{{ identity.stdout_lines[0] }}.rsc
- protocol: sftp
- - set_fact: command_line="add action=accept chain=ospf-out prefix=10.0.0.0/8 prefix-length=0-32"
- - name: find str
- shell: cat /tmp/{{ identity.stdout_lines[0] }}.rsc | grep -c "{{ command_line }}"
- register: outtext
- ignore_errors: true
- - name: ospf filer
- routeros_command:
- commands:
- - /routing filter {{ command_line }}
- when: outtext.stdout_lines[0] == "0"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement