- ฉันกำลังพยายามเขียนบรรทัดคำสั่งที่ถูกต้องที่จะ ping ไปยังโฮสต์ทั้งหมดที่มีรายละเอียดอยู่ในไฟล์สินค้าคงคลังของฉัน
- ไฟล์นักเทียบท่าของฉัน:
จาก centos:7
RUN yum ตรวจสอบการอัปเดต; \
ยำติดตั้ง -y gcc libffi-devel python3 epel-release; \
ยำติดตั้ง -y python3-pip; \
ยำติดตั้ง -y wget; \
ยำสะอาดทั้งหมด
RUN pip3 install --upgrade pip; \
pip3 ติดตั้ง "ansible"; \
wget -q https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt; \
pip3 ติดตั้ง -r ความต้องการ -azure.txt; \
ข้อกำหนด rm-azure.txt; \
คอลเลกชัน ansible-galaxy ติดตั้ง azure.azcollection \
เวิร์คดีอาร์ /github
CMD ["/usr/sbin/init"]
- โฮสต์ทั้งหมดเป็นโฮสต์ Windows OS
- ด้านล่างโครงสร้างไลบรารี Ansible ของฉัน
ค:.
ââââbla_ผลิตภัณฑ์
ââââแกน
ââââตอบได้
â ââââ สินค้าคงเหลือ
â â ââââการผลิต
â â ââââ การแสดงละคร
â â ââââทดสอบ
â â ââââคลาวด์
â â ââââในองค์กร
â â ââââdomain.com
â â â lab_x.yml
â â â
â â ââââgroup_vars
â â windows.yml
â
â ââââเพลย์บุ๊ค
â ââââบทบาท
- ไฟล์สินค้าคงคลังของฉัน lab_x.yml มีลักษณะดังนี้:
---
ทั้งหมด:
เด็ก:
ราก:
เด็ก:
ศูนย์กลาง:
เด็ก:
เซิร์ฟเวอร์แอป:
เจ้าภาพ:
centeriis.domain.com:
ansible_host: 200.10.0.100
เซิร์ฟเวอร์:
เจ้าภาพ:
centerq.domain.com:
ansible_host: 200.10.0.101
เซิร์ฟเวอร์ฐานข้อมูล:
เจ้าภาพ:
centerdb.domain.com:
ansible_host: 200.10.0.102
ฟาร์มเซิร์ฟเวอร์:
เจ้าภาพ:
เด็ก:
เกตเวย์:
เจ้าภาพ:
ใต้:
เด็ก:
บรู๊คลิน:
เจ้าภาพ:
srv1.domain.com:
ansible_host: 200.10.0.103
เด็ก:
จุดสิ้นสุด:
เจ้าภาพ:
ลูกค้า1.domain.com:
ansible_host: 200.10.0.105
client2.domain.com:
ansible_host: 200.10.0.106
ทิศเหนือ:
เด็ก:
นิวยอร์ก:
เจ้าภาพ:
srv2.domain.com:
ansible_host: 200.10.0.104
เด็ก:
จุดสิ้นสุด:
เจ้าภาพ:
ลูกค้า 3.domain.com:
ansible_host: 200.10.0.107
- เดอะ
windows.yml
ไฟล์รวมรายละเอียดการเชื่อมต่อที่อ้างถึงโฮสต์ทั้งหมดเนื่องจากเป็นโฮสต์ Windows OS ทั้งหมด:
---
ansible_connection: winrm
ansible_user: โดเมน\ผู้ใช้
ansible_password: รหัสผ่าน
- เรียกใช้คำสั่งต่อไปนี้
ใช้งานได้ทั้งหมด -i lab_r.yml -m win_ping
ผล:
[คำเตือนการปฏิเสธ]: Ansible จะต้องใช้ Python 3.8 หรือใหม่กว่าบนคอนโทรลเลอร์ที่เริ่มต้นด้วย Ansible 2.12 เวอร์ชันปัจจุบัน: 3.6.8 (ค่าเริ่มต้น 16 พ.ย. 2020, 16:55:22 น.) [GCC
4.8.5 20150623 (หมวกแดง 4.8.5-44)]. คุณลักษณะนี้จะถูกลบออกจาก ansible-core ในเวอร์ชัน 2.12 คำเตือนการเลิกใช้งานสามารถปิดใช้งานได้โดยการตั้งค่า
deprecation_warnings=เท็จ ใน ansible.cfg
centeriis.domain.com | ไม่สามารถเข้าถึงได้! => {
"เปลี่ยนแปลง": เท็จ
"msg": "[ไม่มีข้อผิดพลาด] ไม่สามารถเชื่อมต่อกับพอร์ต 22 ใน 200.10.0.100",
"ไม่สามารถเข้าถึงได้": จริง
}
- ลองอันนี้
windows.yml ที่ใช้งานได้ -i lab_r.yml -m win_ping
ให้:
[คำเตือนการปฏิเสธ]: Ansible จะต้องใช้ Python 3.8 หรือใหม่กว่าบนคอนโทรลเลอร์ที่เริ่มต้นด้วย Ansible 2.12 เวอร์ชันปัจจุบัน: 3.6.8 (ค่าเริ่มต้น 16 พ.ย. 2020, 16:55:22 น.) [GCC
4.8.5 20150623 (หมวกแดง 4.8.5-44)]. คุณลักษณะนี้จะถูกลบออกจาก ansible-core ในเวอร์ชัน 2.12 คำเตือนการเลิกใช้งานสามารถปิดใช้งานได้โดยการตั้งค่า
deprecation_warnings=เท็จ ใน ansible.cfg
[คำเตือน]: ไม่สามารถจับคู่รูปแบบโฮสต์ที่ให้มา โดยไม่สนใจ: windows.yml
[คำเตือน]: ไม่มีโฮสต์ที่ตรงกัน ไม่ต้องทำอะไร
- ฉันขาดอะไรใน "เรื่องราว" นี้
- เป็นปัญหากับไฟล์หรือคำสั่งหรือไม่
- อะไรคือสาเหตุที่ Ansible ใช้พอร์ต 22 แทนการใช้โปรโตคอล WinRM
- คำสั่ง win_ping สามารถทำงานได้ในระยะนี้หรือไม่ หรือฉันต้องเก็บ playbook และไฟล์บทบาท (งาน) เพื่อให้ทำงานได้?
- ฉันจะทำให้ธุรกิจทั้งหมดนี้ทำงานได้อย่างไร (คำสั่งที่ใช้ไฟล์ภายใน Inventories และโฟลเดอร์ group_vars)