การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ
ลดภาระส่วนเกินต่องาน
การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ภาระส่วนเกินของ SSH สะสมขึ้นเรื่อย ๆ
ทุกงานอาจหมายถึงการเข้าสู่ระบบใหม่ การคัดลอกไฟล์ และการเรียกใช้ผ่าน SSH เมื่อนำไปคูณกับงานและโฮสต์จำนวนมาก ภาระส่วนเกินนี้จะกลายเป็นส่วนใหญ่ของเวลาทำงาน
วิธีทำงานปกติของงานหนึ่งรายการ
ตามค่าเริ่มต้น Ansible จะคัดลอกโมดูลไปยังโฮสต์ เรียกใช้โมดูล แล้วล้างข้อมูลออก แต่ละขั้นตอนมีค่าใช้จ่ายเป็นการเดินทางไปกลับผ่าน SSH ซึ่งมักหลีกเลี่ยงได้
ให้การส่งโมดูลโดยตรงช่วยแก้ปัญหา
เมื่อใช้ การส่งโมดูลโดยตรง Ansible จะส่งโมดูลผ่านเซสชัน SSH ที่มีอยู่ แทนการเขียนไฟล์ชั่วคราวก่อน จึงลดจำนวนการเชื่อมต่อต่องาน
[ssh_connection]
pipelining = Trueข้อจำกัดของ requiretty
การส่งโมดูลโดยตรงต้องใช้ sudo โดยไม่มี TTY ดังนั้นการตั้งค่า sudoers ระยะไกลต้องไม่บังคับใช้ requiretty ดิสทริบิวชันสมัยใหม่มักใช้งานได้ แต่บางระบบที่เสริมความปลอดภัยอาจต้องปรับค่า
นำการเชื่อมต่อกลับมาใช้ใหม่
ControlPersist ของ OpenSSH จะเปิดการเชื่อมต่อหลักค้างไว้และส่งงานถัด ๆ ไปผ่านการเชื่อมต่อนั้น ทำให้ไม่ต้องเริ่มการจับมือใหม่ทุกครั้ง
ปรับค่า ssh_args
Ansible เปิดใช้การนำการเชื่อมต่อกลับมาใช้ใหม่ผ่าน ssh_args ค่า ControlPersist กำหนดระยะเวลาที่ซ็อกเก็ตร่วมจะยังทำงานอยู่หลังจากงานสุดท้ายเสร็จ
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60sซ็อกเก็ตอยู่ที่ใด
การเชื่อมต่อร่วมจะอยู่ในไฟล์ซ็อกเก็ต เส้นทางควบคุม ให้ใช้เส้นทางนี้ให้สั้นเพื่อหลีกเลี่ยงข้อจำกัดของระบบปฏิบัติการเกี่ยวกับความยาวชื่อซ็อกเก็ต
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%rการส่งโมดูลโดยตรงเทียบกับการนำการเชื่อมต่อกลับมาใช้ใหม่
ทั้งสองอย่างแก้ปัญหาคนละด้าน: การส่งโมดูลโดยตรง ลดการเดินทางไปกลับภายในงานหนึ่งรายการ ส่วน ControlPersist นำเซสชัน SSH กลับมาใช้ใหม่กับงานหลายรายการ
ใช้ทั้งสองอย่างร่วมกัน
การส่งโมดูลโดยตรงและการเชื่อมต่อแบบคงอยู่จะ เสริมประสิทธิภาพกัน การเปิดใช้ทั้งสองอย่างเป็นหนึ่งในวิธีเพิ่มความเร็วให้เพลย์บุ๊กขนาดใหญ่ที่เห็นผลมากและมีความเสี่ยงต่ำ
ข้อมูลระบบก็เร็วขึ้นเช่นกัน
หากคุณไม่ต้องใช้ข้อมูลระบบ ให้ตั้งค่า gather_facts: false เพื่อข้ามโมดูลตั้งค่า วิธีนี้จะตัดขั้นตอนที่ใช้เวลามากออกจากจุดเริ่มต้นของทุกเพลย์
วัดผลลัพธ์ที่ดีขึ้น
เปิดใช้ส่วนเรียกกลับ profile_tasks เพื่อจับเวลาของแต่ละงาน ระบบจะแสดงให้เห็นอย่างชัดเจนว่าแต่ละวินาทีถูกใช้ไปที่ใด ทำให้คุณยืนยันได้ว่าการปรับค่าช่วยได้จริง
ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้งานแต่ละรายการหลีกเลี่ยงการเขียนไฟล์ชั่วคราวก่อนทำงานผ่าน SSH
สรุปทบทวน
เปิดใช้ การส่งโมดูลโดยตรง เพื่อลดการเดินทางไปกลับ และใช้ ControlPersist เพื่อนำเซสชัน SSH กลับมาใช้ใหม่ ทั้งสองอย่างร่วมกันช่วยลดภาระส่วนเกินของการเชื่อมต่อในเพลย์ขนาดใหญ่ได้อย่างมาก ⚡
คำถามที่พบบ่อย
บทเรียน “การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ”
ลดภาระส่วนเกินต่องาน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- forks และการปรับจูนการทำงานแบบขนาน
- กลยุทธ์: linear, free และ host_pinned
- การทำ Pipeline ผ่าน SSH และการใช้การเชื่อมต่อซ้ำ
- serial และการทำงานเป็นชุดแบบทยอย