Score:0

จะกำหนดงานให้เรียกใช้สำหรับกลุ่มสินค้าคงคลังเฉพาะได้อย่างไร?

ธง uz

งานต่อไปนี้:

- ชื่อ: ดาวน์โหลด Jfrog Artifcats
  ansible.windows.win_shell: |
    $ENV:JFROG_CLI_OFFER_CONFIG="เท็จ"
    jfrog rt ดาวน์โหลด ...
  เมื่อไร: ???

ควรรันเฉพาะเครื่องที่อยู่ภายใต้ ศูนย์กลาง ใน เซิร์ฟเวอร์แอป กลุ่ม

---
ทั้งหมด:
  เด็ก:
    ราก:
      เด็ก:
        ศูนย์กลาง:
          เด็ก:
            เซิร์ฟเวอร์แอป:
              เจ้าภาพ:
                vm1.domain.com:
            เซิร์ฟเวอร์:
              เจ้าภาพ:
                vm2.domain.com:
            เซิร์ฟเวอร์ฐานข้อมูล:
              เจ้าภาพ:
                vm3.domain.com:
        ฟาร์มมือถือ:
          เจ้าภาพ:
          เด็ก:
            เกตเวย์:
              เจ้าภาพ:
        ใต้:
          เด็ก:
            บรู๊คลิน:
              เจ้าภาพ:
                vm4.domain.com:
              เด็ก:
                ลูกค้า:
                  เจ้าภาพ:
                    vm5.domain.com:
                    vm6.domain.com:
        ทิศเหนือ:
          เด็ก:
            นิวยอร์ก:
              เจ้าภาพ:
                vm8.domain.com:
              เด็ก:
                ลูกค้า:
                  เจ้าภาพ:
                    vm9.domain.com:

ฉันควรพิมพ์อะไรเป็นเงื่อนไขภายใต้ เมื่อไร เพื่อที่จะทำสิ่งนี้ให้สำเร็จ? นอกจากนี้ หลักการเบื้องหลังตัวเลือกการกำหนดค่านี้คืออะไร

Semicolon avatar
jo flag
เมื่อ: inventory_hostname ใน appservers ไม่แน่ใจว่าคุณหมายถึงอะไรโดย "หลักการเบื้องหลังสิ่งนี้คืออะไร"
uz flag
@Semicolon ฉันต้องการทราบว่าฉันเข้าถึงกลุ่มที่ต้องการได้อย่างไร ตัวอย่างเช่น: ```appservers``` ภายใต้ ```center``` หรือ ```gateways``` ภายใต้ ```mobilefarms``` หรือทุกเครื่องภายใต้ ```north``` เป็นต้น ...
Score:2
ธง jo

หากต้องการใช้การเป็นสมาชิกกลุ่มแบบมีเงื่อนไขสำหรับงาน เล่น หรือบล็อก คุณต้องใช้รูปแบบ:

เมื่อ: inventory_hostname ในกลุ่ม["<ชื่อกลุ่ม>"]

โดยเฉพาะสำหรับคำถามเริ่มต้นของคุณ:

เมื่อใด: inventory_hostname ในกลุ่ม ["appservers"]

ในการเข้าถึงทุกเครื่องภายใต้ ทิศเหนือคุณเพียงแค่เปลี่ยนเป็น: เมื่อ: inventory_hostname ในกลุ่ม["เหนือ"]

เกี่ยวกับการชี้แจงติดตามผลของคุณ (ระบุกลุ่มใน "สถานที่" เฉพาะ) เนื่องจากชื่อกลุ่มต้องไม่ซ้ำกันใน ansible จึงไม่จำเป็นต้องแยกความแตกต่าง ที่ เซิร์ฟเวอร์แอป กลุ่มที่คุณอ้างถึง เช่น เซิร์ฟเวอร์แอป สามารถอยู่ในตำแหน่งเดียวเท่านั้น

หากคุณพยายามที่จะสร้างสอง เซิร์ฟเวอร์แอป กลุ่ม เฉพาะกลุ่มแรกเท่านั้นที่จะถูกแยกวิเคราะห์โดยเอ็นจิ้น ansible; กลุ่มถัดไปที่มีชื่อเดียวกันจะถูกละเว้น ดังนั้นหากคุณวางแผนที่จะ (ในอนาคต) มี เซิร์ฟเวอร์แอป กลุ่มภายใต้ ทิศเหนือ และ เซิร์ฟเวอร์แอป กลุ่มภายใต้ ใต้คุณจะพบว่ามีเฉพาะสมาชิกในกลุ่มแรกเท่านั้นที่จะถูกรวม

เราบรรลุสิ่งนี้ได้อย่างไร (ข้อสันนิษฐานของฉันเกี่ยวกับสิ่งที่คุณ อาจ ต้องการในอนาคต) วิธีที่พอจะทำได้คือเพิ่มโฮสต์ลงในกลุ่มหลายๆ กลุ่ม แล้วปรับขีดจำกัดหรือเงื่อนไขของคุณให้เหมาะสม:

