Puppet Tutorial - One Stop Solution สำหรับการจัดการการกำหนดค่า



Puppet Tutorial เป็นบล็อกที่สองของซีรี่ส์บล็อกหุ่น มันพูดถึงสถาปัตยกรรม Puppet ส่วนประกอบและตัวอย่างในการปรับใช้ mysql & php โดยใช้ Puppet

สอนหุ่นกระบอก

Puppet Tutorial เป็นบล็อกที่สองของซีรี่ส์บล็อกหุ่น ฉันหวังว่าคุณจะได้อ่านบล็อกก่อนหน้าของฉันเกี่ยวกับ“ หุ่นคืออะไร ” ซึ่งอธิบายถึงการจัดการการกำหนดค่าและเหตุใดจึงมีความสำคัญด้วยความช่วยเหลือของกรณีการใช้งาน

ในการสอนหุ่นกระบอกนี้จะกล่าวถึงหัวข้อต่อไปนี้:





Configuration Management คืออะไร?

ในไฟล์ บล็อกก่อนหน้า , ฉันได้ให้ข้อมูลเบื้องต้นเกี่ยวกับการจัดการการกำหนดค่าและความท้าทายใดที่ช่วยให้เราเอาชนะได้ ในบทช่วยสอนเกี่ยวกับหุ่นนี้ฉันจะอธิบายคุณเกี่ยวกับกิจกรรมที่พึ่งพาซึ่งกันและกันของการจัดการการกำหนดค่าแต่ก่อนหน้านั้นขอให้เราเข้าใจว่าอะไรคืออะไร รายการการกำหนดค่า (CI). รายการคอนฟิกูเรชันคือส่วนประกอบบริการองค์ประกอบโครงสร้างพื้นฐานหรือรายการอื่น ๆ ที่จำเป็นต้องได้รับการจัดการเพื่อให้แน่ใจว่าการส่งมอบบริการประสบความสำเร็จ ตัวอย่างของ CI ได้แก่ เอกสารข้อกำหนดซอฟต์แวร์แบบจำลองและแผนแต่ละรายการ



Configuration Management ประกอบด้วยองค์ประกอบต่อไปนี้:

  • การระบุการกำหนดค่า
  • การบริหารการเปลี่ยนแปลง
  • การกำหนดค่าสถานะการบัญชี
  • การตรวจสอบการกำหนดค่า

แผนภาพด้านล่างอธิบายส่วนประกอบเหล่านี้:

ส่วนประกอบการจัดการการกำหนดค่า - บทแนะนำเกี่ยวกับหุ่น - Edureka



การระบุการกำหนดค่า: เป็นกระบวนการของ:

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

การบริหารการเปลี่ยนแปลง: เป็นแนวทางที่เป็นระบบในการรับมือกับการเปลี่ยนแปลงทั้งจากมุมมองขององค์กรและตัวบุคคล

การกำหนดค่าสถานะการบัญชี: มัน รวมถึงกระบวนการบันทึกและรายงานคำอธิบายรายการคอนฟิกูเรชัน (เช่นฮาร์ดแวร์ซอฟต์แวร์เฟิร์มแวร์ ฯลฯ ) และการแยกออกทั้งหมดจากพื้นฐานระหว่างการออกแบบและการผลิต ในกรณีที่มีปัญหาที่น่าสงสัยการตรวจสอบการกำหนดค่าพื้นฐานและการปรับเปลี่ยนที่ได้รับอนุมัติสามารถกำหนดได้อย่างรวดเร็ว

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

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

ตอนนี้เป็นเวลาที่ถูกต้องในการทำความเข้าใจสถาปัตยกรรมหุ่นกระบอก

การสอนหุ่นกระบอก - สถาปัตยกรรมของ หุ่น

Puppet ใช้สถาปัตยกรรม Master-Slave แผนภาพด้านล่างแสดงให้เห็นเหมือนกัน:

วิธีสร้างแพ็คเกจใน java

ฟังก์ชันต่อไปนี้ดำเนินการในภาพด้านบน:

  • ตัวแทนหุ่นกระบอกส่งข้อมูลไปยังปรมาจารย์หุ่นกระบอก ข้อเท็จจริงเป็นพื้นคู่ข้อมูลคีย์ / ค่าที่แสดงถึงลักษณะบางอย่างของสถานะ Slave เช่นที่อยู่ IP เวลาทำงานระบบปฏิบัติการหรือว่าเป็นเครื่องเสมือน ฉันจะอธิบายข้อเท็จจริงโดยละเอียดในภายหลังในบล็อก
  • Puppet Master ใช้ข้อเท็จจริงในการรวบรวมแคตตาล็อกที่กำหนดวิธีการกำหนดค่า Slave แคตตาล็อกเป็นเอกสารที่อธิบายสถานะที่ต้องการสำหรับทรัพยากรแต่ละรายการที่ Puppet Master จัดการบน Slave ฉันจะอธิบายรายละเอียดแคตตาล็อกและแหล่งข้อมูลในภายหลัง
  • Puppet Slave รายงานกลับไปยัง Master ซึ่งระบุว่าการกำหนดค่าเสร็จสมบูรณ์ซึ่งจะปรากฏในแดชบอร์ดของ Puppet

