Score:0

อิมเมจ Linux ที่ไม่เปลี่ยนรูปแบบ - ฉันจะไปได้ไกลแค่ไหนและควรไปอย่างไร

ธง vu

ความไม่เปลี่ยนรูปนั้นเจ๋งมากเพื่อให้ได้ความสอดคล้อง คาดการณ์ได้ และเชื่อถือได้ และฉันไม่เห็นเหตุผลว่าทำไมฉันจึงไม่ควรพยายามใช้การไม่เปลี่ยนรูประดับ OS เมื่อปรับใช้แอปพลิเคชันของฉันบน Linux VPS จากผู้ให้บริการระบบคลาวด์รายต่างๆ ทั่ว โลก. ด้วยเครื่องมือเช่น Packer เพื่อช่วยสร้างอิมเมจ OS นี่ดูเหมือนจะเป็นวิธีที่จะไป

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

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

แต่ฉันจะรับประกันได้อย่างไรว่าภาพสุดท้ายของ Hetzner มี ที่แน่นอน การติดตั้ง CentOS 8 เดียวกัน (ลงไปถึงชุด RPM ที่ติดตั้งชุดเดียวกันอย่างแม่นยำพร้อมหมายเลขรุ่นเดียวกัน) ที่ใช้งานบนผู้ให้บริการคลาวด์รายอื่นทั้งหมดหรือไม่

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

เครื่องมือดังกล่าวมีอยู่จริงหรือฉันควรคิดต่างไปจากเดิมอย่างสิ้นเชิง

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

ฉันต้องการทดสอบการตั้งค่าทั้งหมด (OS + แอปพลิเคชัน) อย่างละเอียดก่อนที่จะนำไปใช้กับผู้ให้บริการระบบคลาวด์ จากนั้นการปรับใช้จะเหมือนกันกับผู้ให้บริการระบบคลาวด์ทุกราย นี่คือวิธีที่เราทำสิ่งต่างๆ ในระดับแอปพลิเคชันโดยใช้อิมเมจของ Docker และฉันก็ไม่เข้าใจว่าทำไมเราถึงควรยอมรับในระดับระบบปฏิบัติการน้อยกว่านี้

ข้อมูลใด ๆ จากเพื่อนร่วมงาน DevSecOps ของคุณว่าจะบรรลุเป้าหมายเหล่านี้ได้อย่างไร

Score:0
ธง np

ในความเป็นจริง เมื่อคุณสร้าง VM ใน Hetzner แล้ว คุณสามารถบูตไปยัง LiveCD ที่เลือกได้ ซึ่งมีสิ่งต่างๆ เช่น CloneZilla หรือ SystemRescue ซึ่งคุณสามารถใช้เพื่อดัมพ์/กู้คืนอิมเมจของคุณได้

ฉันพบว่าอิมเมจ CloneZilla นั้นพกพาสะดวกกว่าระหว่างผู้ให้บริการ Cloud VPS ต่างๆ

Score:0
ธง cn

ไม่จำเป็นต้องมีการอัปเดตตามอิมเมจหรือโฮสต์ที่ไม่เปลี่ยนรูปแบบเพื่อตั้งค่าการควบคุมบางอย่างเกี่ยวกับซอฟต์แวร์ที่ติดตั้ง ตัวเลือกอยู่ระหว่างสุดขั้วของ
แพ็คเกจอัปเดตอัตโนมัติจากมิเรอร์สาธารณะและรูปภาพที่ไม่เปลี่ยนรูป

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

ง่ายพอที่จะโคลนการติดตั้งระบบปฏิบัติการเป็นอินสแตนซ์อื่น อย่างไรก็ตาม อิมเมจของ distros ที่อิงตามแพ็คเกจนั้นไม่สามารถเปลี่ยนแปลงได้อย่างแท้จริง ตัวจัดการแพ็คเกจยังคงมีอยู่ในอินสแตนซ์ และผู้ใช้ที่มีสิทธิพิเศษยังสามารถเปลี่ยนแปลงสิ่งต่าง ๆ ในแผนผัง /usr

