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

วิธีติดตั้งและกำหนดค่าเครื่องมืออัตโนมัติ 'Ansible' สำหรับการจัดการไอที - ส่วนที่ 1


Ansible เป็นซอฟต์แวร์อัตโนมัติแบบโอเพ่นซอร์สที่ทรงพลังสำหรับการกำหนดค่า จัดการ และปรับใช้แอปพลิเคชันซอฟต์แวร์บนโหนดโดยไม่ต้องหยุดทำงานเพียงใช้ SSH ปัจจุบัน เครื่องมือระบบอัตโนมัติด้านไอทีส่วนใหญ่ทำงานเป็นตัวแทนในโฮสต์ระยะไกล แต่สามารถแก้ไขได้เพียงแค่ต้องมีการเชื่อมต่อ SSH และ Python (2.4 หรือใหม่กว่า) ที่จะติดตั้งบนโหนดระยะไกลเพื่อดำเนินการดังกล่าว

Ansible ทำงานอย่างไร?

มีเครื่องมืออัตโนมัติที่คล้ายกันมากมาย เช่น Puppet, Capistrano, Chef, Salt, Space Walk ฯลฯ แต่ Ansible แบ่งเซิร์ฟเวอร์ออกเป็นสองประเภท: เครื่องจักรควบคุมและโหนด

เครื่องควบคุมที่ติดตั้ง Ansible และโหนดได้รับการจัดการโดยเครื่องควบคุมนี้ผ่าน SSH ตำแหน่งของโหนดจะถูกระบุโดยการควบคุมเครื่องจักรผ่านสินค้าคงคลัง

เครื่องควบคุม (Ansible) ปรับใช้โมดูลกับโหนดโดยใช้โปรโตคอล SSH และโมดูลเหล่านี้จะถูกเก็บไว้ชั่วคราวบนโหนดระยะไกลและสื่อสารกับเครื่อง Ansible ผ่านการเชื่อมต่อ JSON ผ่านเอาต์พุตมาตรฐาน

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

Ansible สามารถจัดการโหนดได้ 100 โหนดจากระบบเดียวผ่านการเชื่อมต่อ SSH และการดำเนินการทั้งหมดสามารถจัดการและดำเนินการได้ด้วยคำสั่งเดียว 'ansible' แต่ในบางกรณี ที่คุณต้องดำเนินการหลายคำสั่งสำหรับการปรับใช้ ที่นี่เราสามารถสร้าง Playbooks ได้

Playbook คือชุดคำสั่งที่สามารถทำงานหลายอย่างได้ และ Playbook แต่ละอันจะอยู่ในรูปแบบไฟล์ YAML

การใช้ Ansible คืออะไร

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

เราได้รวบรวมซีรีส์เกี่ยวกับ Ansible ชื่อ 'การเตรียมการสำหรับการปรับใช้โครงสร้างพื้นฐานด้านไอทีของคุณด้วย Ansible IT Automation Tool' ตลอดส่วนที่ 1-4 และครอบคลุมหัวข้อต่อไปนี้

ในบทความนี้ เราจะแสดงวิธีการติดตั้ง 'Ansible' บนระบบ RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 และ Debian 7/6 และเราจะอธิบายพื้นฐานบางประการเกี่ยวกับวิธีการจัดการด้วย เซิร์ฟเวอร์โดยการติดตั้งแพ็คเกจ ใช้การอัปเดต และอื่นๆ อีกมากมายตั้งแต่ขั้นพื้นฐานไปจนถึงมืออาชีพ

ข้อกำหนดเบื้องต้น

  1. ระบบปฏิบัติการ: RHEL/CentOS/Fedora และ Ubuntu/Debian/Linux Mint
  2. Jinja2: เครื่องมือเทมเพลตแบบสแตนด์อโลนที่ทันสมัย รวดเร็วและใช้งานง่ายสำหรับ Python
  3. PyYAML: ตัวแยกวิเคราะห์และตัวปล่อย YAML สำหรับภาษาการเขียนโปรแกรม Python
  4. parmiko: ไลบรารีช่อง Python SSHv2 ดั้งเดิม
  5. httplib2: ไลบรารีไคลเอนต์ HTTP ที่ครอบคลุม
  6. sshpass: การตรวจสอบรหัสผ่าน ssh แบบไม่โต้ตอบ