ดูวิดีโอแนะนำหุ่นกระบอกนี้เพื่อความเข้าใจอย่างลึกซึ้งเกี่ยวกับหุ่นกระบอก

สอนหุ่นสำหรับมือใหม่ | การฝึก DevOps | Edureka

การสอนหุ่นกระบอก - ปรมาจารย์หุ่นและการสื่อสารของทาส

Puppet Master และ Slave สื่อสารกันผ่านช่องเข้ารหัสที่ปลอดภัยด้วยความช่วยเหลือของ SSL แผนภาพด้านล่างแสดงให้เห็นเหมือนกัน:

ดังที่คุณเห็นจากภาพด้านบน:

  • Puppet Slave ขอใบรับรอง Puppet Master
  • หลังจากได้รับใบรับรอง Puppet Master แล้ว Master จะขอใบรับรอง Slave
  • เมื่อ Master ลงนามในใบรับรอง Slave แล้ว Slave จะร้องขอการกำหนดค่า / ข้อมูล
  • ในที่สุด Puppet Master จะส่งการกำหนดค่าไปยัง Puppet Slave

ตอนนี้ให้เรามาดูส่วนประกอบต่างๆของหุ่นกระบอก

สอนหุ่น - ส่วนประกอบของ หุ่น

สำแดง: Slave ทุกตัวมีรายละเอียดการกำหนดค่าใน Puppet Master ซึ่งเขียนด้วยภาษา Puppet ดั้งเดิม รายละเอียดเหล่านี้เขียนด้วยภาษาที่ Puppet สามารถเข้าใจได้และเรียกว่า Manifests ประกอบด้วยรหัส Puppet และชื่อไฟล์ใช้นามสกุล .pp ส่วนขยาย. เหล่านี้เป็นโปรแกรมหุ่นกระบอกโดยทั่วไป
ตัวอย่างเช่นคุณสามารถเขียน Manifest ใน Puppet Master ที่สร้างไฟล์และติดตั้งเซิร์ฟเวอร์ Apache บน Puppet Slaves ทั้งหมดที่เชื่อมต่อกับ Puppet Master

โมดูล: Puppet Module คือชุดของ Manifests และข้อมูล (เช่นข้อเท็จจริงไฟล์และเทมเพลต) และมีโครงสร้างไดเร็กทอรีเฉพาะ โมดูลมีประโยชน์ในการจัดระเบียบรหัสหุ่นของคุณเนื่องจากช่วยให้คุณสามารถแยกรหัสของคุณออกเป็นหลายรายการได้ โมดูลคือชุดรหัสและข้อมูลที่มีอยู่ในตัว

ทรัพยากร: ทรัพยากรเป็นหน่วยพื้นฐานสำหรับการกำหนดค่าระบบแบบจำลอง ทรัพยากรแต่ละรายการอธิบายลักษณะบางอย่างของระบบเช่นบริการหรือแพ็คเกจเฉพาะ

ปัจจัย: Facter รวบรวมข้อมูลพื้นฐาน (ข้อเท็จจริง) เกี่ยวกับ Puppet Slave เช่นรายละเอียดฮาร์ดแวร์การตั้งค่าเครือข่ายประเภทและเวอร์ชันของระบบปฏิบัติการที่อยู่ IP ที่อยู่ MAC คีย์ SSH และอื่น ๆ จากนั้นข้อเท็จจริงเหล่านี้จะปรากฏใน Manifests ของ Puppet Master เป็นตัวแปร

Mcollective: เป็นกรอบที่ช่วยให้สามารถดำเนินการหลาย ๆ งานควบคู่กันไปบน Slaves หลาย ๆ ตัวได้ มันทำหน้าที่ต่างๆเช่น:

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

แคตตาล็อก: แค็ตตาล็อกอธิบายสถานะที่ต้องการของทรัพยากรที่มีการจัดการแต่ละรายการบน Slave เป็นการรวบรวมทรัพยากรทั้งหมดที่ Puppet Master นำไปใช้กับ Slave ที่กำหนดรวมถึงความสัมพันธ์ระหว่างทรัพยากรเหล่านั้นแค็ตตาล็อกรวบรวมโดย Puppet Master จาก Manifests และข้อมูลที่ Slave ให้ (เช่นข้อเท็จจริงใบรับรองและสภาพแวดล้อมหากมีให้) รวมถึงข้อมูลภายนอกที่เป็นทางเลือก (เช่นข้อมูลจากตัวจำแนก Slave ภายนอกทรัพยากรที่ส่งออก และฟังก์ชั่น) จากนั้นนายท่านจะทำหน้าที่รวบรวมแคตตาล็อกให้กับทาสเมื่อได้รับการร้องขอ

