ANSIBLE PLAYBOOK ĐỂ BACKUP CÁC ROUTER SWITCH RA FILE RIÊNG

TẠO PLAYBOOK ĐỂ BACKUP CÁC ROUTER SWITCH RA FILE RIÊNG

[ANSIBLE FOR NETWORK]

Để chạy ansible backup running config của các router ra thành từng file riêng lẻ, thì ta tạo

- File hosts trong thư mục /etc/ansible có nội dung:

 [routers]

R1 ansible_host=192.168.200.11

R2 ansible_host=192.168.200.12

Trong đó ansible_host là từ khóa.

- Sau đó ta viết playbook với tên tùy ý, đuôi là .yml , ví dụ backup_sw.yml

---

- name: Retrieve and save switch configurations with timestamped folder

  hosts: routers

  gather_facts: no

  vars:

    timestamp: "{{ lookup('pipe', 'date +%Y-%m-%d') }}" ##Lấy ngày tháng

  tasks:

    - name: Get running configuration

      raw: show run ##Gửi lệnh show run tới router

      register: result

 

    - name: Create backup directory ##Tạo thư mục chứa file backup

      delegate_to: localhost ##Chạy trên máy ubuntu, chứ ko phải router

      run_once: true ##Chỉ chạy 1 lần

      file:

        path: "/home/hainm/backups/{{ timestamp }}"

        state: directory

      register: backup_dir

 

    - name: Save to file in the timestamped directory

      delegate_to: localhost ##Chạy trên máy ubuntu, chứ ko phải router

      copy: ##lưu lại file vào thư mục theo ngày tháng năm

        content: "{{ result.stdout }}"

        dest: "/home/hainm/backups/{{ timestamp }}/{{ inventory_hostname }}_{{ ansible_host }}_cfg.txt"

 

Để chạy playbook này, trên màn hình SSH của ubuntu, ta gõ:

ansible-playbook -i ./hosts backup_sw.yml -u admin -k  (với admin là account ssh trên router)

Rồi nhập pass

Kết quả:

Đã thấy có file và folder theo ngày tháng

Bài viết cùng danh mục