ฉันค่อนข้างใหม่กับ Ansible ดังนั้นฉันอาจกำหนดค่าผิดพลาด
[ฉันมีคอนเทนเนอร์ Docker ที่ใช้บริการ Ansible อยู่ในนั้น
ฉันมีที่เก็บ Ansible ที่มีไฟล์ Ansible (นี่คือที่เก็บ .Git]
ความตั้งใจของฉันคือการ เปลี่ยนแต่ละแล็บในเซิร์ฟเวอร์ vCenter กลับเป็นสแน็ปช็อตเฉพาะโดยอัตโนมัติ
ดังนั้นฉัน (ด้วยความช่วยเหลือของ คู่มืออธิบายบทบาทอธิบายพร้อมตัวอย่าง):
- สร้างบทบาทกับ
ansible-กาแล็กซี่ init
ชื่อคำสั่ง วีเซ็นเตอร์
(ดูแผนผังไดเร็กทอรีด้านล่าง)
- สร้างไฟล์งาน vcenter ภายใน
งาน
โฟลเดอร์ (ดูแผนผังไดเร็กทอรีด้านล่าง) นี่คือตัวอย่างของ รีเวอร์.yml
ไฟล์งาน:
- ชื่อ: เปลี่ยนกลับเป็นภาพรวม
vmware_guest_snapshot:
ชื่อโฮสต์: "{{ vcenter_hostname }}"
ชื่อผู้ใช้: "{{ vcenter_username }}"
รหัสผ่าน: "{{ vcenter_password }}"
ศูนย์ข้อมูล: "{{ datacenter_name }}"
สถานะ: ย้อนกลับ
snapshot_name: ทำความสะอาด
delegate_to: localhost
- ให้ข้อมูลรับรอง vCenter ใน
vcenter\vars\main.yml
ไฟล์เช่นนี้:
# ไฟล์ vars สำหรับ vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_password: f#0$o#1$0o
- รวมงานใน
งาน\main.yml
ไฟล์ด้วย งานนำเข้า
ที่สำคัญดังนี้
---
# ไฟล์งานสำหรับบทบาท/vcenter
- import_tasks: poweroff.yml
- import_tasks: poweron.yml
- import_tasks: revert.yml
- import_tasks: shutdown.yml
- สร้าง
revert_lab.yml
คู่มือการเล่นที่รวมบทบาทเช่นนี้
---
- ชื่อ: ย้อนกลับห้องปฏิบัติการภายในองค์กร
โฮสต์: ทั้งหมด
บทบาท:
- วีเซ็นเตอร์
ก่อนที่ฉันจะดำเนินการ playbook เพื่อคืนค่าเครื่องจักรทั้งหมดในห้องแล็บ ฉันได้ตรวจสอบเล็กน้อย
ของไวยากรณ์ playbook:
ansible-playbook playbooks/revert_lab.yml --syntax-check
ข้อผิดพลาดที่ฉันได้รับคือ:
[คำเตือน]: Ansible กำลังทำงานในไดเร็กทอรีที่เขียนได้ทั่วโลก (/ansible) โดยไม่สนใจว่าเป็นซอร์ส ansible.cfg สำหรับข้อมูลเพิ่มเติมโปรดดู
https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
[คำเตือนการปฏิเสธ]: 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
[คำเตือน]: ไม่มีการแยกวิเคราะห์สินค้าคงคลัง มีเพียง localhost โดยปริยายเท่านั้นที่ใช้งานได้
[คำเตือน]: รายการโฮสต์ที่ให้มาว่างเปล่า มีเพียง localhost เท่านั้นที่ใช้งานได้ โปรดทราบว่า localhost โดยปริยายไม่ตรงกับ 'ทั้งหมด'
ข้อผิดพลาด! ไม่พบบทบาท 'vcenter' ใน /ansible/playbooks/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible/playbooks
ข้อผิดพลาดดูเหมือนจะอยู่ใน '/ansible/playbooks/revert_lab.yml': บรรทัดที่ 5 คอลัมน์ 5 แต่อาจ
อยู่ที่อื่นในไฟล์ขึ้นอยู่กับปัญหาไวยากรณ์ที่แน่นอน
บรรทัดที่ละเมิดดูเหมือนจะเป็น:
บทบาท:
- วีเซ็นเตอร์
^ ที่นี่
ฉันตัดสินใจที่จะเพิ่ม ansible.cfg
ไปยังที่เก็บของฉันด้วย a บทบาท_เส้นทาง
กุญแจ:
[ค่าเริ่มต้น]
สินค้าคงคลัง = / ansible / สินค้าคงคลัง
roles_path = /ansible/บทบาท
# roles_path = ./roles:..~/ansible/roles
ฉันวิ่งอีกครั้ง --syntax-ตรวจสอบ
คำสั่ง แต่ได้รับข้อผิดพลาดเดียวกัน ฉันลองใช้สถานะเส้นทางของบทบาทประเภทต่างๆ - และได้รับข้อผิดพลาดเดียวกัน แน่นอน ansible-playbook
คำสั่งไม่ทำงาน (พร้อมข้อความแสดงข้อผิดพลาดเดียวกัน):
playbooks ansible-playbook/revert_lab.yml -i สินค้าคงเหลือ/test/onpremis/domain.com/lab_r.yml
ดังนั้น,
ฉันจะทำให้เข้าใจบทบาทของฉันได้อย่างไร
ฉันจะทำให้ ansible รัน playbook ได้สำเร็จได้อย่างไร
ansible.cfg เกี่ยวข้องหรือไม่เกี่ยวข้องกับ "เรื่องราว" หรือไม่
พื้นที่เก็บข้อมูลของฉัน:
ค:.
ââââตอบได้
â â ansible.cfg
â ââââ สินค้าคงเหลือ
â â ââââทดสอบ
â â ââââคลาวด์
â â ââââในองค์กร
â â ââââdomain.com
â â â lab_j.yml
â â â lab_r.yml
â â ââââgroup_vars
â â all.yml
â ââââเพลย์บุ๊ค
â â revert_lab.yml
â ââââบทบาท
â ââââvศูนย์
â ââââงาน
â â main.yml
â â poweroff.yml
â â poweron.yml
â â return.yml
â â ปิดระบบ.yml
â ââââvars
main.yml