Score:1

คำสั่ง Ad-Hoc Ansible - โมดูลดิบไม่ทำงานบนอุปกรณ์ Cisco IOS

ธง us

พยายามใช้คำสั่ง Ad Hoc ทั้งบน Cisco ios Router และ Switch ของฉันด้วย -m ดิบ โมดูล. แต่ได้รับข้อผิดพลาดต่อไปนี้แทน

$ansible -i inventory_file02.ini netgrp -m raw -a "รุ่นที่แสดง" -u abdo -K

ข้อผิดพลาด====

กลายเป็นรหัสผ่าน: 
R1 | ล้มเหลว | rc=127 >>
/bin/sh: 1: แสดง: ไม่พบ
รหัสส่งคืนที่ไม่ใช่ศูนย์
SW1 | ล้มเหลว | rc=127 >>
/bin/sh: 1: แสดง: ไม่พบ
รหัสส่งคืนที่ไม่ใช่ศูนย์

ไฟล์สินค้าคงคลัง=====

R1 ansible_host=192.168.20.1
SW1 ansible_host=192.168.10.2

[netgrp]
R1
สว.1

group_vars/netgrp.yml===

---
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: abdo
absible_password: กาลี/abdo
ansible_become: ใช่
ansible_become_method: เปิดใช้งาน
ansible_ssh_pass: kali/abdo

$ ansible -i inventory_file02.ini netgrp -m raw -a "รุ่นที่แสดง" -u abdo -kK -vvv

