ฉันมีสคริปต์ที่ทำงานได้ดีเมื่อฉันส่งไฟล์ไปยังเซิร์ฟเวอร์เพื่อรันด้วยตัวเอง แต่มีปัญหาเมื่อฮัดสันซึ่งเป็นเซิร์ฟเวอร์รวมอย่างต่อเนื่องรันได้
ฉันกำลังทำการทดสอบอัตโนมัติบนระบบลินุกซ์ในตัว (เป้าหมาย) เป้าหมายเชื่อมต่อกับเซิร์ฟเวอร์ A (RHEL 5) ผ่านทางอนุกรมและดำเนินการผ่าน minicom เซิร์ฟเวอร์ B (FC 12) สร้างการทดสอบที่ทำงานบนเป้าหมายจริงและสามารถ ssh ไปที่เซิร์ฟเวอร์ A เซิร์ฟเวอร์ C (RH) โฮสต์ฮัดสันโดยเซิร์ฟเวอร์ B เป็นทาส
ฉันได้เขียนสคริปต์ runcript (http://linux.die.net/man/1/runscript) เพื่อทำทุกอย่างที่จำเป็นในเป้าหมายจริง มันบูทอิมเมจติดตั้งไดเรกทอรีจากเซิร์ฟเวอร์ B และดำเนินการทดสอบ สคริปต์ทุบตีบนเซิร์ฟเวอร์ B จะเรียกใช้ minicom ด้วยสคริปต์ runcript พร้อมกับการดำเนินการร่วมกัน ฉันมีสคริปต์ทุบตีบนเซิร์ฟเวอร์ B ซึ่งใช้
ssh -t -t ServerA bashScript.sh
เพื่อให้การทดสอบเหล่านั้นทำงานตามเป้าหมาย ฉันอยู่บนเซิร์ฟเวอร์ C ฉันสามารถรับการทดสอบเหล่านั้นที่ดำเนินการโดย ssh'ing ไปยังเซิร์ฟเวอร์ B และดำเนินการสคริปต์ที่ ssh's ไปยังเซิร์ฟเวอร์ A ซึ่งรัน minicom ด้วย runcript ต๊าย วิธีตรวจสอบ:
เซิร์ฟเวอร์ A: Hudson ใช้กลไกการทาสเพื่อ ssh ไปยัง Server B
เซิร์ฟเวอร์ B: kickOffTests.sh
มีบรรทัดssh -t -t ServerA runTests.sh
เซิร์ฟเวอร์ A: runTests.sh
เรียกสคริปต์ perl ที่เรียกใช้minicom -S my.script ttyE1
เป้าหมายหลังจากบูท: ติดตั้งไดเรกทอรีจากเซิร์ฟเวอร์ B ซึ่งการทดสอบอยู่ที่และเข้าสู่ไดเรกทอรีนั้น มันยังเรียกอีกสคริปต์ทุบตีซึ่งเรียกใช้การทดสอบซึ่งเป็นคอมไพล์ executables C
ตอนนี้เมื่อฉันรันสคริปต์เหล่านี้ด้วยตัวเองพวกเขาก็ทำในสิ่งที่ควรทำ อย่างไรก็ตามเมื่อฮัดสันพยายามที่จะทำสิ่งเดียวกันในช่วงมินิคอมมันบ่นเกี่ยวกับบรรทัดใน "สคริปต์อื่นทุบตี" ที่เรียกใช้ C ปฏิบัติการ./executable
ด้วย./executable: cannot execute binary file
ฉันยังมีอะไรอีกมากมายให้เรียนรู้เกี่ยวกับ linux แต่ฉันคิดว่าปัญหานี้เกิดจากฮัดสันไม่ได้เชื่อมต่อกับคอนโซล ฉันไม่รู้ว่าฮัดสันทำอะไรเพื่อควบคุมทาสของมัน ฉันพยายามใช้บรรทัดexport TERM=console
ในการกำหนดค่าก่อนเรียกใช้ kickOffTests.sh แต่ปัญหายังคงอยู่
ใครสามารถอธิบายให้ฉันฟังว่าเกิดอะไรขึ้นและฉันจะแก้ไขได้อย่างไร ฉันไม่สามารถลบเซิร์ฟเวอร์ใด ๆ ออกจากสมการนี้ อาจเป็นไปได้ที่จะนำ minicom ออกจากสมการ แต่นั่นจะเพิ่มเวลาที่ไม่รู้จักในโครงการนี้ดังนั้นฉันจึงชอบโซลูชันที่ใช้สิ่งที่ฉันมีอยู่แล้ว