Score:0

ดำเนินงานจากโฮสต์ในบทบาทหนึ่ง และมอบหมายงานอื่นให้กับโฮสต์อื่นในบทบาทอื่น

ธง ph
azk


บริบท:

ฉันมีโครงการที่มีสองบทบาท
ฉันได้ลดจำนวนงานลงเหลืองานที่มีปัญหาเพื่อความเข้าใจที่ดีขึ้น


ปัญหา:
ฉันเรียกใช้งานจากบทบาทที่ 1 ในเซิร์ฟเวอร์ 1 และพยายามมอบหมายงานให้กับ vmware virtualizer จากเงื่อนไขในงานบทบาทเซิร์ฟเวอร์ 1 แรก และมีโฮสต์ล้มเหลวเนื่องจากต้องการดำเนินงานบทบาทที่สอง (Vmware) ในเซิร์ฟเวอร์1


ข้อผิดพลาด:

ร้ายแรง: [testhost]: ล้มเหลว! => {"เหตุผล": "คำสั่งการกระทำที่ขัดแย้งกัน: โฮสต์, 
Gather_facts\n\nข้อผิดพลาดดูเหมือนจะอยู่ใน '/home/ancible/proyects/extend_fs-role/roles/vmwaretaks/tasks/addvmwaredisk.yml': บรรทัด 2 คอลัมน์ 3 
แต่อาจ\nอยู่ที่อื่นในไฟล์ ขึ้นอยู่กับปัญหาของ tntax\n\nบรรทัดที่ไม่เหมาะสมจะเป็น:\n\n---\n- โฮสต์: localhost\n ^ ที่นี่\n"}


นี่คือโครงสร้าง:

.
âââ คอลเลกชัน
â âââ ความต้องการ.yml
âââ README.md
âââ resizefs_hosts.yml
âââ บทบาท
    âââ ปรับขนาดfs
    â  âââ ค่าเริ่มต้น
    â â ââ âââ main.yml
    â âââ ตัวจัดการ
    â â ââ âââ main.yml
    â  âââ เมตา
    â â ââ âââ main.yml
    â âââ งาน
    â  â âââ main.yml
    â â ââ âââ findfreedisk.yml
    â âââ การทดสอบ
    สินค้าคงคลัง
    â â ââ âââ test.yml
    â âââ วาร์
    â âââ main.yml
    âââ vmwaretaks
        âââ ค่าเริ่มต้น
        â âââ main.yml
        âââ ไฟล์
        âââ ตัวจัดการ
        â âââ main.yml
        âââ เมตา
        â âââ main.yml
        âââ README.md
     Â Â âââ งาน
      â âââ main.yml
      â âââ addvmwaredisk.yml
        เทมเพลต âââ
        âââ การทดสอบ
        â  âââ สินค้าคงคลัง
        â âââ test.yml
        âââ วาร์
            âââ main.yml


นี่คือคำสั่งประหารชีวิตในกรณีที่ไม่พบลูนฟรีในโฮสต์:

resizefs_role_hosts.yml -> บทบาท/resizefs/tasks/main.yml -> บทบาท/resizefs/tasks/findfreedisk.yml -> \
บทบาท/vmwaretaks/tasks/main.yml -> บทบาท/vmwaretaks/tasks/addvmwaredisk.yml


Playbooks มีลักษณะดังนี้:

$ cat resizefs_role_hosts.yml
---
- โฮสต์: โฮสต์ทดสอบ
  กลายเป็น: ใช่
  makes_method: sudo
  บทบาท:
    - บทบาท: 'บทบาท/resizefs'
$ cat roles/resizefs/tasks/main.yml
---
# ไฟล์งานสำหรับ create_fs-test
- import_tasks: findfreedisk.yml
บทบาทแมว $/resizefs/tasks/findfreedisk.yml

- ชื่อ: การค้นหาดิสก์ที่ไม่มีพาร์ติชัน
  set_fact:
    ดิสก์: "/dev/{{outer_item.key}}"
  เมื่อไร:
    - ไม่ใช่ outer_item.value.partitions
    - ไม่ใช่ outer_item.value.links.ids
    - outer_item.key คือการค้นหา ("sd")
  with_dict: '{{ansible_devices}}'
  loop_control:
    loop_var:outer_item
  แจ้ง:
    - Format_free_disk
  เปลี่ยนแปลง_เมื่อ: จริง

- ชื่อ: พิมพ์ชื่อดิสก์ถ้ามี
  แก้ปัญหา:
    ข้อความ:
      - "{{ disks|default('NOT FREE DISK') }} Available"

# หากไม่มีดิสก์ให้เพิ่ม lun ใหม่จาก Vmware
- include_role:
    ชื่อ: vmwaretaks
  เมื่อ: ไม่ได้กำหนดดิสก์
$ cat roles/vmwaretaks/tasks/main.yml
---
# ไฟล์งานสำหรับ add-new-vmware-lun
- import_tasks: addvmwaredisk.yml
$ cat roles/vmwaretaks/tasks/addvmwaredisk.yml

---
- โฮสต์: localhost
  Gather_facts: จริง

  วาร์:
    vcenter_hostname: 'vcenter.labo.local'
    vcenter_username: 'labo.local\ansible'
    vcenter_password: "{{ vault_pass }}"
    target_host: 'ทดสอบโฮสต์'
    vm_uuid: '4217B33E-014D-E056-0719-45AD3AC1861E'
    vm_unit_number: '5'

  งาน:
    - ชื่อ: เพิ่มดิสก์ลงในเครื่องเสมือนโดยใช้ UUID
      vmware_guest_disk:
        ชื่อโฮสต์: "{{ vcenter_hostname }}"
        ชื่อผู้ใช้: "{{ vcenter_username }}"
        รหัสผ่าน: "{{ vcenter_password }}"
        ศูนย์ข้อมูล: "{{ vcenter_hostname }}"
        uuid: "{{ vm_uuid | ล่าง }}"
        validate_certs: ไม่
        ดิสก์:
          - size_gb: 10
            ประเภท: 'หนา'
            สถานะ: 'ปัจจุบัน'
            autoselect_datastore: ใช่
            scsi_controller: '0'
            scsi_type: 'เสมือน'
            unit_number: '5'
            disk_mode: 'อิสระ_ถาวร'
      delegate_to: localhost

ฉันพยายามหาวิธีที่จะบอกว่าบทบาทที่สองไม่ได้ดำเนินการในเซิร์ฟเวอร์ แต่ใน vmware virtualizer แต่โชคไม่ดี
ถ้าฉันเรียกใช้ addvmwaredisk.yml เป็น playbook มันจะทำงานได้อย่างสมบูรณ์แบบ

หวังว่าคุณจะช่วยได้!

ขอบคุณล่วงหน้า!

Score:1
ธง th

เจ้าภาพ และ งาน เป็นคำหลักที่ใช้เล่น ไม่สามารถใช้ในรายการงานได้ ในการดำเนินงานบนโฮสต์ที่แตกต่างจากโฮสต์การเล่นปัจจุบัน ให้ใช้ การมอบหมาย; หากต้องการจัดกลุ่มงานที่เกี่ยวข้องเข้าด้วยกันและใช้คำสั่งกับงานทั้งหมด ให้ใช้ บล็อก.

- delegate_to: localhost
  วาร์:
    vcenter_hostname: 'vcenter.labo.local'
    vcenter_username: 'labo.local\ansible'
    vcenter_password: "{{ vault_pass }}"
    target_host: 'ทดสอบโฮสต์'
    vm_uuid: '4217B33E-014D-E056-0719-45AD3AC1861E'
    vm_unit_number: '5'
  บล็อก:
    - ชื่อ: เพิ่มดิสก์ลงในเครื่องเสมือนโดยใช้ UUID
      vmware_guest_disk:
        ชื่อโฮสต์: "{{ vcenter_hostname }}"
        ชื่อผู้ใช้: "{{ vcenter_username }}"
        รหัสผ่าน: "{{ vcenter_password }}"
        ศูนย์ข้อมูล: "{{ vcenter_hostname }}"
        uuid: "{{ vm_uuid | ล่าง }}"
        validate_certs: ไม่
        ดิสก์:
          - size_gb: 10
            ประเภท: 'หนา'
            สถานะ: 'ปัจจุบัน'
            autoselect_datastore: ใช่
            scsi_controller: '0'
            scsi_type: 'เสมือน'
            unit_number: '5'
            disk_mode: 'อิสระ_ถาวร'
azk avatar
ph flag
azk
ฉันพยายามใช้วิธีแก้ปัญหาของคุณ แต่มันทำให้ฉันมีข้อผิดพลาด: `ผิดพลาด! ไม่พบโมดูล/การดำเนินการในงาน ข้อผิดพลาดดูเหมือนจะอยู่ใน '/ansible/proyects/extend_fs-role/roles/vmwaretaks/tasks/getvmdiskinfo.yml': บรรทัด 1 คอลัมน์ 3 แต่อาจ อยู่ที่อื่นในไฟล์ขึ้นอยู่กับปัญหาไวยากรณ์ที่แน่นอน บรรทัดที่ละเมิดดูเหมือนจะเป็น: - delegate_to: localhost ^ ที่นี่` ค้นหาโมดูล: `$ ansible-doc -l|grep -i มอบหมาย zfs_delegate_admin จัดการการดูแลระบบที่ได้รับมอบสิทธิ์ ZFS (สิทธิ์ผู้ดูแลระบบของผู้ใช้) `
azk avatar
ph flag
azk
$ ansible-playbook --version ansible-playbook 2.9.19
flowerysong avatar
th flag
นี่หมายความว่าคุณมีปัญหาเกี่ยวกับไวยากรณ์ที่ไม่มีอยู่ในข้อมูลโค้ดที่ฉันให้ไว้ (มีการดำเนินการในทุกงาน) หากไม่เห็นโค้ดที่อัปเดตของคุณ เราก็ไม่มีทางบอกคุณได้ว่าคุณทำอะไรผิด
Score:0
ธง ph
azk

ฉันเพิ่งแก้ไขมันเพิ่งเพิ่ม กลายเป็น: ไม่

- delegate_to: localhost
  กลายเป็น: ไม่
  delegate_facts: ใช่

โพสต์คำตอบ

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