ข้อ จำกัด ของ Puppet ในการเปรียบเทียบกับ Ansible คืออะไร?


17

ฉันต้องการที่จะเข้าใจความแตกต่างระหว่างหุ่นกระบอกกับ Ansible โดยเฉพาะอย่างยิ่งข้อ จำกัด ของ Puppet ในการเปรียบเทียบกับ Ansible

มีสิ่งใดบ้างที่คุณไม่สามารถทำได้ใน Puppet แต่คุณสามารถทำได้ใน Ansible? กล่าวอีกนัยหนึ่งว่าทำไมบางคนย้ายจากหุ่นไป Ansible


ฉันเก็บคำตอบของฉันไว้อย่างดีแยกจากนี้เหตุผลหนึ่งอาจเป็นเพราะเงินทั้งหมดที่ลงทุนไป
ᴳᵁᴵᴰᴼ

คำตอบ:


20

แน่นอนว่ามีโปรและข้อเสียหลายอย่างสำหรับ Puppet, Ansible, Chef และเพิ่มเครื่องมือโปรดของคุณที่นี่เช่นกัน ดังนั้นฉันจะพยายามหลีกเลี่ยงความคิดเห็นและแบ่งปันสิ่งที่ดีใน Ansible ตามความเป็นจริง

ความสามารถหลักที่ทำให้ Ansible เหนือสิ่งอื่นนั้นไม่จำเป็นต้องพึ่งพาเอเจนต์แบบกำหนดเอง / เพิ่มเติมบางตัวที่ทำงานบนโหนดเป้าหมายแทนที่จะสร้างบนการเชื่อมต่อ ssh เท่านั้น ใช่มันยังคงต้องใช้เซิร์ฟเวอร์ ssh, Python และไลบรารี Python จำนวนมากบนโหนดและหากคุณเลือก distro (หรือโชคดีมีบางโหนด windows) ไม่ได้จัดส่งมากับพวกเขามันจะเล็กน้อย เจ็บปวดกับบูต แต่นั่นก็ไม่น่าเป็นไปได้และอาจทำให้คุณคิดถึงเรื่อง distro อีกครั้ง

นั่นจะทำให้การตรวจสอบง่ายขึ้นไม่กินทรัพยากรเพิ่มเติมไม่บังคับให้ระบบเรียกใช้ daemon ว่าเป็น root ตลอดเวลาและโดยทั่วไปจะรู้สึกดีขึ้นภายในปรัชญา UNIX เชฟมีchef-soloหุ่นเชิดสามารถทำงานได้แบบไร้ต้นแบบ แต่ทั้งคู่ต่างก็ทำงาน "ไปในทิศทางอื่น" โดยการโคลนนิ่งและผ่านตะขอตามลำดับ ในขณะที่ใช้ Ansible การรวมแหล่งข้อมูลในแหล่งเก็บข้อมูลสามารถทำให้เกิดการปรับใช้ในแบบที่เราทุกคนคุ้นเคยไม่ว่าจะเป็นใน Jenkins, git master หรือในเครื่องมืออื่น ๆ เช่น Rundeck เป็นต้น


เป็นที่น่าสังเกตว่าหากคุณทำสิ่งที่ผิดพลาดกับการตั้งค่า ssh ของคุณด้วยการที่คุณรู้ว่าคุณถูกล็อคจากเครื่องของคุณนั่นคือข้อเสียเปรียบของโมเดลการผลักดัน Puppet หรือพ่อครัวสามารถทำงานบนงาน crontab ได้ดังนั้นพวกเขาจะไม่ส่งผลกระทบต่อระบบมากกว่ารหัส Python ที่สามารถเข้าใจได้ทั้งหมด
Tensibai

1
หมายเหตุเกี่ยวกับตัวแทน: ฉันได้รับการอนุมัติให้เข้าสู่กระดาน Ansible ใน HSE (สภาพแวดล้อมความปลอดภัยสูง) โดยทีมรักษาความปลอดภัยที่ปฏิเสธ Chef และ Puppet แม้จะอยู่ในรูปแบบไร้ต้นแบบ Agentless เป็นปัจจัยที่ชนะในบางกรณี
นักล่าป่าไม้

