ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command
ส่งการกำหนดค่าไปยังสวิตช์และเราเตอร์
ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เป้าหมายไม่ได้มีแค่เซิร์ฟเวอร์
Ansible จัดการเราเตอร์และสวิตช์ได้ด้วย ไม่ใช่แค่โฮสต์ Linux ระบบอัตโนมัติด้านเครือข่ายจะส่งการกำหนดค่าไปยังอุปกรณ์ผ่าน SSH หรือเอพีไอ 🌐
เหตุใดอุปกรณ์เครือข่ายจึงแตกต่าง
สวิตช์มักไม่มี Python ดังนั้น Ansible จึงไม่สามารถคัดลอกโมดูลลงไปได้ การเชื่อมต่อ network_cli จะเรียกใช้คำสั่งจากระยะไกลผ่าน CLI ของอุปกรณ์แทน
vars:
ansible_connection: ansible.netcommon.network_cli
ansible_network_os: cisco.ios.iosทำความรู้จัก cli_command
โมดูล cli_command จะส่งคำสั่งดิบไปยังอุปกรณ์เครือข่ายและส่งคืนผลลัพธ์ เช่นเดียวกับการพิมพ์ที่พรอมต์ของอุปกรณ์ด้วยตนเอง
- name: Show version
ansible.netcommon.cli_command:
command: show versionบันทึกผลลัพธ์
ใช้ register เพื่อบันทึกสิ่งที่อุปกรณ์ส่งคืน ผลลัพธ์จะไปอยู่ใน stdout พร้อมให้คุณตรวจสอบหรือแยกวิเคราะห์ภายหลัง
- name: Read running config
ansible.netcommon.cli_command:
command: show running-config
register: cfgส่งคำสั่งการกำหนดค่า
หากต้องการเปลี่ยนการกำหนดค่า อุปกรณ์ต้องอยู่ในโหมดกำหนดค่า cli_configจะจัดการการเข้าและออกจากโหมดนั้นให้คุณอย่างปลอดภัย
- name: Set hostname
ansible.netcommon.cli_config:
config: hostname core-sw01ตอบข้อความถามแบบโต้ตอบ
คำสั่งบางอย่างจะขอการยืนยัน cli_commandสามารถตอบกลับโดยอัตโนมัติด้วยคู่พรอมต์และคำตอบ เพื่อไม่ให้เพลย์ค้าง
- ansible.netcommon.cli_command:
command: reload
prompt:
- Proceed with reload
answer:
- 'y'ออกแบบให้ไม่ขึ้นกับผู้ผลิต
งาน cli_command เดียวกันทำงานได้กับ Cisco, Juniper หรือ Arista มีเพียง ansible_network_os ที่เปลี่ยน ดังนั้นรูปแบบการเขียนของคุณจึงยังสม่ำเสมอ
ใช้โมดูลของแพลตฟอร์มเมื่อทำได้
สำหรับการเปลี่ยนแปลงที่มีโครงสร้างและทำซ้ำได้โดยไม่ก่อผลซ้ำ ให้เลือกใช้โมดูลอย่าง cisco.ios.ios_config และใช้ cli_command เมื่อไม่มีโมดูลเฉพาะที่เหมาะสม
- cisco.ios.ios_config:
lines:
- description uplink to core
parents: interface GigabitEthernet0/1ข้อมูลรับรองผ่าน SSH
อุปกรณ์เครือข่ายยังคงยืนยันตัวตนผ่าน SSH ตั้งค่า ansible_user และรหัสผ่านหรือคีย์ที่เก็บใน vault เพื่อให้เพลย์เข้าสู่ระบบได้อย่างเรียบร้อย
vars:
ansible_user: netadmin
ansible_password: "{{ vault_net_pass }}"บันทึกการกำหนดค่าที่กำลังทำงาน
การเปลี่ยนแปลงจะอยู่ในการกำหนดค่าที่กำลังทำงานจนกว่าจะบันทึก ให้เรียกใช้คำสั่งเขียนเพื่อให้การตั้งค่าคงอยู่หลังการเริ่มระบบใหม่ของอุปกรณ์ 💾
- ansible.netcommon.cli_command:
command: write memoryโมดูลเหล่านี้มาจากที่ใด
cli_command อยู่ในคอลเลกชัน ansible.netcommon ให้ติดตั้งจาก Galaxy ก่อนที่เพลย์บุ๊กเครือข่ายของคุณจะใช้งานได้
ansible-galaxy collection install ansible.netcommonตรวจสอบสั้น ๆ
มาทบทวนวิธีสื่อสารกับสวิตช์กัน
สรุป
โมดูล cli_command ที่ทำงานผ่านการเชื่อมต่อ network_cli ช่วยให้ Ansible เรียกใช้และบันทึกคำสั่งบนสวิตช์และเราเตอร์ผ่าน SSH ได้ ✅
คำถามที่พบบ่อย
บทเรียน “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command”
ส่งการกำหนดค่าไปยังสวิตช์และเราเตอร์ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command
- delegate_to และ run_once สำหรับการประสานงาน
- ประสานชั้น Web, App และ DB
- นำโหนดออกจาก Load Balancer แล้วนำกลับเข้า