ตอนนี้ในบทช่วยสอนเรื่องหุ่นนี้ส่วนต่อไปของฉันจะเน้นไปที่ Hands-On

บทแนะนำเกี่ยวกับหุ่น - Hands-On

ฉันจะแสดงวิธีปรับใช้ MySQL และ PHP จาก Puppet Master ไปยัง Puppet Slave ฉันใช้ Slave เพียงตัวเดียวเพื่อจุดประสงค์ในการสาธิตซึ่งอาจมี Slaves หลายร้อยตัวที่เชื่อมต่อกับ Master หนึ่งคน ในการปรับใช้ PHP และ MySQL ฉันจะใช้โมดูลที่กำหนดไว้ล่วงหน้าที่ forge.puppet.com คุณสามารถสร้างโมดูลของคุณเองได้เช่นกัน

ความแตกต่างระหว่างการโอเวอร์โหลดและการแทนที่ใน c ++

ขั้นตอนที่ 1: ใน Puppet Master ให้ติดตั้งโมดูล MySQL และ PHP

ดำเนินการนี้:

1) โมดูลหุ่นติดตั้ง Puppetlabs-mysql –version 3.10.0

โมดูล MySQL นี้ติดตั้งกำหนดค่าและจัดการบริการ MySQL โมดูลนี้จัดการทั้งการติดตั้งและการกำหนดค่าของ MySQL ตลอดจนการขยาย Puppet เพื่อให้สามารถจัดการทรัพยากร MySQL เช่นฐานข้อมูลผู้ใช้และการให้สิทธิ์

2) โมดูลหุ่นติดตั้ง mayflower-php -version 4.0.0-beta1

โมดูลนี้ใช้สำหรับจัดการ PHP โดยเฉพาะ php-fpm PHP-FPM (FastCGI Process Manager) เป็นทางเลือกในการใช้งาน PHP FastCGI พร้อมคุณสมบัติเพิ่มเติมบางอย่างที่มีประโยชน์สำหรับไซต์ทุกขนาดโดยเฉพาะไซต์ที่ยุ่งกว่า

ขั้นตอนที่ 2: ใน Puppet Manifests ประกอบด้วยเซิร์ฟเวอร์ MySQL และ PHP

ดำเนินการนี้: vi /etc/puppet/manifests/site.pp

คุณสามารถใช้โปรแกรมแก้ไขอื่น ๆ เช่น vim, gedit เป็นต้นในไฟล์ site.pp นี้ให้เพิ่มสิ่งต่อไปนี้:

รวม ':: mysql :: เซิร์ฟเวอร์' รวม ':: php'

บันทึกและออก

ขั้นตอนที่ 3: Puppet Slaves จะดึงโครงร่างจาก Master เป็นระยะ ๆ (หลังจากทุกๆ 30 นาที) จะประเมินรายการหลักและใช้โมดูลที่ระบุการตั้งค่า MySQL และ PHP หากคุณต้องการทดลองใช้ทันทีคุณต้องเรียกใช้คำสั่งต่อไปนี้ในทุกโหนด Slave:

ดำเนินการนี้: ตัวแทนหุ่น -t

ดังนั้น MySQL และ PHP จึงติดตั้งบนโหนด Slave ได้สำเร็จ

ขั้นตอนที่ 4: ในการตรวจสอบเวอร์ชันของ MySQL และ PHP ที่ติดตั้ง:

ดำเนินการนี้:

1) mysql -v

2) php - เวอร์ชัน

ยินดีด้วย! MySQl และ PHP พร้อมใช้งานใน Puppet Slave ของคุณ ที่นี่ฉันแสดงให้คุณเห็นเพียงทาสคนเดียว แต่ลองนึกดูว่ามีทาสหลายร้อยคนไหม ในสถานการณ์นั้นงานของคุณจะกลายเป็นเรื่องง่ายเพียงระบุการกำหนดค่าใน Puppet Master และ Puppet Slaves จะประเมินรายการหลักโดยอัตโนมัติและใช้โมดูลที่ระบุการตั้งค่า MySQL และ PHP

หากคุณพบสิ่งนี้ สอนหุ่นกระบอก เกี่ยวข้อง ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka DevOps Certification ช่วยให้ผู้เรียนมีความเชี่ยวชาญในกระบวนการและเครื่องมือ DevOps ต่างๆเช่น Puppet, Jenkins, Nagios และ GIT สำหรับการทำหลายขั้นตอนใน SDLC โดยอัตโนมัติ