Ansible Galaxy: ทุกสิ่งที่คุณต้องรู้
เผยแพร่แล้ว: 2022-09-29Ansible เป็นเครื่องมือจัดการการกำหนดค่าโอเพ่นซอร์สยอดนิยม ในทางกลับกัน Ansible Galaxy เป็นที่เก็บบทบาท Ansible
คุณอาจมี playbooks เพียงหยิบมือเดียวในฐานะผู้ดูแลระบบมือใหม่ เมื่อทักษะการทำงานอัตโนมัติของคุณดีขึ้น และคุณคุ้นเคยกับ Ansible มากขึ้น คุณจะได้เรียนรู้แนวทางปฏิบัติที่ดีที่สุดทั้งหมด เมื่อคุณเพิ่ม playbooks ของคุณ คุณจะรู้ด้วยว่า Ansible Galaxy สำคัญแค่ไหน
Ansible Galaxy คืออะไร?
Ansible Galaxy เป็นพื้นที่เก็บข้อมูลออนไลน์แบบโอเพ่นซอร์สบนเว็บสำหรับเนื้อหา Ansible (บทบาทและคอลเล็กชันเป็นหลัก) เกือบจะเหมือนกับว่าคุณได้สร้างสิ่งใหม่ ๆ และต้องการแบ่งปันกับผู้อื่น
หากคุณมีปัญหาใดๆ กับระบบอัตโนมัติของ Ansible หรือต้องการโซลูชันที่จัดเตรียมไว้ล่วงหน้าจากผู้อื่นเพื่อเริ่มต้นโครงการระบบอัตโนมัติของคุณ Ansible Galaxy สามารถช่วยคุณได้ ตัวอย่างเช่น คุณอาจมีบทบาท คอลเล็กชัน โมดูล หรือปลั๊กอิน สมาชิกในชุมชนหลายคนได้อัปโหลดคอลเลกชันและบทบาท Ansible แล้ว

เพื่อให้งานต่างๆ สำเร็จ เช่น การติดตั้งบทบาทจาก Galaxy หรือ git SCM ใดๆ การสร้างหรือลบบทบาท หรือดำเนินการบางอย่างบนไซต์ Galaxy เราสามารถใช้คำสั่ง 'ansible-galaxy' คำสั่งนี้มาพร้อมกับ Ansible ล่วงหน้า คุณจึงสามารถใช้งานได้ทันทีหลังจากติดตั้ง Ansible
โครงการ Galaxy เป็นโครงการโอเพ่นซอร์สที่ช่วยให้เราสามารถโฮสต์เซิร์ฟเวอร์ Galaxy ภายในของเรา ในการใช้เซิร์ฟเวอร์ Galaxy ภายใน คุณจะต้องแก้ไขการกำหนดค่าเริ่มต้นในไฟล์ Ansible.cfg
ด้วยที่อยู่เซิร์ฟเวอร์ของเซิร์ฟเวอร์ภายใน Galaxy เพราะโดยค่าเริ่มต้น จะใช้ที่อยู่เซิร์ฟเวอร์ galaxy.ansible.com
ภาพรวม Ansible
Ansible สามารถอธิบายได้ว่าเป็นตัวคูณที่ทำให้โครงสร้างพื้นฐานทุกขนาดเป็นแบบอัตโนมัติและปรับขนาดได้ สามารถใช้เพื่อจัดการการกำหนดค่า จัดการการปรับใช้ และฟังก์ชันอื่นๆ Ansible นั้นติดตั้งง่ายมาก ผู้ดูแลระบบมือใหม่สามารถใช้ Ansible เพื่อทำให้โครงสร้างพื้นฐานเป็นอัตโนมัติได้ในเวลาเพียงไม่กี่ชั่วโมง
Ansible อัตโนมัติโดยใช้โปรโตคอล SSH กลไกการควบคุมใช้การเชื่อมต่อ SSH เพื่อสื่อสารกับโฮสต์เป้าหมาย (โดยทั่วไปคือโฮสต์ Linux) ผู้ดูแลระบบ Windows ยังคงสามารถใช้ Ansible เพื่อทำให้สภาพแวดล้อม Windows ของตนเป็นแบบอัตโนมัติด้วย WinRM แทน SSH เครื่องควบคุมยังคงต้องรัน Linux
Ansible สามารถทำงานดูแลระบบทั่วไปได้ เช่น การแพตช์ การอัปเดต การจัดการกลุ่มและผู้ใช้ การจัดเตรียม และงานการดูแลระบบอื่นๆ
Ansible เป็นเครื่องมือจัดการการตั้งค่าคอนฟิก การประสาน และการปรับใช้ที่ได้รับความนิยมมากที่สุดในปัจจุบัน ความเรียบง่ายเป็นหนึ่งในจุดแข็งหลัก มันเรียบง่าย ทรงพลัง แต่ไร้เอเย่นต์ ซึ่งหมายความว่าระบบดูแลระบบใหม่หรือระดับเริ่มต้นสามารถทำให้โครงสร้างพื้นฐานเป็นอัตโนมัติได้ในเวลาเพียงไม่กี่ชั่วโมง Ansible ช่วยให้ปรับขนาด มีประสิทธิภาพ และทำงานข้ามฟังก์ชันได้อย่างรวดเร็ว
ทำงานบน Ansible Galaxy
ต่อไป มาเปิดเทอร์มินัลแล้วรันคำสั่งสองสามคำสั่งโดยใช้ Ansible Galaxy แต่ก่อนหน้านั้น คุณต้องติดตั้ง Ansible ล่าสุดบนระบบของคุณ
เมื่อคุณติดตั้ง Ansible ล่าสุดในระบบของคุณ เพียงป้อน ansible-galaxy ในเทอร์มินัล แล้วคุณจะได้รับตัวเลือกทั้งหมดที่มีใน Galaxy
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy

