วิธีสร้างและดาวน์โหลดบทบาทบน Ansible Galaxy และใช้งาน - ตอนที่ 9
ในตอนที่ 9 ของ Ansible Series คุณจะได้เรียนรู้วิธีสร้างและดาวน์โหลดบทบาทบน Ansible Galaxy และใช้งานบทบาทเหล่านั้น Ansible คือการจัดการการกำหนดค่าที่เรียบง่ายแต่มีประสิทธิภาพและเครื่องมือปรับใช้อัตโนมัติที่ทำให้งานที่ซับซ้อนเป็นอัตโนมัติได้อย่างราบรื่นและมีประสิทธิภาพ คุณสามารถจัดการเซิร์ฟเวอร์ได้หลายร้อยหรือหลายพันเซิร์ฟเวอร์จากโหนดควบคุมเดียวโดยใช้ไฟล์ Playbook ไฟล์เดียว
อย่างไรก็ตาม การเขียน Playbooks สำหรับการจัดการบริการเดียวกันในสภาพแวดล้อมที่แตกต่างกันอาจค่อนข้างยุ่งยาก และมักจะนำไปสู่ความซ้ำซ้อนของโค้ด นอกจากนี้ ความซับซ้อนที่มากขึ้นอาจเพิ่มความยากลำบากในการจัดการอุปกรณ์ทั้งหมดได้
เข้ามามีบทบาท. ใน Ansible บทบาทจะถูกใช้เพื่อแบ่ง Playbooks ออกเป็นไฟล์ที่นำมาใช้ซ้ำได้ ซึ่งสามารถนำมาใช้กับอินสแตนซ์อื่นๆ จำนวนมากที่จำเป็นต้องดำเนินการงานที่คล้ายคลึงกัน ซึ่งช่วยลดความจำเป็นในการเขียน Playbooks ซ้ำแล้วซ้ำอีก ทั้งยังช่วยประหยัดเวลาและพลังงานได้อย่างมาก
บทบาทเป็นเพียงฟังก์ชันการทำงานของ Playbook บทบาทมาพร้อมกับสิ่งที่จะประกอบเป็นคู่มือการเล่น: งาน ไฟล์ โมดูล ตัวแปร และเทมเพลต นอกจากนี้ โปรดทราบว่าแต่ละบทบาทจะถูกจำกัดเฉพาะงานเฉพาะหรือผลลัพธ์ที่ต้องการ
การสร้างบทบาทที่เข้าใจได้
หากต้องการสร้างบทบาทใน Ansible เพียงใช้ไวยากรณ์
ansible-galaxy init role_name
ไดเร็กทอรีและไฟล์หลายรายการจะถูกสร้างขึ้นในไดเร็กทอรีการทำงานปัจจุบันของคุณ ในกรณีนี้ ฉันได้ตัดสินใจสร้างบทบาทในไดเร็กทอรี /etc/ansible/roles
มาสร้างบทบาทที่เรียกว่า apache กันดีกว่า
ansible-galaxy init apache
ใช้คำสั่ง tree เพื่อดูโครงสร้างไดเร็กทอรีของบทบาท
tree apache
อย่างที่คุณเห็น มีการสร้างไดเร็กทอรีหลายไดเร็กทอรี อย่างไรก็ตาม ไม่ใช่ไดเร็กทอรีทั้งหมดที่จะถูกนำมาใช้ใน Playbook
ตอนนี้ หากต้องการใช้บทบาทที่สร้างขึ้นใหม่ใน Playbook ให้กำหนดงานในไฟล์ main.yml ที่อยู่ในไดเร็กทอรีงานของบทบาทใหม่ของคุณ
/apache/tasks/main.yml
---
- hosts: database_servers
tasks:
- name: Install Apache2 on Ubuntu webserver
apt:
name: apache2
state: installed
หลังจากนั้นให้สร้างไฟล์ Playbook และเรียกบทบาทตามที่แสดง
---
- hosts: webservers
roles:
- apache
การติดตั้งบทบาทจาก Ansible Galaxy
บทบาทมีบทบาทสำคัญในการแบ่งปันโค้ดกับผู้ใช้รายอื่นในชุมชน Ansible โดยใช้แพลตฟอร์ม Ansible Galaxy ใน Ansible Galaxy คุณจะได้รับบทบาทหลายพันรายการในการปฏิบัติงานที่แตกต่างกัน เช่น การติดตั้งเว็บเซิร์ฟเวอร์และฐานข้อมูล เครื่องมือตรวจสอบ ฯลฯ
Ansible Galaxy คือฐานข้อมูลหรือพื้นที่เก็บข้อมูลของบทบาท Ansible ที่คุณสามารถใช้ประโยชน์ได้ใน Playbooks และช่วยปรับปรุงงานของคุณ
หากต้องการค้นหาบทบาทใน Ansible Galaxy เพียงเรียกใช้คำสั่ง
ansible-galaxy search <role>
ตัวอย่างเช่น การค้นหาบทบาทที่ชื่อว่า mysql run
ansible-galaxy search mysql
อย่างที่คุณเห็น มีบทบาทหลายร้อยบทบาทที่ตรงกับคำค้นหา mysql อย่างไรก็ตาม ไม่ใช่ทุกบทบาทที่จะทำงานได้ตามที่คุณต้องการ ดังนั้นจึงขอแนะนำให้คุณอ่านคำแนะนำโดยละเอียด
หากต้องการรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับบทบาท เพียงรันคำสั่ง Ansible:
ansible-galaxy info 5KYDEV0P5.skydevops-mysql
ในตัวอย่างของเรา เราจะติดตั้งบทบาท 5KYDEV0P5.skydevops-mysql
ansible-galaxy install 5KYDEV0P5.skydevops-mysql
บทบาทจะถูกดาวน์โหลดและแยกไปยังไดเร็กทอรีบทบาทเริ่มต้นซึ่งอยู่ที่ /etc/ansible/roles
หลังจากนั้นสามารถเรียกบทบาทใน Playbook ได้ ตัวอย่างเช่น:
---
- name: Install MySQL server
hosts: webservers
roles:
• 5KYDEV0P5.skydevops-mysql
ตอนนี้คุณสามารถเรียกใช้ Playbook Ansible ได้อย่างปลอดภัยดังที่แสดง
ansible-playbook install_mysql.yml
นอกจากนี้ คุณยังสามารถเยี่ยมชม Ansible Galaxy ผ่านทางเว็บเบราว์เซอร์ของคุณและค้นหาบทบาทในการปฏิบัติงานต่างๆ ด้วยตนเองตามที่ระบุไว้ในแดชบอร์ด
ตัวอย่างเช่น หากต้องการค้นหาบทบาทการตรวจสอบ เช่น elasticsearch ให้คลิกตัวเลือก 'การตรวจสอบ' และค้นหาบทบาทดังที่แสดง
Ansible Galaxy ทำให้ผู้ใช้สามารถติดตั้งบทบาทที่ดีที่สุดได้ง่ายขึ้นโดยแสดงรายการบทบาทที่ได้รับความนิยมและดาวน์โหลดมากที่สุด หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับบทบาทเฉพาะ เพียงคลิกที่บทบาทนั้น
ใน Playbook คุณยังสามารถระบุบทบาทได้มากกว่าหนึ่งบทบาท เป็นต้น
---
- name: Install MySQL server
hosts: webservers
roles:
• 5KYDEV0P5.skydevops-mysql
• Aaronpederson.mariadb
หากต้องการแสดงรายการบทบาทที่ติดตั้ง เพียงเรียกใช้
ansible-galaxy list
บทสรุป
บทบาท ทำให้ง่ายต่อการใช้ซ้ำและแบ่งปัน Playbooks แบบ Ansible วิธีนี้จะช่วยประหยัดเวลาของผู้ใช้ได้มากในการพยายามเขียนโค้ดที่ซ้ำซ้อนจำนวนมาก และใช้เวลามากเกินไปซึ่งอาจนำไปใช้ในงานการดูแลระบบอื่นๆ และนั่นคือทั้งหมดสำหรับคำแนะนำนี้