Score:1

เหตุใดการเรียกใช้ ansible.windows.win_package ครั้งที่สองจึงไม่ทำงาน

ธง uz

ฉันมีผลิตภัณฑ์ที่ฉันสามารถติดตั้งได้ก่อน แล้วจึงอัปเดต - หมายถึงการเพิ่มคุณสมบัติเพิ่มเติมให้กับผลิตภัณฑ์พื้นฐานของฉัน

ผมทำโดยเรียกใช้ MSI ครั้งแรก จากนั้นไปที่ Add \ Remove Programs และเมื่อเลือกผลิตภัณฑ์ คุณสามารถคลิก "เปลี่ยน" และตัวช่วยสร้างการติดตั้งจะปรากฏขึ้นอีกครั้ง เพื่อให้คุณสามารถเลือกและติดตั้งคุณลักษณะเพิ่มเติมในผลิตภัณฑ์ได้

ฉันสร้าง 2 บทบาทและคู่มือการเล่นสำหรับภารกิจนี้ บทบาทแรกใช้ ansible.windows.win_package เพื่อติดตั้งผลิตภัณฑ์ฐาน (ดูตัวอย่างด้านล่าง)

- ชื่อ: ติดตั้ง Server.msi primary_appserver
  ansible.windows.win_package:
    เส้นทาง: C:\product.msi
    log_path: C:\InstallProduct.log
    ข้อโต้แย้ง:
     ADDLOCAL=DB,ตัวแทน
    สถานะ: ปัจจุบัน
  กลายเป็น: จริง
  makes_method: รูน
  วาร์:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  เมื่อ: "'primary_appservers' ใน group_names"

บทบาทที่สองใช้ ansible.windows.win_package อีกครั้งด้วยอาร์กิวเมนต์ ADDLOCAL ที่แตกต่างกัน (คุณลักษณะเพิ่มเติม):

- ชื่อ: ติดตั้ง Engineprimary_appserver
  ansible.windows.win_package:
    เส้นทาง: C:\product.msi
    log_path: C:\InstallEngine.log
    ข้อโต้แย้ง:
     ADDLOCAL=เครื่องยนต์
    สถานะ: ปัจจุบัน
  กลายเป็น: จริง
  makes_method: รูน
  วาร์:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  เมื่อ: "'primary_appservers' ใน group_names"

บทบาทแรกทำงานได้ดีและรันไฟล์ msi ส่วนที่สองไม่ใช่ ถ้าฉันทำสองงานนั้นด้วย CLI msiexec /i ก็ใช้ได้ เหตุใดจึงไม่ทำงานเมื่อดำเนินการ ansible.windows.win_package

in flag
ฉันเดาว่าน่าจะเป็น `state: present` มีอยู่แล้วจึงไม่ต้องเรียกใช้อีก มีไฟล์/โฟลเดอร์หรือบริการใดบ้างที่คุณสามารถตรวจสอบด้วย `creates_path` หรือ `creates_service` ที่สร้างขึ้นจากการเรียกใช้ครั้งที่สองเท่านั้น
uz flag
สามารถพิจารณาไฟล์บันทึกการติดตั้งใหม่ได้หรือไม่
in flag
อาจเป็นไปได้ มันคุ้มค่าที่จะลอง.
uz flag
คุณสมบัติเพิ่มเติม - ควรเพิ่มไดเร็กทอรีเพิ่มเติมด้วยชื่อ "Engine" ในโฟลเดอร์ผลิตภัณฑ์ เราสามารถใช้มันในคีย์ ```create_path``` ได้ไหม?
in flag
ใช่ นั่นคือจุดประสงค์ของ `create_path` เพื่อตรวจสอบว่ามีอยู่จริงหรือไม่ ถ้าไม่ใช่ คุณควรดำเนินการงานของคุณ
uz flag
@GeraldSchneider ฉันลบ ```state``` และเพิ่มคีย์ ```creates_path``` - มันทำงานเหมือนเวทมนตร์ ขอบคุณ
Score:1
ธง in

ปัญหานี้ส่วนใหญ่น่าจะเป็น สถานะ: ปัจจุบัน พารามิเตอร์ เนื่องจากแพ็คเกจมีอยู่แล้วเมื่อรันงาน แทนคุณสามารถใช้ create_path หรือ create_service พารามิเตอร์เพื่อตรวจสอบว่าจำเป็นต้องติดตั้งแพ็คเกจหรือไม่

ตัวอย่าง:

- ชื่อ: ติดตั้ง Engineprimary_appserver
  ansible.windows.win_package:
    เส้นทาง: C:\product.msi
    log_path: C:\InstallEngine.log
    ข้อโต้แย้ง:
    ADDLOCAL=เครื่องยนต์
    create_path: "C:\Path\to\product\folder"
  กลายเป็น: จริง
  makes_method: รูน
  วาร์:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  เมื่อ: "'primary_appservers' ใน group_names"

โพสต์คำตอบ

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