ประการแรก คุณสามารถเริ่มต้นด้วยคำสั่ง init และสร้างบทบาท ที่นี่ฉันกำลังสร้างบทบาท 'การทดสอบ' ใช้คำสั่ง ls เพื่อตรวจสอบว่าสร้างบทบาทสำเร็จหรือไม่ คำสั่ง init ยังสร้างไฟล์ที่จำเป็นภายในไดเร็กทอรีบทบาทการทดสอบ
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing

กาแล็กซี Ansible เป็นชุมชนขนาดใหญ่และแอคทีฟซึ่งมีการสร้างบทบาทมากมายที่คุณสามารถใช้ได้โดยตรง
ด้านล่างนี้คือหน้าที่จะเปิดขึ้นเมื่อคุณเรียกดู 'galaxy.ansible.com' หรือเราสามารถพูดได้ว่านี่คือหน้าแรกของเว็บไซต์ 'Ansible Galaxy' เราสามารถคลิกหมวดหมู่ยอดนิยมใดก็ได้จากหน้าแรกหรือคลิกที่ปุ่ม 'ค้นหา' เพื่อรับตัวกรองเพิ่มเติมเพื่อใช้การค้นหาแบบละเอียด

ตัวอย่างเช่น หากคุณกำลังมองหาบทบาทเซิร์ฟเวอร์ MySQL เพียงแค่ค้นหาและคลิกที่ปุ่มตัวกรอง คุณสามารถเห็น geerlingguy มีการดาวน์โหลดสูงสุด เราสามารถลองติดตั้งบทบาทนี้ คลิกที่ geerlingguy MySQL

จากนั้น คุณจะได้รับคำสั่งการติดตั้งเพื่อติดตั้งบทบาทนี้โดยใช้ ansible-galaxy

เรียกใช้คำสั่งที่กล่าวถึงในภาพรวมด้านบนเพื่อดาวน์โหลดและติดตั้งบทบาทเซิร์ฟเวอร์ MySQL บนเครื่องของคุณ
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy ติดตั้ง geerlingguy.mysql

หากคุณทราบบทบาทที่จะค้นหาโดยผู้เขียนคนใดโดยเฉพาะ คุณสามารถใช้คำสั่งค้นหาดังที่แสดงด้านล่าง

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch -- ผู้เขียน geerlingguy