การตั้งค่าสภาพแวดล้อมของฉัน

เครื่องควบคุม – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
โหนดระยะไกล
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

ขั้นตอนที่ 1: การติดตั้งเครื่องควบคุม – Ansible

1. ก่อนที่จะติดตั้ง 'Ansible' บนเซิร์ฟเวอร์ เรามาตรวจสอบรายละเอียดของเซิร์ฟเวอร์ก่อน เช่น ชื่อโฮสต์และที่อยู่ IP เข้าสู่ระบบเซิร์ฟเวอร์ในฐานะผู้ใช้รูทและดำเนินการคำสั่งด้านล่างเพื่อยืนยันการตั้งค่าระบบที่เราจะใช้สำหรับการตั้งค่านี้

sudo ifconfig | grep inet

2. เมื่อคุณยืนยันการตั้งค่าระบบของคุณแล้ว ก็ถึงเวลาติดตั้งซอฟต์แวร์ 'Ansible' บนระบบ

บน Ubuntu/Debian/Linux Mint

ที่นี่เราจะใช้ที่เก็บ Ansible PPA อย่างเป็นทางการบนระบบ เพียงเรียกใช้คำสั่งด้านล่างเพื่อเพิ่มที่เก็บ

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

บน RHEL/CentOS/Fedora

น่าเสียดายที่ไม่มีพื้นที่เก็บข้อมูล Ansible อย่างเป็นทางการสำหรับโคลนที่ใช้ RedHat แต่เราสามารถติดตั้ง Ansible ได้โดยเปิดใช้งานพื้นที่เก็บข้อมูล epel ภายใต้ RHEL/CentOS 6, 7 และรองรับการกระจาย fedora ในปัจจุบัน

ผู้ใช้ Fedora สามารถติดตั้ง Ansible ได้โดยตรงผ่านพื้นที่เก็บข้อมูลเริ่มต้น แต่หากคุณใช้ RHEL/CentOS 6, 7 คุณจะต้องเปิดใช้งาน EPEL repo

หลังจากกำหนดค่าที่เก็บ epel แล้ว คุณสามารถติดตั้ง Ansible ได้โดยใช้คำสั่งต่อไปนี้

sudo yum install ansible -y

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

ansible --version

ขั้นตอนที่ 2: การเตรียมคีย์ SSH ให้กับโฮสต์ระยะไกล

4. หากต้องการดำเนินการปรับใช้หรือการจัดการจากโลคัลโฮสต์ไปยังโฮสต์ระยะไกล ก่อนอื่นเราต้องสร้างและคัดลอกคีย์ ssh ไปยังโฮสต์ระยะไกล ในทุกโฮสต์ระยะไกล จะมีบัญชีผู้ใช้ tecmint (ในกรณีของคุณอาจเป็นผู้ใช้อื่น)

ก่อนอื่นให้เราสร้างคีย์ SSH โดยใช้คำสั่งด้านล่างและคัดลอกคีย์ไปยังโฮสต์ระยะไกล

ssh-keygen -t rsa -b 4096 -C "[email "

5. หลังจากสร้างคีย์ SSH สำเร็จแล้ว ให้คัดลอกคีย์ที่สร้างขึ้นไปยังเซิร์ฟเวอร์ระยะไกลทั้งสามเครื่อง

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. หลังจากคัดลอกคีย์ SSH ทั้งหมดไปยังโฮสต์ระยะไกลแล้ว ให้ดำเนินการตรวจสอบสิทธิ์คีย์ ssh บนโฮสต์ระยะไกลทั้งหมดเพื่อตรวจสอบว่าการตรวจสอบความถูกต้องทำงานหรือไม่

ssh [email 
ssh [email 
ssh [email