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

ทำความเข้าใจองค์ประกอบหลักของ Ansible - ตอนที่ 1


ผู้เชี่ยวชาญด้านการรับรอง Red Hat ในการสอบ Ansible Automation (EX407) เป็นโปรแกรมการรับรองใหม่โดย Red Hat ที่ทดสอบทักษะของคุณในการใช้ Ansible เพื่อทำให้เป็นอัตโนมัติ การกำหนดค่าระบบและแอปพลิเคชัน

ซีรีส์นี้จะมีชื่อว่า “ผู้เชี่ยวชาญที่ได้รับการรับรองจาก Red Hat ในการสอบ Ansible Automation (EX407)” และครอบคลุมวัตถุประสงค์ของการสอบต่อไปนี้โดยอิงตาม Red Hat Enterprise Linux 7.5 และ Ansible 2.7 ซึ่งเราจะกล่าวถึงในซีรี่ส์ Ansible นี้:

หากต้องการดูค่าธรรมเนียมและลงทะเบียนสอบในประเทศของคุณ โปรดดูหน้าการสอบ Ansible Automation

ใน ส่วนที่ 1 ของชุด Ansible นี้ เราจะพูดถึงภาพรวมเบื้องต้นขององค์ประกอบหลักใน Ansible

ทำความเข้าใจองค์ประกอบหลักของ Ansible

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

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

แน่นอนว่ายังมีทางเลือกอื่นนอกเหนือจาก Ansible เช่น Puppet, Chef และ Salt อย่างไรก็ตาม Ansible เป็นที่ต้องการเป็นส่วนใหญ่ เนื่องจากใช้งานง่ายและเรียนรู้ได้ง่าย

เหตุใดจึงเป็นเรื่องง่ายที่จะเรียนรู้ที่คุณอาจถาม? เนื่องจาก Ansible ใช้ YAML (Yet Another Markup Language) ในงานการกำหนดค่าและการทำงานอัตโนมัติ ซึ่งมนุษย์สามารถอ่านได้และปฏิบัติตามได้ง่าย YAML ใช้โปรโตคอล SSH เพื่อสื่อสารกับเซิร์ฟเวอร์ระยะไกล ซึ่งแตกต่างจากแพลตฟอร์มอัตโนมัติอื่นๆ ที่กำหนดให้คุณต้องติดตั้งตัวแทนบนโหนดระยะไกลเพื่อสื่อสารกับเซิร์ฟเวอร์เหล่านั้น

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

รายการสิ่งของ

พื้นที่โฆษณาคือไฟล์ข้อความที่มีรายการเซิร์ฟเวอร์หรือโหนดที่คุณกำลังจัดการและกำหนดค่า โดยปกติแล้ว เซิร์ฟเวอร์จะแสดงรายการตามชื่อโฮสต์หรือที่อยู่ IP

ไฟล์สินค้าคงคลังสามารถมีระบบระยะไกลที่กำหนดโดยที่อยู่ IP ดังที่แสดง:

10.200.50.50
10.200.50.51
10.200.50.52

หรืออาจแสดงรายการตามกลุ่มก็ได้ ในตัวอย่างด้านล่าง เรามีเซิร์ฟเวอร์ที่อยู่ใน 2 กลุ่ม ได้แก่ เว็บเซิร์ฟเวอร์ และ ฐานข้อมูล วิธีนี้จึงสามารถอ้างอิงตามชื่อกลุ่ม ไม่ใช่ที่อยู่ IP ซึ่งช่วยลดความยุ่งยากในขั้นตอนการทำงานอีกด้วย

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

คุณสามารถมีหลายกลุ่มที่มีหลายเซิร์ฟเวอร์ได้ หากคุณอยู่ในสภาพแวดล้อมการใช้งานจริงขนาดใหญ่

เพลย์บุ๊ก

เพลย์บุ๊กคือชุดของสคริปต์การจัดการการกำหนดค่าที่กำหนดวิธีดำเนินการงานบนโฮสต์ระยะไกลหรือกลุ่มของเครื่องโฮสต์ สคริปต์หรือคำแนะนำเขียนในรูปแบบ YAML

ตัวอย่างเช่น คุณสามารถมีไฟล์ playbook เพื่อติดตั้งเว็บเซิร์ฟเวอร์ Apache บน CentOS 7 และเรียกมันว่า httpd.yml

หากต้องการสร้าง เพลย์บุ๊ก ให้รันคำสั่ง

touch playbook_name.yml

ตัวอย่างเช่น หากต้องการสร้าง Playbook ชื่อ httpd ให้เรียกใช้คำสั่ง

touch httpd.yml

ไฟล์ YAML ขึ้นต้นด้วย เครื่องหมายยัติภังค์ 3 ตัว ตามที่แสดง ภายในไฟล์ ให้เพิ่มคำแนะนำต่อไปนี้

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

