Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Lab : Sử dụng Ansible thực hiện Check version thiết bị ( Linux )

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lab : Sử dụng Ansible thực hiện Check version thiết bị ( Linux )

    Sơ đồ mạng:

    Click image for larger version  Name:	ansible 01.jpg Views:	0 Size:	13.1 KB ID:	425505

    Mô tả:
    • Sơ đồ gồm 1 Switch và 1 PC đóng vai trò là Ansible Server chạy hệ điều hành Linux. Yêu cầu các thiết bị ping thông tới nhau.
    • Máy tính của học viên đã cài đặt Ansible.

    Yêu cầu:
    • Tạo một Inventory File chứa thông tin thiết bị
    • Tạo một File Playbook để viết kịch bản cấu hình cho thiết bị
    • Thực hiện chạy Playbook để check version và hiện thông báo.

    Các bước thực hiện:

    Cấu hình SSH Switch:
    SW# configure terminal

    SW(config)# username admin password 123

    SW(config)# enable password 321

    SW(config)# crypto key generate rsa 1024

    SW(config)#line vty 0 4

    SW(config-line)# password 123

    SW(config-line)# login local

    Trên PC chạy Ansible:

    Mặc định sau khi install Ansible về máy sẽ nằm trong đường dẫn /etc/ansible. Để thao tác với Ansible chúng ta cần phải di chuyển đến folder chứa Ansible bằng lệnh: cd /etc/ansible

    Tiếp theo cần chỉnh sửa một số default setting của Ansible bằng lệnh : vim ansible.cfg. Bỏ dấu # của dòng 14, 36 và 71.

    Tạo Inventory File

    Có một Inventory file mặc định của Ansible đó là hosts. Chúng ta có thể tận dụng file này để làm file hosts Inventory của mình. Sử dụng lệnh : vim hosts

    Khai báo thông số thiết bị như sau :

    Click image for larger version  Name:	ansible 02.jpg Views:	0 Size:	31.3 KB ID:	425506

    Các thông số đã được giải thích ở bài trước. Có thể tham khảo ở bài viết : Quản lý và triển khai tự động hạ tầng mạng dùng Ansible

    Tạo File Playbook

    Dùng lệnh : vim check_version.yml để tạo file và edit file check_version được viết bằng ngôn ngữ YAML.

    Click image for larger version  Name:	ansible 03.jpg Views:	0 Size:	48.3 KB ID:	425507

    Giải thích code:

    Ý tưỡng của file code này sẽ là: thu thập thông tin của thiết bị và xuất ra giá trị version hiện tại của thiệt bị, nếu giá trị version xuất ra khác với version mong muốn thì in ra dòng tin nhắn là : Image is not compliant and need to be upgraded

    Upgrade_ios_version: là giá trị version mong muốn

    Ios_facts: là Module mà Ansible hỗ trợ để thu thập thông tin thiết bị.

    Debug: là hàm để in ra màn hình

    Msg: là tin nhắn sẽ hiển thị ra màn hình.

    Ansible_net_version: là giá trị version của thiết bị. Giá trị này sẽ được trả về sau quá trình thu thập thông tin thiết bị của Module ios_facts. Có thể tham khảo thêm 1 số giá trị khác ở Document của Ansible

    4 dòng cuối có ý nghĩa là: sẽ in ra mà hình dòng chữ “Image is not compliant and need to be upgraded” khi (when) giá trị ansible_net_version ( là version hiện tại của thiết bị ) khác với upgrade_ios_version ( version mình mong muốn ), nếu 2 giá trị bằng nhau sẽ Skip.

    Chạy Playbook

    Dùng lệnh : ansible-playbook check_version.yml để chạy playbook. Ở đây do mình sử dụng Inventory file mặc định của Ansible nên không cần khai báo, nếu sử dụng Inventory khác tự tạo thì sẽ khai báo với cấu trúc lệnh như sau : ansible-playbook -i .

    Kết quả :

    Khi chạy Playbook với một thiết bị cần upgrade version:

    Click image for larger version  Name:	ansible 04.jpg Views:	0 Size:	225.1 KB ID:	425508

    Khi chạy Playbook với một thiết bị không cần upgrade version:

    Click image for larger version  Name:	ansible 05.jpg Views:	0 Size:	219.2 KB ID:	425509
    Last edited by networkdude; 07-01-2022, 10:47 AM.
Working...
X