SaltStack - ภาพรวม
ในบทนี้เราจะเรียนรู้พื้นฐานของ SaltStack ความสามารถในการดำเนินการระยะไกลของ SaltStack ช่วยให้ผู้ดูแลระบบสามารถเรียกใช้คำสั่งบนเครื่องต่างๆควบคู่ไปกับระบบกำหนดเป้าหมายที่ยืดหยุ่นได้ การจัดการคอนฟิกูเรชัน Salt สร้างโมเดลมาสเตอร์มินเนียนเพื่อนำส่วนประกอบโครงสร้างพื้นฐานอย่างรวดเร็วง่ายดายยืดหยุ่นและปลอดภัยให้สอดคล้องกับนโยบายที่กำหนด
SaltStack คืออะไร?
Salt เป็นกรอบการทำงานอัตโนมัติที่มีประสิทธิภาพมาก สถาปัตยกรรม Salt ขึ้นอยู่กับแนวคิดในการดำเนินการคำสั่งจากระยะไกล ระบบเครือข่ายทั้งหมดได้รับการออกแบบโดยคำนึงถึงลักษณะการทำงานระยะไกล สิ่งนี้อาจง่ายพอ ๆ กับการถามไฟล์Remote Web Serverเพื่อแสดงเว็บเพจแบบคงที่หรือซับซ้อนเช่นเดียวกับการใช้เชลล์เซสชันเพื่อออกคำสั่งแบบโต้ตอบกับเซิร์ฟเวอร์ระยะไกล Salt เป็นตัวอย่างของการดำเนินการระยะไกลที่ซับซ้อนมากขึ้นประเภทหนึ่ง
Salt ถูกออกแบบมาเพื่อให้ผู้ใช้กำหนดเป้าหมายอย่างชัดเจนและออกคำสั่งไปยังเครื่องหลายเครื่องได้โดยตรง เกลือขึ้นอยู่กับความคิดของปรมาจารย์ซึ่งควบคุมอย่างน้อยหนึ่งอย่างMinions. โดยปกติคำสั่งจะออกจาก Master ไปยังกลุ่มเป้าหมายของ Minions ซึ่งจะดำเนินการตามภารกิจที่ระบุไว้ในคำสั่งแล้วส่งคืนข้อมูลที่เป็นผลลัพธ์กลับไปยัง Master การสื่อสารระหว่างเจ้านายและลูกน้องเกิดขึ้นในZeroMQ message bus.
โมดูล SaltStack สื่อสารกับระบบปฏิบัติการ minion ที่รองรับ Salt Masterทำงานบน Linux โดยค่าเริ่มต้น แต่ระบบปฏิบัติการใด ๆ ก็สามารถเป็นมินเนี่ยนได้และปัจจุบัน Windows, VMware vSphere และ BSD Unix ได้รับการสนับสนุนเป็นอย่างดี Salt Master และลูกน้องใช้กุญแจในการสื่อสาร เมื่อมินเนี่ยนเชื่อมต่อกับมาสเตอร์เป็นครั้งแรกมันจะเก็บคีย์ไว้ที่มาสเตอร์โดยอัตโนมัติ SaltStack ยังมีSalt SSHซึ่งให้การจัดการระบบ“ เอเจนต์น้อย”
ต้องการ SaltStack
SaltStack สร้างขึ้นเพื่อความเร็วและขนาด นี่คือเหตุผลที่ใช้ในการจัดการโครงสร้างพื้นฐานขนาดใหญ่ที่มีเซิร์ฟเวอร์นับหมื่นที่ LinkedIn, WikiMedia และ Google
ลองนึกภาพว่าคุณมีเซิร์ฟเวอร์หลายเครื่องและต้องการทำสิ่งต่างๆกับเซิร์ฟเวอร์เหล่านั้น คุณจะต้องลงชื่อเข้าใช้แต่ละคนและทำสิ่งเหล่านั้นทีละรายการในแต่ละรายการจากนั้นคุณอาจต้องการทำสิ่งที่ซับซ้อนเช่นการติดตั้งซอฟต์แวร์จากนั้นกำหนดค่าซอฟต์แวร์นั้นตามเกณฑ์เฉพาะบางอย่าง
สมมติว่าคุณมีเซิร์ฟเวอร์ 10 เครื่องหรืออาจถึง 100 เครื่อง ลองนึกภาพการเข้าสู่ระบบทีละเซิร์ฟเวอร์ทีละเครื่องการออกคำสั่งเดียวกันบนเครื่อง 100 เครื่องจากนั้นการแก้ไขไฟล์คอนฟิกูเรชันบนเครื่องทั้ง 100 เครื่องจะกลายเป็นงานที่น่าเบื่อมาก เพื่อเอาชนะปัญหาเหล่านั้นคุณต้องการอัปเดตเซิร์ฟเวอร์ทั้งหมดพร้อมกันเพียงพิมพ์คำสั่งเดียว SaltStack ช่วยให้คุณสามารถแก้ปัญหาดังกล่าวได้อย่างตรงจุด
คุณสมบัติของ SaltStack
SaltStack เป็นซอฟต์แวร์การจัดการการกำหนดค่าแบบโอเพนซอร์สและเครื่องมือเรียกใช้งานระยะไกล Salt เป็นเครื่องมือบรรทัดคำสั่ง ในขณะที่เขียนด้วย Python การจัดการการกำหนดค่า SaltStack เป็นภาษาที่เข้าใจง่ายและไม่ซับซ้อน แพลตฟอร์ม Salt ใช้รูปแบบการกดเพื่อดำเนินการคำสั่งผ่านโปรโตคอล SSH ระบบการกำหนดค่าเริ่มต้นคือYAML และ Jinja templates. เกลือเป็นหลักในการแข่งขันกับPuppet, Chef และ Ansible.
Salt มีคุณสมบัติมากมายเมื่อเทียบกับเครื่องมือคู่แข่งอื่น ๆ คุณลักษณะที่สำคัญบางประการเหล่านี้มีการระบุไว้ด้านล่าง
Fault tolerance- มินเนี่ยนเกลือสามารถเชื่อมต่อกับปรมาจารย์หลายคนพร้อมกันโดยกำหนดค่าพารามิเตอร์การกำหนดค่าหลักเป็นรายการ YAML ของปรมาจารย์ที่มีทั้งหมด ผู้เชี่ยวชาญทุกคนสามารถสั่งการไปยังโครงสร้างพื้นฐาน Salt
Flexible- แนวทางการจัดการทั้งหมดของ Salt มีความยืดหยุ่นมาก สามารถนำไปใช้ตามรูปแบบการจัดการระบบที่เป็นที่นิยมมากที่สุดเช่น Agent และ Server, Agent-only, Server-only หรือทั้งหมดข้างต้นในสภาพแวดล้อมเดียวกัน
Scalable Configuration Management - SaltStack ถูกออกแบบมาเพื่อจัดการกับมินเนี่ยนหมื่นตัวต่อหนึ่งมาสเตอร์
Parallel Execution model - Salt สามารถเปิดใช้คำสั่งเพื่อเรียกใช้ระบบระยะไกลในลักษณะคู่ขนาน
Python API - Salt มีอินเทอร์เฟซการเขียนโปรแกรมที่เรียบง่ายและได้รับการออกแบบให้เป็นแบบแยกส่วนและขยายได้ง่ายเพื่อให้ง่ายต่อการขึ้นรูปเพื่อการใช้งานที่หลากหลาย
Easy to Setup - Salt นั้นง่ายต่อการติดตั้งและมีสถาปัตยกรรมการดำเนินการระยะไกลเดียวที่สามารถจัดการความต้องการที่หลากหลายของเซิร์ฟเวอร์จำนวนเท่าใดก็ได้
Language Agnostic - ไฟล์การกำหนดค่าสถานะเกลือเครื่องมือสร้างเทมเพลตหรือประเภทไฟล์รองรับภาษาทุกประเภท
ประโยชน์ของ SaltStack
ด้วยความเรียบง่ายเช่นเดียวกับระบบที่มีคุณสมบัติมากมาย Salt ให้ประโยชน์มากมายและสรุปได้ดังนี้ -
Robust - Salt เป็นกรอบการจัดการการกำหนดค่าที่ทรงพลังและมีประสิทธิภาพและทำงานได้กับระบบนับหมื่น
Authentication - Salt จัดการคู่คีย์ SSH แบบง่ายสำหรับการตรวจสอบสิทธิ์
Secure - Salt จัดการข้อมูลที่ปลอดภัยโดยใช้โปรโตคอลที่เข้ารหัส
Fast - Salt เป็นบัสสื่อสารที่รวดเร็วและมีน้ำหนักเบาเพื่อเป็นรากฐานสำหรับเครื่องมือสั่งการระยะไกล
Virtual Machine Automation - ความสามารถของ Salt Virt Cloud Controller ใช้สำหรับระบบอัตโนมัติ
Infrastructure as data, not code - Salt นำเสนอการปรับใช้ที่เรียบง่ายการจัดการการกำหนดค่าแบบจำลองและกรอบการดำเนินการคำสั่ง
ข้อมูลเบื้องต้นเกี่ยวกับ ZeroMQ
Salt ขึ้นอยู่กับไฟล์ ZeroMQไลบรารีและเป็นไลบรารีเครือข่ายแบบฝังได้ มีน้ำหนักเบาและไลบรารีการส่งข้อความที่รวดเร็ว การใช้งานขั้นพื้นฐานอยู่ในC/C++ และการนำไปใช้งานในหลายภาษารวมถึง Java และ .Net สามารถใช้ได้.
ZeroMQ คือการประมวลผลข้อความแบบเพียร์เพียร์ที่ไม่มีนายหน้า ZeroMQ ช่วยให้คุณออกแบบระบบสื่อสารที่ซับซ้อนได้อย่างง่ายดาย
ZeroMQ มาพร้อมกับห้ารูปแบบพื้นฐานดังต่อไปนี้ -
Synchronous Request/Response - ใช้สำหรับส่งคำขอและรับการตอบกลับในภายหลังสำหรับแต่ละรายการที่ส่งไป
Asynchronous Request/Response- ผู้ร้องขอเริ่มต้นการสนทนาโดยส่งข้อความร้องขอและรอข้อความตอบกลับ ผู้ให้บริการกำลังรอข้อความคำร้องที่เข้ามาและตอบกลับพร้อมกับข้อความตอบกลับ
Publish/Subscribe - ใช้สำหรับการกระจายข้อมูลจากกระบวนการเดียว (เช่นผู้เผยแพร่) ไปยังผู้รับหลายคน (เช่นสมาชิก)
Push/Pull - ใช้สำหรับการกระจายข้อมูลไปยังโหนดที่เชื่อมต่อ
Exclusive Pair - ใช้สำหรับเชื่อมเพื่อนสองคนเข้าด้วยกันเป็นคู่
ZeroMQ เป็นเครื่องมือเครือข่ายที่มีความยืดหยุ่นสูงสำหรับการแลกเปลี่ยนข้อความระหว่างคลัสเตอร์ระบบคลาวด์และสภาพแวดล้อมระบบอื่น ๆ ZeroMQ คือไฟล์default transport library นำเสนอใน SaltStack