ฉันต้องการที่จะเข้าใจความแตกต่างระหว่างหุ่นกระบอกกับ Ansible โดยเฉพาะอย่างยิ่งข้อ จำกัด ของ Puppet ในการเปรียบเทียบกับ Ansible
มีสิ่งใดบ้างที่คุณไม่สามารถทำได้ใน Puppet แต่คุณสามารถทำได้ใน Ansible? กล่าวอีกนัยหนึ่งว่าทำไมบางคนย้ายจากหุ่นไป Ansible
ฉันต้องการที่จะเข้าใจความแตกต่างระหว่างหุ่นกระบอกกับ Ansible โดยเฉพาะอย่างยิ่งข้อ จำกัด ของ Puppet ในการเปรียบเทียบกับ Ansible
มีสิ่งใดบ้างที่คุณไม่สามารถทำได้ใน Puppet แต่คุณสามารถทำได้ใน Ansible? กล่าวอีกนัยหนึ่งว่าทำไมบางคนย้ายจากหุ่นไป Ansible
คำตอบ:
แน่นอนว่ามีโปรและข้อเสียหลายอย่างสำหรับ Puppet, Ansible, Chef และเพิ่มเครื่องมือโปรดของคุณที่นี่เช่นกัน ดังนั้นฉันจะพยายามหลีกเลี่ยงความคิดเห็นและแบ่งปันสิ่งที่ดีใน Ansible ตามความเป็นจริง
ความสามารถหลักที่ทำให้ Ansible เหนือสิ่งอื่นนั้นไม่จำเป็นต้องพึ่งพาเอเจนต์แบบกำหนดเอง / เพิ่มเติมบางตัวที่ทำงานบนโหนดเป้าหมายแทนที่จะสร้างบนการเชื่อมต่อ ssh เท่านั้น ใช่มันยังคงต้องใช้เซิร์ฟเวอร์ ssh, Python และไลบรารี Python จำนวนมากบนโหนดและหากคุณเลือก distro (หรือโชคดีมีบางโหนด windows) ไม่ได้จัดส่งมากับพวกเขามันจะเล็กน้อย เจ็บปวดกับบูต แต่นั่นก็ไม่น่าเป็นไปได้และอาจทำให้คุณคิดถึงเรื่อง distro อีกครั้ง
นั่นจะทำให้การตรวจสอบง่ายขึ้นไม่กินทรัพยากรเพิ่มเติมไม่บังคับให้ระบบเรียกใช้ daemon ว่าเป็น root ตลอดเวลาและโดยทั่วไปจะรู้สึกดีขึ้นภายในปรัชญา UNIX เชฟมีchef-solo
หุ่นเชิดสามารถทำงานได้แบบไร้ต้นแบบ แต่ทั้งคู่ต่างก็ทำงาน "ไปในทิศทางอื่น" โดยการโคลนนิ่งและผ่านตะขอตามลำดับ ในขณะที่ใช้ Ansible การรวมแหล่งข้อมูลในแหล่งเก็บข้อมูลสามารถทำให้เกิดการปรับใช้ในแบบที่เราทุกคนคุ้นเคยไม่ว่าจะเป็นใน Jenkins, git master หรือในเครื่องมืออื่น ๆ เช่น Rundeck เป็นต้น
template
โมดูลAnsible ทำให้มันง่ายมาก
ไม่ผู้คนที่ย้ายออกจากหุ่นกระบอกไปยัง Ansible (หรือกลับกัน) ไม่มีส่วนเกี่ยวข้องกับสิ่งที่สามารถหรือไม่สามารถทำได้ด้วยเครื่องมือใด ๆ Puppet / Chef / Ansible - มันเป็นเรื่องของรสนิยม
ตัวอย่างเช่น Ansible อิงจาก Python และโดยทั่วไปแล้วนักพัฒนา Python จะรู้สึกเหมือนอยู่บ้านมากกว่า (ไม่จำเป็นต้องเรียนรู้ DSL) หรือ Ruby (สำหรับ Chef) ง่ายขึ้นสำหรับนักพัฒนา Python ในการขยาย Ansible เช่นกัน
แต่ในสาระสำคัญพวกเขาทั้งหมดคล้ายกันมากในแง่ของสิ่งที่คุณสามารถทำได้ บางคนมีจุดแข็งสัมพัทธ์ในบางพื้นที่และจุดอ่อนในเรื่องอื่น ๆ แต่โดยทั่วไปแล้วการเลือกระหว่างพวกเขานั้นเกิดจากสไตล์ / วัฒนธรรม / ความชอบของทีม
จนกระทั่งหุ่น 4.0 ไม่มีวิธีที่ง่ายต่อการประยุกต์ใช้ Orchestrateแผ่กระจายไปทั่วเซิร์ฟเวอร์หรือบริการหลายอย่างที่มันเป็นเรื่องยากที่จะดำเนินการเฉพาะในการสั่งซื้อหุ่นกระบอกซึ่งเป็นทางเลือกการออกแบบ Ansible ดีกว่าในการจัดเตรียมและสั่งซื้อขั้นตอนโดยเฉพาะในเซิร์ฟเวอร์หลายเครื่อง สิ่งนี้มีความสำคัญเป็นพิเศษในแอปพลิเคชันที่ลำดับขั้นตอนที่ไม่ถูกต้องอาจนำไปสู่ข้อผิดพลาดที่ไม่สามารถกู้คืนได้โดยการทำซ้ำขั้นตอนเหล่านั้นจนกว่าจะถึงความสอดคล้องในที่สุด
นั่นไม่ใช่ปัญหาอีกต่อไปดังนั้นความแตกต่างจึงขึ้นอยู่กับความชอบเป็นหลัก