เพลย์บุ๊กด้านบนจะติดตั้งเว็บเซิร์ฟเวอร์ Apache บนระบบระยะไกลซึ่งกำหนดเป็น เว็บเซิร์ฟเวอร์ ในไฟล์สินค้าคงคลัง หลังจากการติดตั้งเว็บเซิร์ฟเวอร์ Ansible จะตรวจสอบในภายหลังว่าเว็บเซิร์ฟเวอร์ Apache เริ่มต้นและทำงานอยู่หรือไม่

โมดูล

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

รูปแบบพื้นฐานของโมดูลคือ คีย์: ค่า

- name: Install apache packages 
    yum:   name=httpd  state=present

ในข้อมูลโค้ด YAML ข้างต้น -name และ yum เป็นโมดูล

การเล่น

การเล่นที่ตอบได้คือสคริปต์หรือคำสั่งที่กำหนดงานที่จะดำเนินการบนเซิร์ฟเวอร์ การรวบรวมบทละครเป็นคู่มือการเล่น กล่าวอีกนัยหนึ่ง Playbook คือชุดของบทละครหลายเรื่อง ซึ่งแต่ละบทจะกำหนดงานที่ต้องทำบนเซิร์ฟเวอร์อย่างชัดเจน การเล่นมีอยู่ในรูปแบบ YAML

ตัวแปร

หากคุณมีพื้นฐานด้านการเขียนโปรแกรม เป็นไปได้ว่าคุณเคยใช้ตัวแปรมาก่อน โดยพื้นฐานแล้วตัวแปรจะแสดงถึงค่า ตัวแปรสามารถประกอบด้วยตัวอักษร ตัวเลข และขีดล่าง แต่ต้องขึ้นต้นด้วยตัวอักษรเสมอ

ตัวแปรจะใช้เมื่อคำสั่งแตกต่างกันไปในแต่ละระบบ โดยเฉพาะอย่างยิ่งในระหว่างการกำหนดค่าหรือบริการและคุณสมบัติต่างๆ

ตัวแปรมี 3 ประเภทหลัก:

  • ตัวแปรเพลย์บุ๊ก
  • ตัวแปรสินค้าคงคลัง
  • ตัวแปรพิเศษ

ใน Ansible ตัวแปรจะถูกกำหนดก่อนโดยใช้ vars k จากนั้นตามด้วยชื่อตัวแปรและค่า

ไวยากรณ์เป็นไปตามที่แสดง:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

พิจารณารหัสด้านล่าง

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

ในตัวอย่างด้านบน ตัวแปรที่นี่คือ web_directory และสั่งให้ ansible สร้างไดเร็กทอรีในเส้นทาง /var/www/html/

ข้อเท็จจริง

ข้อเท็จจริง คือคุณสมบัติของระบบที่ Ansible รวบรวมไว้เมื่อเรียกใช้ Playbook บนระบบโฮสต์ คุณสมบัติประกอบด้วยชื่อโฮสต์ ตระกูล OS ประเภท CPU และคอร์ CPU ที่จะกล่าวถึงบางส่วน

หากต้องการดูจำนวนข้อเท็จจริงที่มีอยู่ให้ใช้งานให้ออกคำสั่ง

ansible localhost -m setup

อย่างที่คุณเห็น ข้อเท็จจริง จำนวนมากถูกแสดงโดยค่าเริ่มต้น คุณสามารถจำกัดผลลัพธ์ให้แคบลงได้โดยใช้พารามิเตอร์ตัวกรองดังที่แสดง

ansible localhost -m setup -a "filter=*ipv4"

ไฟล์การกำหนดค่า

ใน Ansible ไฟล์การกำหนดค่าคือไฟล์ที่มีการตั้งค่าพารามิเตอร์ที่แตกต่างกันซึ่งกำหนดวิธีการทำงานของ Ansible ไฟล์การกำหนดค่าเริ่มต้นคือไฟล์ ansible.cfg ที่อยู่ในไดเร็กทอรี /etc/ansible/

คุณสามารถดูไฟล์การกำหนดค่าได้โดยการเรียกใช้:

cat /etc/ansible/ansible.cfg

ดังที่คุณเห็น มีพารามิเตอร์หลายตัวรวมอยู่ด้วย เช่น เส้นทางไฟล์ สินค้าคงคลัง และ ไลบรารี ผู้ใช้ sudo ตัวกรองปลั๊กอิน โมดูล ฯลฯ พารามิเตอร์เหล่านี้สามารถปรับได้ง่าย ๆ โดยการแสดงความคิดเห็น ออกและแก้ไขค่าในนั้น

นอกจากนี้คุณยังสามารถมีไฟล์การกำหนดค่าหลายไฟล์ที่ทำงานกับ Ansible นอกเหนือจากไฟล์กำหนดค่าเริ่มต้นของคุณ

สรุป

เมื่อดูองค์ประกอบหลักใน Ansible แล้ว เราหวังว่าคุณจะอยู่ในฐานะที่จะเก็บองค์ประกอบเหล่านั้นไว้เพียงปลายนิ้วสัมผัส และเลือกองค์ประกอบเหล่านั้นในขณะที่เราก้าวไปข้างหน้า เข้าร่วมกับเราในหัวข้อถัดไปของคุณ