ค้นหาเว็บไซต์

วิธีสร้างและดาวน์โหลดบทบาทบน 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 วิธีนี้จะช่วยประหยัดเวลาของผู้ใช้ได้มากในการพยายามเขียนโค้ดที่ซ้ำซ้อนจำนวนมาก และใช้เวลามากเกินไปซึ่งอาจนำไปใช้ในงานการดูแลระบบอื่นๆ และนั่นคือทั้งหมดสำหรับคำแนะนำนี้