2
หากคุณยกเลิกการตั้งค่า SSH ของคุณคุณจะมีปัญหาเกินกว่า Ansible ในทุกกรณี เป็น DevOps ที่ดีในการทดสอบสิ่งต่าง ๆ เช่นการเปลี่ยนแปลง SSH ในสภาพแวดล้อมต่าง ๆ ก่อนที่จะทำการผลิตและยังสามารถตรวจสอบการกำหนดค่า SSH ว่าถูกต้องตามที่เขียนไว้ - templateโมดูลAnsible ทำให้มันง่ายมาก
RichVel

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

10

ไม่ผู้คนที่ย้ายออกจากหุ่นกระบอกไปยัง Ansible (หรือกลับกัน) ไม่มีส่วนเกี่ยวข้องกับสิ่งที่สามารถหรือไม่สามารถทำได้ด้วยเครื่องมือใด ๆ Puppet / Chef / Ansible - มันเป็นเรื่องของรสนิยม

ตัวอย่างเช่น Ansible อิงจาก Python และโดยทั่วไปแล้วนักพัฒนา Python จะรู้สึกเหมือนอยู่บ้านมากกว่า (ไม่จำเป็นต้องเรียนรู้ DSL) หรือ Ruby (สำหรับ Chef) ง่ายขึ้นสำหรับนักพัฒนา Python ในการขยาย Ansible เช่นกัน

แต่ในสาระสำคัญพวกเขาทั้งหมดคล้ายกันมากในแง่ของสิ่งที่คุณสามารถทำได้ บางคนมีจุดแข็งสัมพัทธ์ในบางพื้นที่และจุดอ่อนในเรื่องอื่น ๆ แต่โดยทั่วไปแล้วการเลือกระหว่างพวกเขานั้นเกิดจากสไตล์ / วัฒนธรรม / ความชอบของทีม


8

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

นั่นไม่ใช่ปัญหาอีกต่อไปดังนั้นความแตกต่างจึงขึ้นอยู่กับความชอบเป็นหลัก


2
ตัวเลือกการออกแบบหุ่นเชิดเป็นหนึ่งในเหตุผลที่เชฟเริ่มต้นและหลักที่ฉันได้ย้ายมาที่ Chef สำหรับโครงสร้างพื้นฐานและระบบซีดีของเราเมื่อไม่กี่ปีที่ผ่านมา
Tensibai

2
Orchestration Puppet เป็นคุณสมบัติ Puppet Enterprise (เชิงพาณิชย์) เท่านั้นในขณะที่ Orchestration ใน Ansible อยู่ในเวอร์ชันโอเพ่นซอร์ส โดยทั่วไป Ansible ง่ายต่อการติดตั้งและเรียนรู้มากกว่า Puppet เพราะตอนนี้ฉันได้ใช้ Ansible แล้ว มีความแตกต่างอื่น ๆ ด้วยดังนั้นมันไม่ใช่แค่เรื่องของความชอบส่วนตัว
RichVel

1
ฉันใช้ Ansible ทั้งในงานเก่าและงานปัจจุบัน แต่มีปัญหาของตัวเอง ยิ่งฉันใช้ Ansible ยิ่งฉันสนใจที่จะเรียนรู้ทางเลือกอื่น ฉันต้องการทางเลือกนี้เพื่อไม่ใช้ Python สำหรับการพัฒนาโมดูลและมีชุมชนโอเพ่นซอร์สที่สำคัญ คำขอดึงออกสำหรับ Ansible ใช้เวลาเกือบปีในการตรวจสอบ ในอัตรานี้มันอาจเป็นกรรมสิทธิ์ได้เช่นกัน
Jiri Klouda

1
หลายคนบ่นเกี่ยวกับตัวแทนหุ่นเชิด แต่เมื่อคุณอยู่บนคลาวด์และคุณเปลี่ยนกลุ่มอัตโนมัติและคุณไม่ต้องการสร้างภาพของ vm ของคุณใหม่ดีที่ vm เชื่อมต่อกับเจ้านายหุ่นฉันไม่เห็นปัญหาใด ๆ มีตัวแทนเล็ก ๆ
c4f4t0r
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.