0Pricing
Ansible Academy · บทเรียน

ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command

ส่งการกำหนดค่าไปยังสวิตช์และเราเตอร์

ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command”

ส่งการกำหนดค่าไปยังสวิตช์และเราเตอร์ คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม

ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทำระบบอุปกรณ์เครือข่ายอัตโนมัติด้วย cli_command
  2. delegate_to และ run_once สำหรับการประสานงาน
  3. ประสานชั้น Web, App และ DB
  4. นำโหนดออกจาก Load Balancer แล้วนำกลับเข้า
← กลับไปที่ Ansible Academy