Mô tả:
Bước 1 : Khai báo thông tin thiết bị trong file inventory ( ở lab này sử dụng file inventory mặc định của Ansible )
( Các câu lệnh đã được giải thích trong bài làm quen với Ansible )
Bước 2 : Tạo một thư mục với tên group_vars ( đây là tên thự mục mặc định Ansible quy định nên phải khai báo đúng như vậy ), sau đó di chuyển đến thư mục group_vars vừa tạo bằng lệnh cd.
Tạo file variable cho group Router vừa khai báo với cấu trúc đặt tên file là <group_name>.yml
Nội dung file variable Router.yml như sau :
Bước 3: Viết playbook để cấu hình với tên file là interface.yml
Giải thích :
Cấu hình ban đầu của Router R1 :
Cấu hình ban đầu của Router R2 :
Dùng câu lệnh ansible-playbook interface.yml để thực thi playbook ( ở đây do sử dụng inventory file mặc định của Ansible nên không cần khai báo )
Đã thực hiện cấu hình thành công trên R1 và R2
Kiểm tra :
R1 đã được tạo thêm 2 loopback 1 và loopback 2 với ip như khai báo
R2 đã được tạo thêm 2 loopback 1 và loopback 2 với ip như khai báo
Hoàn thành.
Thank you.
- Sơ đồ bài thực hành gồm máy Workstation cài đặt Ansible và 2 router
- Tạo một thư mục bao gồm 3 file
- Inventory File ( chứa thông tin host cần cấu hình ).
- File group_vars ( chứa thông tin các giá trị cần cấu hình ).
- Playbook ( chứa các bước cấu hình ).
- Học viên thực hiện khai báo thông tin các host
- Học viên thực hiện viết cấu hình Playbook để cấu hình cho các host sử dụng file giá trị group_vars.
- Kiểm tra kết quả
Bước 1 : Khai báo thông tin thiết bị trong file inventory ( ở lab này sử dụng file inventory mặc định của Ansible )
( Các câu lệnh đã được giải thích trong bài làm quen với Ansible )
Bước 2 : Tạo một thư mục với tên group_vars ( đây là tên thự mục mặc định Ansible quy định nên phải khai báo đúng như vậy ), sau đó di chuyển đến thư mục group_vars vừa tạo bằng lệnh cd.
Tạo file variable cho group Router vừa khai báo với cấu trúc đặt tên file là <group_name>.yml
Nội dung file variable Router.yml như sau :
Bước 3: Viết playbook để cấu hình với tên file là interface.yml
Giải thích :
- hosts: Router có nghĩa là playbook này sẽ được thực thi trên những host hiện đang có trong group Router được khai báo trong inventory ( bao gồm R1 và R2 )
- gather_facts: no là dòng mặc định có khi cấu hình thiết bị mạng vì Ansible không thu thập thông tin của thiết bị mạng.
- Sử dụng vòng lặp with_items để thực hiện lặp các thành phần trong biến loopback đã khai báo trong file variable Router.yml
- Sử dụng module ios_l3_interface để thực hiện tạo và đặt ip cho loopback với 2 thành phần là name và ipv4
- name : sẽ truyền giá trị lấy được từ vòng lặp with_items, mà vòng lặp with_items hiện nay đang là biến loopback nên sẽ có 2 thành phần được khai báo là name và ip. {{ item.name }} sẽ trả về giá trị của biến loopback -> name
- ipv4 : tương tự như name , {{ item.ip }} sẽ trả về giá trị của biến loopback -> ip
Cấu hình ban đầu của Router R1 :
Cấu hình ban đầu của Router R2 :
Dùng câu lệnh ansible-playbook interface.yml để thực thi playbook ( ở đây do sử dụng inventory file mặc định của Ansible nên không cần khai báo )
Đã thực hiện cấu hình thành công trên R1 và R2
Kiểm tra :
R1 đã được tạo thêm 2 loopback 1 và loopback 2 với ip như khai báo
R2 đã được tạo thêm 2 loopback 1 và loopback 2 với ip như khai báo
Hoàn thành.
Thank you.
Nguồn : VNPRO