ใช้งานได้ [core 2.12.6]
  ไฟล์ปรับแต่ง = /etc/ansible/ansible.cfg
  เส้นทางการค้นหาโมดูลที่กำหนดค่า = ['/home/kali/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ตำแหน่งโมดูลหลาม ansible = /usr/local/lib/python3.10/dist-packages/ansible
  สถานที่รวบรวม ansible = /home/kali/.ansible/collections:/usr/share/ansible/collections
  ตำแหน่งปฏิบัติการ = /usr/local/bin/ansible
  รุ่นหลาม = 3.10.4 (หลัก 24 มีนาคม 2565, 13:07:27 น.) [GCC 11.2.0]
  เวอร์ชันจินจา = 3.0.3
  libyaml = จริง
ใช้ /etc/ansible/ansible.cfg เป็นไฟล์ปรับแต่ง
รหัสผ่าน SSH: 
รหัสผ่าน BECOME[ค่าเริ่มต้นคือรหัสผ่าน SSH]: 
host_list ปฏิเสธการแยกวิเคราะห์ /home/kali/ansible_play01/net_play02/inventory_file02.ini เนื่องจากไม่ผ่านวิธี Verify_file()                                                                                                        
สคริปต์ปฏิเสธการแยกวิเคราะห์ /home/kali/ansible_play01/net_play02/inventory_file02.ini เนื่องจากไม่ผ่านวิธี Verify_file()                                                                                                           
การแยกวิเคราะห์โดยอัตโนมัติ /home/kali/ansible_play01/net_play02/inventory_file02.ini เนื่องจากไม่ผ่านเมธอด                                                                                                             
yaml ปฏิเสธการแยกวิเคราะห์ /home/kali/ansible_play01/net_play02/inventory_file02.ini เนื่องจากไม่ผ่านวิธี Verify_file()                                                                                                             
แยกวิเคราะห์ /home/kali/ansible_play01/net_play02/inventory_file02.ini แหล่งที่มาของสินค้าคงคลังด้วยปลั๊กอิน ini
ข้ามการโทรกลับ 'ค่าเริ่มต้น' เนื่องจากเรามีการโทรกลับ stdout แล้ว
ข้ามการโทรกลับ 'ขั้นต่ำ' เนื่องจากเรามีการโทรกลับแบบ stdout แล้ว
ข้ามการโทรกลับ 'oneline' เนื่องจากเรามีการโทรกลับ stdout แล้ว
META: ตัวจัดการที่รัน
การเปลี่ยนเส้นทาง (ประเภท: การเชื่อมต่อ) ansible.buildin.network_cli ไปยัง ansible.netcommon.network_cli
การเปลี่ยนเส้นทาง (ประเภท: การเชื่อมต่อ) ansible.buildin.network_cli ไปยัง ansible.netcommon.network_cli
การเปลี่ยนเส้นทาง (ประเภท: เทอร์มินัล) ansible.buildin.ios ไปยัง cisco.ios.ios
การเปลี่ยนเส้นทาง (ประเภท: cliconf) ansible.buildin.ios ไปยัง cisco.ios.ios
การเปลี่ยนเส้นทาง (ประเภท: เทอร์มินัล) ansible.buildin.ios ไปยัง cisco.ios.ios
การเปลี่ยนเส้นทาง (ประเภท: กลายเป็น) ansible.buildin.enable เป็น ansible.netcommon.enable
การเปลี่ยนเส้นทาง (ประเภท: cliconf) ansible.buildin.ios ไปยัง cisco.ios.ios
การเปลี่ยนเส้นทาง (ประเภท: กลายเป็น) ansible.buildin.enable เป็น ansible.netcommon.enable
<192.168.10.2> สร้างการเชื่อมต่อภายในสำหรับผู้ใช้: kali
<192.168.10.2> EXEC แสดงเวอร์ชัน
<192.168.20.1> สร้างการเชื่อมต่อภายในสำหรับผู้ใช้: kali
<192.168.20.1> EXEC แสดงเวอร์ชัน
SW1 | ล้มเหลว | rc=127 >>
/bin/sh: 1: แสดง: ไม่พบ
รหัสส่งคืนที่ไม่ใช่ศูนย์
R1 | ล้มเหลว | rc=127 >>
/bin/sh: 1: แสดง: ไม่พบ
รหัสส่งคืนที่ไม่ใช่ศูนย์
Score:0
ธง cn

สร้างการเชื่อมต่อท้องถิ่น ไม่ใช่ข้อความ -vvv ที่ฉันคาดไว้ ปลั๊กอินการเชื่อมต่อภายในเครื่องเพียงแค่ดำเนินการคำสั่งบน localhost สังเกตเชลล์ /bin/sh ไม่ใช่สิ่งที่พบใน IOS สำหรับ network_cli ฉันคาดหวัง ท้องถิ่น แทนที่จะเป็น ปารามิโกะ หรือ LIBSSH. (หลายปีก่อนอุปกรณ์เครือข่ายใช้ปลั๊กอินการเชื่อมต่อแบบโลคัลบวกกับพารามิเตอร์โมดูล แต่สิ่งนี้ล้าสมัยไปนานแล้วโดยปลั๊กอินการเชื่อมต่อจริง)

คู่มือการแก้ไขปัญหาเครือข่าย แนะนำว่าอาจเป็นเพียง สร้างการเชื่อมต่อ. แต่นั่นอาจล้าสมัย ปลั๊กอินการเชื่อมต่อที่ทันสมัยตามแบบแผนรวมถึงชื่อของพวกเขา

ดังนั้นตัวแปรการเชื่อมต่อของคุณจึงสอดคล้องกับวิธีการ กำหนดค่าการเชื่อมต่อกับ IOSแต่อาจสมัครไม่ถูกต้อง ซึ่งคุณใส่ใน group_vars ซึ่งเป็นตัวเลือกที่ดี อย่างไรก็ตาม ฉันคิดว่าการกำหนดโฮสต์ R1 และ สว.1 สองครั้งทำให้เกิดปัญหา

รักษาสินค้าคงคลังรูปแบบ ini ของคุณ ลบโฮสต์นอกกลุ่ม แต่เก็บตัวแปรโฮสต์:

[netgrp]
R1 ansible_host=192.168.20.1
SW1 ansible_host=192.168.10.2

Vars สามารถกำหนดได้เกือบทุกที่ ลองกำหนดสิ่งเหล่านี้ในที่อื่นเพื่อดูว่าอะไรได้ผลและอะไรที่ให้ความรู้สึกเป็นธรรมชาติ ตัวอย่างเช่น มีไวยากรณ์สำหรับกำหนด vars ระดับกลุ่มในสินค้าคงคลัง ซึ่งสามารถแทนที่การใช้ group_vars สำหรับรายละเอียดการเชื่อมต่อ

[netgrp:vars]
ansible_connection=network_cli
ansible_network_os=ios
ansible_user=abdo
ansible_become_method=เปิดใช้งาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา