วิธีใช้สินค้าคงคลังแบบคงที่และแบบไดนามิกใน Ansible - ตอนที่ 4
ในส่วนที่ 4 ของ Ansible Series นี้ เราจะอธิบายวิธีใช้พื้นที่โฆษณาแบบคงที่และไดนามิกเพื่อกำหนดกลุ่มโฮสต์ใน Ansible
ใน Ansible โฮสต์หรือเซิร์ฟเวอร์ที่ได้รับการจัดการซึ่งควบคุมโดย โหนดควบคุม Ansible ถูกกำหนดไว้ใน ไฟล์รายการโฮสต์ ตามที่อธิบายไว้ใน โฮสต์ ไฟล์สินค้าคงคลังเป็นไฟล์ข้อความที่ประกอบด้วย ชื่อโฮสต์ หรือ ที่อยู่ IP ของโฮสต์ที่ได้รับการจัดการหรือเซิร์ฟเวอร์ระยะไกล
โฮสต์ที่มีการจัดการ สามารถระบุเป็นรายการแต่ละรายการหรือจัดหมวดหมู่ตามชื่อกลุ่มตามที่เราจะดูในภายหลัง ใน Ansible ไฟล์สินค้าคงคลังมีสองประเภท: คงที่ และ ไดนามิก
มาดูแต่ละสิ่งเหล่านี้แล้วดูว่าเราจะจัดการพวกมันได้อย่างไร ถึงตอนนี้ เราถือว่าคุณได้ติดตั้ง Ansible บนโหนดควบคุมของคุณแล้ว และกำหนดค่าการเชื่อมต่อ SSH แบบไม่ใช้รหัสผ่านให้กับโฮสต์ที่ได้รับการจัดการของคุณ
ไฟล์สินค้าคงคลังโฮสต์แบบคงที่
ใน Ansible ไฟล์สินค้าคงคลังแบบคงที่คือไฟล์ข้อความธรรมดาที่มีรายชื่อโฮสต์ที่ได้รับการจัดการที่ประกาศภายใต้กลุ่มโฮสต์โดยใช้ชื่อโฮสต์หรือที่อยู่ IP
ชื่อกลุ่มโฮสต์อยู่ในวงเล็บเหลี่ยม เช่น [ชื่อกลุ่ม]
รายการโฮสต์ที่ได้รับการจัดการจะแสดงใต้ชื่อกลุ่มในภายหลัง โดยแต่ละรายการอยู่ในบรรทัดของตัวเอง ตามที่กล่าวไว้ข้างต้น โฮสต์จะแสดงรายการโดยใช้ชื่อโฮสต์หรือที่อยู่ IP
[group name]
Host A ip_address
Host B ip_address
Host c ip_address
เพื่อวัตถุประสงค์ในการอธิบาย เราจะสร้างไฟล์สินค้าคงคลังแบบคงที่
mkdir test_lab && cd test_lab
vim hosts
[webservers]
173.82.115.165
[database_servers]
173.82.220.239
[datacenter:children]
webservers
database_servers
บันทึกไฟล์และออก
ดังที่คุณเห็นในไฟล์รายการด้านบน เราได้สร้างกลุ่มโฮสต์ 2 กลุ่ม: เว็บเซิร์ฟเวอร์ และ database_servers นอกจากนี้ เราได้สร้างกลุ่มเพิ่มเติมที่เรียกว่า datacenter ซึ่งมีกลุ่มของกลุ่มโฮสต์ที่แสดงด้วยคำต่อท้าย ': children'
ตามที่เห็นด้านบน
Ansible ยังอนุญาตให้กลุ่มโฮสต์อยู่ภายใต้ชื่อกลุ่ม ในไฟล์สินค้าคงคลังด้านบน กลุ่ม เว็บเซิร์ฟเวอร์ และ database_servers ถูกวางไว้ใต้ ศูนย์ข้อมูล
หมายเหตุ: ไม่จำเป็นต้องวางโฮสต์ที่มีการจัดการในกลุ่มโฮสต์ คุณสามารถแสดงรายการโดยใช้ชื่อโฮสต์หรือที่อยู่ IP ของพวกเขาได้ เป็นต้น
173.82.202.239
172.82.115.165
load_balancer.pnl.com
ตอนนี้ลองใช้คำสั่ง Ansible สองสามคำสั่งเพื่ออ้างอิงไฟล์รายการโฮสต์ ไวยากรณ์พื้นฐานสำหรับการจัดการสินค้าคงคลังดังที่แสดง
ansible {host-pattern} -i /path/of/inventory/file --list-hosts
ตัวอย่างเช่น,
ansible all -i /root/test_labs/hosts --list-hosts
หรือคุณสามารถใช้อักขระไวด์การ์ด *
เพื่อแทนที่อาร์กิวเมนต์ 'all'
ansible * -i /root/test_labs/hosts --list-hosts
หากต้องการแสดงรายการโฮสต์ในกลุ่ม ให้ระบุกลุ่มโฮสต์ในตำแหน่งของรูปแบบโฮสต์
ansible webservers -i /root/test_labs/hosts --list-hosts
ไฟล์สินค้าคงคลังโฮสต์แบบไดนามิก
ในการกำหนดค่า โดยเฉพาะอย่างยิ่งการตั้งค่าระบบคลาวด์ เช่น AWS ซึ่งไฟล์สินค้าคงคลังเปลี่ยนแปลงตลอดเวลาเมื่อคุณเพิ่มหรือเลิกใช้งานเซิร์ฟเวอร์ การดูแลแท็บบนโฮสต์ที่กำหนดไว้ในไฟล์สินค้าคงคลังกลายเป็นความท้าทายอย่างแท้จริง การกลับไปที่ไฟล์โฮสต์และอัปเดตรายชื่อโฮสต์ด้วยที่อยู่ IP จะไม่สะดวก
และนี่คือจุดที่พื้นที่โฆษณาแบบไดนามิกเข้ามามีบทบาท ดังนั้นสินค้าคงคลังแบบไดนามิกคืออะไร? สินค้าคงคลังแบบไดนามิกคือสคริปต์ที่เขียนด้วย Python, PHP หรือภาษาการเขียนโปรแกรมอื่นๆ มันมีประโยชน์ในสภาพแวดล้อมคลาวด์ เช่น AWS ซึ่งที่อยู่ IP จะเปลี่ยนเมื่อเซิร์ฟเวอร์เสมือนหยุดและเริ่มต้นใหม่อีกครั้ง
Ansible ได้พัฒนาสคริปต์สินค้าคงคลังสำหรับแพลตฟอร์มคลาวด์สาธารณะ เช่น Google Compute Engine, Amazon EC2 instance, OpenStack, RackSpace, Cobbler และอื่นๆ อีกมากมาย
ข้อดีของสินค้าคงคลังแบบไดนามิกเหนือสินค้าคงคลังแบบคงที่คืออะไร
- สินค้าคงคลังแบบไดนามิกทำหน้าที่ลดข้อผิดพลาดของมนุษย์ได้อย่างสมบูรณ์แบบ เนื่องจากข้อมูลถูกรวบรวมโดยใช้สคริปต์
- ต้องใช้ความพยายามเพียงเล็กน้อยในการจัดการสินค้าคงคลัง
คุณสามารถเขียนพื้นที่โฆษณาแบบไดนามิกที่ปรับแต่งเองได้ในภาษาโปรแกรมที่คุณเลือก พื้นที่โฆษณาควรส่งคืนรูปแบบใน JSON เมื่อมีการส่งตัวเลือกที่เหมาะสม
ใช้สคริปต์สินค้าคงคลังแบบไดนามิกที่มีอยู่
สคริปต์ที่ใช้ในการสร้างพื้นที่โฆษณาแบบไดนามิกจะต้องสามารถเรียกใช้งานได้เพื่อให้ Ansible สามารถใช้งานได้
หากต้องการดึงข้อมูลเกี่ยวกับโฮสต์ภายในสคริปต์สินค้าคงคลังแบบไดนามิก เพียงแค่เรียกใช้
./script --list
ตามที่ระบุไว้ก่อนหน้านี้ เอาต์พุตควรอยู่ใน JSON ในรูปแบบด้านล่าง
พจนานุกรมที่ประกอบด้วยกลุ่มต่างๆ (เช่น เว็บเซิร์ฟเวอร์, ฐานข้อมูล_เซิร์ฟเวอร์)
- รายชื่อโฮสต์ที่ได้รับการจัดการต่อกลุ่ม
- พจนานุกรมของตัวแปร
พจนานุกรมเมตา
- โฮสต์และโฮสต์วาร์
ผลลัพธ์ตัวอย่าง
{
"webservers": {
"hosts": [
"webserver1.example.com",
"webserver2.example.com"
],
"vars": {}
},
"database_servers": {
"hosts": [
"mysql_db1",
"mysql_db2"
],
"vars": {}
},
"_meta": {
"hostvars": {
"mysql_db2": {},
"webserver2.example.com": {},
"webserver1.example.com": {},
"mysql_db1": {}
}
}
}
บทสรุป
ในบทความนี้ เราได้สาธิตวิธีการสร้างสินค้าคงคลังทั้งแบบคงที่และแบบไดนามิก โดยสรุป ไฟล์สินค้าคงคลังแบบคงที่คือไฟล์ข้อความธรรมดาที่มีรายการโฮสต์ที่ได้รับการจัดการหรือโหนดระยะไกลซึ่งหมายเลขและที่อยู่ IP ยังคงค่อนข้างคงที่
ในทางกลับกัน ไฟล์โฮสต์แบบไดนามิกจะเปลี่ยนแปลงอยู่ตลอดเวลาเมื่อคุณเพิ่มโฮสต์ใหม่หรือเลิกใช้งานโฮสต์เก่า ที่อยู่ IP ของโฮสต์จะเป็นแบบไดนามิกเช่นกันเมื่อคุณหยุดและเริ่มต้นระบบโฮสต์ใหม่ เราหวังว่าคุณจะพบข้อมูลบทช่วยสอนนี้