พิจารณา distro ที่สร้างขึ้นจากการอัปเดตตามรูปภาพ เช่น คอร์โอเอส. การอัปเดตจะต้องจัดเลเยอร์ลงในรูปภาพและรีบูตเพื่อให้มีผล การปรับแต่งจะจำกัดเมทาดาทาจำนวนเล็กน้อย โดยเฉพาะอย่างยิ่ง CoreOS นั้นใช้สำหรับโฮสต์คอนเทนเนอร์เท่านั้น แต่นี่อาจเป็นกรณีการใช้งานของคุณ Fedora CoreOS 34.20210904.3.0 มีข้อได้เปรียบในด้านความสามารถในการทำซ้ำได้ จึงเป็นชุดซอฟต์แวร์ที่กำหนดไว้อย่างดี


โฮสต์คอมพิวเตอร์ที่ไม่มีวิธีอัปโหลดภาพสามารถแก้ไขได้ บูตสภาพแวดล้อมการช่วยเหลือด้วยการเข้าถึงเครือข่าย และ ดาวน์โหลดภาพโดยตรงไปยังดิสก์. ภาพรวมเพื่อสร้างเทมเพลต


ตอนนี้อาจเป็นเวลาที่ดีในการประเมินการเลือก distro ของคุณด้วยเหตุผลอื่นๆ CentOS Linux 8 สิ้นสุดในเดือนธันวาคม 2021 CentOS Stream เป็นตัวทดแทน แต่จะเป็นอัปสตรีมมากกว่าดาวน์สตรีมจาก RHEL

Score:0
ธง bd

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

ถ้าฉันเข้าใจถูกต้องว่าคุณต้องการอะไร ฉันจะไปที่เครื่องมือ 'infra-test' เช่น ตรวจสอบ ซึ่งช่วยให้คุณอธิบายสิ่งที่คุณต้องการในอิมเมจเป้าหมาย/VM

เราใช้มันเพื่อตรวจสอบของเรา กองเกลือ/โครงการโรงเกลือ รหัสใช้ร่วมกับ ครัว ด้วยวิธีนี้ (เราเรียกใช้งานในเครื่องมือ CI ของเรา)

  • สร้าง N เครื่องเสมือนพร้อมครัว (สามารถใช้กับ Docker, Vagrant แต่ยังรวมถึงผู้ให้บริการคลาวด์ด้วย)
  • บทบัญญัติ เครื่องจักรแต่ละเครื่องที่มีโปรไฟล์ ไม่ว่าจะเป็น Salt, Ansible, Chef, Puppet หรืออะไรก็ตาม
  • ตรวจสอบ สถานะเครื่องที่เป็นผลลัพธ์ด้วย Inspec

Inspec ให้คุณสร้าง 'การทดสอบหน่วย' แต่สำหรับโครงสร้างพื้นฐาน/ระบบ: คุณสามารถตรวจสอบผู้ใช้และกลุ่มที่มีอยู่หรือขาดหายไป แพ็คเกจที่ติดตั้งและเวอร์ชัน บริการที่ใช้งาน พอร์ต TCP/UDP กฎไฟร์วอลล์...

(ฉันใช้ Packer เพื่อสร้างอิมเมจด้วย แต่ตอนนี้ฉันไม่ได้ใช้ Inspec ในบริบทนี้: เราพิจารณาว่าโค้ดที่ใช้สร้างอิมเมจนี้ได้รับการทดสอบแล้วโดยงาน CI ก่อนหน้า)

ไปที่ปัญหาของคุณ: ฉันจะเพิ่มขั้นตอนการตรวจสอบ Inspec ในการตั้งค่า Packer ของคุณ ยิ่งกว่านั้นดูเหมือนว่ามันรวมอยู่ใน Packer แล้วในฐานะผู้จัดเตรียม https://www.packer.io/docs/provisioners/inspec (ที่ฉันเพิ่งค้นพบ)

โพสต์คำตอบ

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