ทั้งหมด:
  เด็ก:
    ทิศเหนือ:
      เจ้าภาพ:
        a.domain.com:
        b.domain.com:
    ใต้:
      เจ้าภาพ:
        y.domain.com:
        z.domain.com:
    เซิร์ฟเวอร์แอป:
      เจ้าภาพ:
        a.domain.com:
        y.domain.com:
    เซิร์ฟเวอร์ฐานข้อมูล:
      เจ้าภาพ:
        b.domain.com:
        z.domain.com:

ในตัวอย่างนี้ ถ้าคุณต้องการ ทั้งหมด เซิร์ฟเวอร์แอป คุณก็แค่กำหนดเป้าหมาย เซิร์ฟเวอร์แอป. ถ้าคุณต้องการเท่านั้น เซิร์ฟเวอร์แอป ใน ทิศเหนือ ภูมิภาค จากนั้นคุณจะกำหนดขีดจำกัดในการเล่นเป็น ทิศเหนือ:&appserversหรือใช้เงื่อนไขแทนก็ได้

เมื่อไร:
  - inventory_hostname ในกลุ่ม ["appservers"]
  - inventory_hostname ในกลุ่ม["เหนือ"]

ในกรณีใด ๆ ฉันคิดว่าคุณอาจต้องการการทบทวนว่าสินค้าคงคลังมีโครงสร้างอย่างไรใน ansible เพราะฉันจะแนะนำ คู่มือผู้ใช้; นอกจากนี้ยังมีแหล่งข้อมูลที่ยอดเยี่ยมในไซต์การฝึกอบรมต่างๆ ที่สามารถลงรายละเอียดได้มากขึ้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเป้าหมายที่ซับซ้อนมากขึ้นโดยใช้หลายกลุ่ม (ชุดค่าผสม สหภาพ และการยกเว้น ฯลฯ) เราขอแนะนำให้คุณตรวจสอบสิ่งนี้ คู่มือผู้ใช้.


ในบันทึกส่วนตัว ในตอนแรกฉันคิดว่าการตั้งค่านั้นน่าเบื่อและมีข้อจำกัด แต่เมื่อฉันคุ้นเคยกับการใช้งานมากขึ้น ฉันพบว่ามันมีไดนามิกมากกว่าทางเลือกอื่น

uz flag
ขอบคุุณ. ```เมื่อ: "'appservers' ใน group_names"``` - นี่เป็นรูปแบบเดียวที่ฉันทำสำเร็จแต่ก็ยังไม่สามารถจัดโฟกัสเงื่อนไขเฉพาะบน ```แอปเซิร์ฟเวอร์``` ภายในกลุ่มหลัก ```center``` ได้ ฉันต้องการโฟกัสนี้ เพราะแล็บบางแห่งมี ```appservers``` ภายใต้ ```mobilefarms``` main gourp - และเครื่องเหล่านั้นไม่ควรมีสิ่งประดิษฐ์...
Zeitounator avatar
fr flag
@Hiddai กลุ่ม `Sub1 ' ทุกที่ที่คุณกำหนดให้เป็น **หนึ่ง** กลุ่ม หากคุณให้คำจำกัดความหลายอย่างของ `Sub1` ว่าเป็นรายการย่อยของกลุ่มหลักหลายกลุ่ม ผลลัพธ์จะเป็นการเชื่อมโยงโฮสต์/ลูกทั้งหมดที่กำหนดไว้ที่ใดก็ได้ ด้วยเหตุนี้ กลุ่ม 'Sub1' ในฐานะลูกของกลุ่ม 'A' จะมีโฮสต์เดียวกันกับตอนที่เป็นกลุ่มย่อย 'B' ดู[คำถาม/คำตอบนี้](https://stackoverflow.com/questions/68746910/)
Zeitounator avatar
fr flag
@Semicolon: คุณหมายถึง `เมื่อ: inventory_hostname ในกลุ่ม[]` ซึ่งแปลเป็น `เมื่อ: inventory_hostname ในกลุ่ม['appservers']` ในกรณีของ OP ? โซลูชันของคุณไม่สามารถทำงานได้ตามปกติ เว้นแต่ผู้ใช้จะกำหนด var `appservers` เอง (มิฉะนั้นคุณจะได้รับ `appservers` เป็นข้อผิดพลาดที่ไม่ได้กำหนด) â
uz flag
@Semicolon, @Zeitounator - ตอนนี้ฉันทำสำเร็จแล้ว หลังจากอ่านคำตอบของ @ Semicolon อย่างละเอียดแล้ว: "ชื่อกลุ่มต้องไม่ซ้ำกันใน ansible" เมื่อฉันเปลี่ยนกลุ่ม ```appservers``` ของ particullary center เป็นชื่อ ```center_appservers``` - มันเริ่มทำงานเหมือนเวทมนตร์ ขอบใจ.
Semicolon avatar
jo flag
@Zeitounator แน่นอนคุณถูกต้อง ฉันเพิ่งเขียนชุดงานเสร็จโดยมองหาสตริงในชื่อโฮสต์และพิมพ์ต่อไป ฉันได้อัปเดตด้วยไวยากรณ์ที่ถูกต้องแล้ว -- โดยใช้โน้ตของคุณ แต่โดยหลักแล้วก็แค่คัดลอกจากหน้าจอเปิดที่ฉันมี

โพสต์คำตอบ

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