คำสั่ง Ansible Galaxy ทั่วไป
คำสั่ง ansible-galaxy จัดการบทบาทและคอลเลกชั่นโดยใช้ galaxy.ansible.com ด้านล่างนี้คือคำสั่ง ansible-galaxy
ที่เป็นประโยชน์มากซึ่งทุกๆ sysadmin ใช้เป็นครั้งคราว:
-
ansible-galaxy list:
คำสั่ง galaxy นี้แสดงรายการของบทบาทที่ติดตั้งทั้งหมด พร้อมหมายเลขเวอร์ชัน -
ansible-galaxy remove:
คำสั่งกาแล็กซี่นี้จะลบบทบาทที่ติดตั้งบนระบบ -
ansible-galaxy info:
คำสั่ง galaxy นี้จะให้ข้อมูลโดยละเอียดเกี่ยวกับ Ansible Galaxy -
ansible-galaxy init
: คำสั่ง galaxy นี้สามารถใช้สร้างเทมเพลตบทบาทที่เหมาะสมสำหรับส่งไปยัง Ansible Galaxy -
ansible-galaxy import
: คำสั่งกาแล็กซี่นี้ต้องมีการเข้าสู่ระบบเพื่อนำเข้าบทบาทจากเว็บไซต์กาแล็กซี่อย่างเป็นทางการ
คำสั่งข้างต้น (init, นำเข้า, ติดตั้ง, ลบ) สามารถใช้กับคำสั่ง ansible-galaxy
collection เพื่อจัดการคอลเลกชันโดยใช้ Ansible galaxy
มาพูดถึงบทบาทและคอลเลกชั่นใน Ansible Galaxy กัน
สร้างบทบาทด้วย Ansible Galaxy
Ansible Galaxy นั้นเป็นพื้นที่เก็บข้อมูลสาธารณะขนาดใหญ่สำหรับบทบาท Ansible บทบาทมาพร้อมกับ READMEs
ที่อธิบายการใช้งานและตัวแปร กาแล็กซี่มีบทบาทมากมายที่พัฒนาและเติบโตอย่างต่อเนื่อง
Galaxy สามารถเพิ่มแหล่งที่มาของบทบาทเช่น GitHub โดยใช้ git Ansible Galaxy ช่วยให้เราสร้างบทบาท Ansible โดยใช้คำสั่ง ansible-galaxy
Ansible-galaxy init สามารถใช้เพื่อเริ่มต้นบทบาทกาแล็กซี่ใหม่ หรือคุณสามารถใช้คำสั่ง ansible-galaxy install <name of role>
เพื่อติดตั้งบทบาท
ก่อนที่คุณจะใช้ใน playbooks คุณต้องดาวน์โหลดบทบาทก่อน เมื่อวางไว้ในไดเร็กทอรีเริ่มต้น /etc/ansible/roles
คุณจะพบตัวอย่างบทบาทได้
โครงสร้างบทบาท Ansible และความสำคัญของมัน
ด้านล่างนี้คือไฟล์และไดเร็กทอรีที่สร้างขึ้นเมื่อติดตั้งบทบาท:
- README.md เป็นไฟล์ Readme ที่อธิบายบทบาท ไฟล์ readme มีรายละเอียดทั้งหมดเกี่ยวกับพารามิเตอร์อินพุตและตัวอย่าง
yml
- งาน – งานทั้งหมดสามารถเกณฑ์โดยบทบาทที่งาน จุดเริ่มต้นสำหรับบทบาทคือ Main.yml นี่คือจุดเริ่มต้นของการดำเนินการ ไฟล์นี้สามารถมีไฟล์อื่นๆ
- ตัวจัดการ – หมวดหมู่นี้รวมถึงตัวจัดการที่อาจใช้ในบทบาทนี้หรือบทบาทอื่นๆ
- ค่าเริ่มต้น – ตัวแปรเริ่มต้นสำหรับบทบาท
- vars – ตัวแปรที่มีความสำคัญมากกว่าค่าเริ่มต้นสำหรับบทบาท
- ไฟล์ – ไฟล์เหล่านี้สามารถใช้งานได้โดยใช้บทบาท
- เทมเพลต – ส่วนนี้มีเทมเพลตที่สามารถใช้ผ่านบทบาทได้
- meta – สามารถใช้ Metadata เพื่อกำหนดบทบาทใน meta ไฟล์นี้ควรรวมการขึ้นต่อกันของบทบาทด้วย
- การทดสอบ – การทดสอบ CI ที่จะดำเนินการ
- ไลบรารี – การฝังโมดูลหรือปลั๊กอินในบทบาท ไม่ได้สร้างโดยคำสั่ง init คุณยังสามารถสร้างโมดูลที่กำหนดเองใน Python ในโฟลเดอร์นี้ แล้วนำไปใช้ในงานของคุณ
สร้างคอลเลกชั่นด้วย Ansible Galaxy
Ansible Galaxy เป็นเครื่องมือที่ดีที่สุดในการจัดการบทบาทและถูกใช้มาหลายปีแล้ว อย่างไรก็ตาม คุณจะเห็นคุณลักษณะหรือการเปลี่ยนแปลงใหม่ๆ ใน Ansible Galaxy Ansible เวอร์ชัน 2.2.8 ตอนนี้มีคุณลักษณะคอลเลกชัน
เนื้อหา Ansible สามารถแจกจ่ายได้โดยใช้คอลเล็กชัน ใช้สำหรับบรรจุภัณฑ์และแจกจ่าย playbook และบทบาท โมดูล ตลอดจนปลั๊กอิน
โครงสร้างต่อไปนี้เป็นพื้นฐานของคอลเลกชัน:
ของสะสม/ ├── เอกสาร/ ├── galaxy.yml ├── ปลั๊กอิน/ │ ├── โมดูล/ │ │ └── module1.py │ ├── รายการสิ่งของ/ │ └── .../ ├── README.md ├── บทบาท/ │ ├── บทบาท1/ │ ├── บทบาท2/ │ └── .../ ├── หนังสือ/ │ ├── ไฟล์/ │ ├── วาร์ส/ │ ├── แม่แบบ/ │ └── งาน/ └── แบบทดสอบ/
การสร้างคอลเลกชันโครงกระดูก
ในการติดตั้งคอลเลกชันบนคอมพิวเตอร์ของคุณ คุณสามารถใช้คำสั่งการติดตั้งคอลเลกชัน ansible-galaxy
โดยเฉพาะอย่างยิ่ง คำสั่งย่อยบางคำสั่งสามารถใช้กับดาราจักร ansible ได้เช่นกัน
-
init
: สร้างโครงสร้างคอลเลกชันพื้นฐานตามเทมเพลตเริ่มต้นของตาม Ansible หรือของคุณเอง -
build
: สร้างสิ่งประดิษฐ์คอลเลกชันที่สามารถอัปโหลดไปยัง Galaxy หรือที่เก็บของคุณเองได้ -
publish
: Galaxy เผยแพร่สิ่งประดิษฐ์ของคอลเลกชัน -
install
: ติดตั้งหนึ่งคอลเลกชันขึ้นไป
บทสรุป
กาแล็กซี่ Ansible เป็นวิธีที่ยอดเยี่ยมในการจัดระเบียบและคิดเกี่ยวกับหนังสือบทบาทของคุณที่กำลังเติบโต Ansible Galaxy มีผู้เขียนชุมชนประมาณ 39,000 คน บทบาท 30K และคอลเลกชั่น 1,656 คอลเลกชั่น ที่สามารถใช้เริ่มต้นโครงการระบบอัตโนมัติของเราได้อย่างรวดเร็ว คู่มือนักพัฒนาและคู่มือผู้ให้ข้อมูลจะอธิบายวิธีการสนับสนุนโค้ด Ansible Galaxy ที่มีอยู่ ซึ่งเป็นโครงการโอเพนซอร์ซ
คุณอาจสนใจงาน Sysadmin ที่คุณสามารถทำให้เป็นอัตโนมัติด้วย Ansible