Score:0

เพลย์บุ๊ก Ansible กำลังรีบูตเซิร์ฟเวอร์ รอจนกว่าการรีบูตจะเสร็จสมบูรณ์

ธง us

ฉันประสบปัญหาขณะเรียกใช้เชลล์สคริปต์ด้วยเพลย์บุ๊กที่เข้าใจได้
ปัญหา: ฉันสูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเนื่องจากเชลล์สคริปต์กำลังรีบูตเซิร์ฟเวอร์

Playbook Ansible ของฉัน

- ชื่อ: จัดการกับการรีบูต
  โฮสต์: ทั้งหมด
  กลายเป็น: ใช่
  
  งาน:
    - ชื่อ: ดำเนินการสคริปต์ 
      เปลือก: ทุบตี testscript.sh
      หาเรื่อง:
        chdir: /home/ubuntu
      แจ้ง:
        - รอให้เซิร์ฟเวอร์รีสตาร์ท
        
  ตัวจัดการ:
    - ชื่อ: รอให้เซิร์ฟเวอร์รีสตาร์ท
      local_action:
        โมดูล: wait_for
          โฮสต์={{ สินค้าคงคลัง_ชื่อโฮสต์ }}
          พอร์ต = 22
          ล่าช้า=10
        กลายเป็น: เท็จ

เชลล์สคริปต์ของฉัน:

#!/bin/bash
echo "กำลังดำเนินการบางอย่าง"
echo "กำลังรีบูตทันที"
รีบูต
echo "รีบูตเสร็จสิ้น"
echo "กำลังดำเนินการเพิ่มเติม"

ข้อผิดพลาดที่ฉันได้รับขณะรีบูตเซิร์ฟเวอร์ระยะไกล

ร้ายแรง: [ที่อยู่ IP ของฉัน]: ไม่สามารถเข้าถึงได้! => {
    "เปลี่ยนแปลง": เท็จ
    "msg": "ไม่สามารถเชื่อมต่อกับโฮสต์ผ่าน ssh: ปิดการเชื่อมต่อที่ใช้ร่วมกันกับ <my-ip-address>",
    "ไม่สามารถเข้าถึงได้": จริง
}

เป็นไปได้หรือไม่ที่จะจัดการกับการรีบูตซึ่งทำโดยเชลล์สคริปต์และรอการเชื่อมต่อจนกว่าเซิร์ฟเวอร์ระยะไกลจะเปิดใช้งานอีกครั้ง

ขอบคุณ.

in flag
มีเหตุผลใดที่จะไม่ใช้ [รีบูตโมดูล](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/reboot_module.html)
in flag
คุณทราบหรือไม่ว่าคำสั่งในสคริปต์ของคุณหลังจาก `reboot' จะไม่ถูกดำเนินการ
vik2595 avatar
us flag
@GeraldSchneider ฉันจะติดตั้งเครื่องมือเฉพาะที่มีขั้นตอนนี้ รายละเอียดเพิ่มเติมเกี่ยวกับสคริปต์ เปลี่ยนชื่ออินเทอร์เฟซเครือข่ายและกำหนด IP เฉพาะ FYI: เราไม่สามารถเปลี่ยนแปลงอะไรในเชลล์สคริปต์ได้ ฉันจึงต้องคิดวิธีอื่นเพื่อให้มันได้ผล
vik2595 avatar
us flag
@GeraldSchneider เห็นได้ชัดว่ากำลังดำเนินการ โปรดตรวจสอบสคริปต์นี้เพื่อดูรายละเอียดเพิ่มเติม https://github.com/magma/magma/blob/master/lte/gateway/deploy/agw_install_ubuntu.sh
Score:2
ธง in

คุณควรใช้ wait_for_connection แทน.

งาน:
  - ชื่อ: ดำเนินการสคริปต์ 
    เปลือก: ทุบตี testscript.sh
    หาเรื่อง:
      chdir: /home/ubuntu
  - ชื่อ: รอ
    wait_for_connection:
      ล่าช้า: 10

ฉันขอแนะนำให้ทำสิ่งนี้ในงานไม่ใช่ตัวจัดการ ตัวจัดการจะดำเนินการหลังจากนั้นเท่านั้น ทั้งหมด งานต่างๆ เสร็จสิ้นแล้ว ดังนั้นหากคุณมีงานต่อจากงานที่ดำเนินการรีบูต งานเหล่านั้นจะถูกลองก่อนที่ playbook จะเริ่มรอด้วยซ้ำ

หรือใช้ รีบูตโมดูลซึ่งดำเนินการโดยอัตโนมัติ

vik2595 avatar
us flag
แน่นอน ให้ฉันลองใช้วิธีนี้ดู

โพสต์คำตอบ

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