Ansible - บทนำ
Ansible เป็นเอ็นจิ้นไอทีโอเพ่นซอร์สที่เรียบง่ายซึ่งทำให้การใช้งานแอปพลิเคชันเป็นไปโดยอัตโนมัติการจัดเตรียมบริการภายในการจัดเตรียมระบบคลาวด์และเครื่องมือไอทีอื่น ๆ อีกมากมาย
Ansible นั้นง่ายต่อการปรับใช้เนื่องจากไม่ใช้เอเจนต์หรือโครงสร้างพื้นฐานด้านความปลอดภัยที่กำหนดเอง
Ansible ใช้ playbook เพื่ออธิบายงานอัตโนมัติและ playbook ใช้ภาษาที่เรียบง่ายมากเช่น YAML(เป็นภาษาซีเรียลไลเซชันข้อมูลที่มนุษย์อ่านได้และมักใช้สำหรับไฟล์คอนฟิกูเรชัน แต่สามารถใช้กับแอพพลิเคชั่นจำนวนมากที่มีการจัดเก็บข้อมูล) ซึ่งง่ายมากสำหรับมนุษย์ที่จะเข้าใจอ่านและเขียน ดังนั้นข้อดีคือแม้แต่ผู้สนับสนุนโครงสร้างพื้นฐานด้านไอทีก็สามารถอ่านและทำความเข้าใจเพลย์บุ๊กและดีบักได้หากจำเป็น (YAML - อยู่ในรูปแบบที่มนุษย์อ่านได้)
Ansible ออกแบบมาสำหรับการปรับใช้หลายชั้น Ansible ไม่ได้จัดการระบบเดียวในแต่ละครั้ง แต่เป็นการจำลองโครงสร้างพื้นฐานไอทีโดยอธิบายว่าระบบทั้งหมดของคุณมีความสัมพันธ์กัน Ansible ไม่มีเอเจนต์อย่างสมบูรณ์ซึ่งหมายความว่า Ansible ทำงานโดยเชื่อมต่อโหนดของคุณผ่าน ssh (โดยค่าเริ่มต้น) แต่ถ้าคุณต้องการวิธีอื่นในการเชื่อมต่อเช่น Kerberos Ansible จะให้ตัวเลือกนั้นแก่คุณ
หลังจากเชื่อมต่อกับโหนดของคุณ Ansible จะผลักดันโปรแกรมขนาดเล็กที่เรียกว่า“ Ansible Modules” Ansible เรียกใช้โมดูลนั้นบนโหนดของคุณและลบออกเมื่อเสร็จสิ้น Ansible จัดการสินค้าคงคลังของคุณในไฟล์ข้อความธรรมดา (นี่คือไฟล์โฮสต์) Ansible ใช้ไฟล์โฮสต์ซึ่งสามารถจัดกลุ่มโฮสต์และสามารถควบคุมการดำเนินการกับกลุ่มเฉพาะในเพลย์บุ๊ก
ไฟล์โฮสต์ตัวอย่าง
นี่คือเนื้อหาของไฟล์โฮสต์ -
#File name: hosts
#Description: Inventory file for your application. Defines machine type abc
node to deploy specific artifacts
# Defines machine type def node to upload
metadata.
[abc-node]
#server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible
user> ansible_connection = ssh
server1 ansible_host = <your host name> ansible_user = <your unix user>
ansible_connection = ssh
[def-node]
#server2 ansible_host = <target machine for artifact upload>
ansible_user = <Ansible user> ansible_connection = ssh
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh
การจัดการการกำหนดค่าคืออะไร
การจัดการการกำหนดค่าในแง่ของ Ansible หมายความว่าจะรักษาการกำหนดค่าประสิทธิภาพของผลิตภัณฑ์โดยเก็บบันทึกและอัปเดตข้อมูลโดยละเอียดซึ่งอธิบายถึงฮาร์ดแวร์และซอฟต์แวร์ขององค์กร
โดยทั่วไปข้อมูลดังกล่าวจะรวมถึงเวอร์ชันที่แน่นอนและการอัปเดตที่ใช้กับแพ็คเกจซอฟต์แวร์ที่ติดตั้งและตำแหน่งที่ตั้งและที่อยู่เครือข่ายของอุปกรณ์ฮาร์ดแวร์ เช่นหากคุณต้องการติดตั้งเวอร์ชันใหม่ของWebLogic/WebSphere เซิร์ฟเวอร์บนเครื่องทั้งหมดที่มีอยู่ในองค์กรของคุณคุณไม่สามารถไปและอัปเดตแต่ละเครื่องได้ด้วยตนเอง
คุณสามารถติดตั้ง WebLogic / WebSphere ได้ในครั้งเดียวบนเครื่องทั้งหมดของคุณด้วยหนังสือเล่น Ansible และสินค้าคงคลังที่เขียนขึ้นด้วยวิธีที่ง่ายที่สุด สิ่งที่คุณต้องทำคือแสดงรายการที่อยู่ IP ของโหนดของคุณในสินค้าคงคลังและเขียน playbook เพื่อติดตั้ง WebLogic / WebSphere เรียกใช้ playbook จากเครื่องควบคุมของคุณและจะถูกติดตั้งบนโหนดทั้งหมดของคุณ
Ansible ทำงานอย่างไร
ภาพด้านล่างแสดงการทำงานของ Ansible
Ansible works โดยเชื่อมต่อกับโหนดของคุณและผลักดันโปรแกรมขนาดเล็กที่เรียกว่า "Ansible โมดูล "ให้กับพวกเขา Ansibleจากนั้นเรียกใช้โมดูลเหล่านี้ (ผ่าน SSH โดยค่าเริ่มต้น) และลบออกเมื่อเสร็จสิ้น ไลบรารีโมดูลของคุณสามารถอยู่ในเครื่องใดก็ได้และไม่จำเป็นต้องมีเซิร์ฟเวอร์ daemons หรือฐานข้อมูล
โหนดการจัดการในภาพด้านบนคือโหนดควบคุม (โหนดการจัดการ) ซึ่งควบคุมการทำงานทั้งหมดของเพลย์บุ๊ก เป็นโหนดที่คุณใช้งานการติดตั้ง ไฟล์สินค้าคงคลังจัดเตรียมรายการโฮสต์ที่ต้องรันโมดูล Ansible และโหนดการจัดการทำการเชื่อมต่อ SSH และเรียกใช้โมดูลขนาดเล็กบนเครื่องโฮสต์และติดตั้งผลิตภัณฑ์ / ซอฟต์แวร์
Beauty ของ Ansible คือมันจะลบโมดูลออกเมื่อติดตั้งโมดูลเหล่านั้นได้อย่างมีประสิทธิภาพดังนั้นมันจึงเชื่อมต่อกับเครื่องโฮสต์ดำเนินการตามคำสั่งและหากติดตั้งสำเร็จจะลบโค้ดที่คัดลอกบนเครื่องโฮสต์ที่ถูกเรียกใช้งาน