วิธีการติดตั้งและกำหนดค่าโหนดควบคุม Ansible - ตอนที่ 2
ในหัวข้อที่แล้ว คุณจะได้เรียนรู้เกี่ยวกับคำศัพท์ Ansible พื้นฐานและแนวคิดพื้นฐาน ในหัวข้อนี้ (ตอนที่ 2 ของซีรีส์ Ansible) เราจะสาธิตวิธีการติดตั้งและกำหนดค่าโหนดควบคุม Ansible บน RHEL 8
ในการตั้งค่าของเรา เราจะใช้เซิร์ฟเวอร์ 1 Ansible และ 2 โหนด Linux ระยะไกล:
Control Node 1: RHEL 8 Server IP: 192.168.0.108 Ansible Server
Managed Host 1: Debian 10 IP: 192.168.0.15 Webserver
Managed Host 2: CentOS 8 IP: 192.168.0.200 Database Server
โหนดควบคุม Ansible คืออะไร
โหนดควบคุม คือเซิร์ฟเวอร์ Linux ที่ติดตั้ง Ansible ไว้ และใช้สำหรับจัดการโฮสต์หรือโหนดระยะไกล ระบบระยะไกลเหล่านี้เรียกว่า โฮสต์ที่มีการจัดการ หรือ โหนดที่มีการจัดการ
ในการตั้งค่าด้านบน โหนดควบคุมคือเซิร์ฟเวอร์ RHEL 8 ที่จะติดตั้ง Ansible และ Debian 10 & CentOS 8< เป็นโฮสต์ที่ได้รับการจัดการ
หมายเหตุ: Ansible ได้รับการติดตั้งบนโหนดควบคุมเท่านั้น ไม่ใช่โฮสต์ที่ได้รับการจัดการ
ขั้นตอนที่ 1: การติดตั้ง Python 3
ตามค่าเริ่มต้น RHEL 8 จะมาพร้อมกับ Python 3 และคุณสามารถตรวจสอบเวอร์ชันของ Python ที่ติดตั้งบนเซิร์ฟเวอร์ของคุณได้โดยการเรียกใช้
python3 -V
หากไม่ได้ติดตั้ง Python3 ไม่ว่าด้วยเหตุผลใดก็ตาม ให้ติดตั้งโดยใช้คำสั่ง dnf ต่อไปนี้
dnf install python3
หากมี Python หลายเวอร์ชันบนระบบ RHEL 8 ของคุณ คุณสามารถตั้งค่า Python 3 เป็นเวอร์ชันเริ่มต้นของ Python ได้ โดยการวิ่ง
alternatives --set python /usr/bin/python3
ขั้นตอนที่ 2: เปิดใช้งานพื้นที่เก็บข้อมูล RedHat อย่างเป็นทางการ
หลังจากติดตั้ง Python3 ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานพื้นที่เก็บข้อมูลอย่างเป็นทางการของ RedHat สำหรับ Ansible ดังที่แสดงด้านล่าง
subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms
หมายเหตุ: เพื่อให้คำสั่งข้างต้นใช้งานได้ ตรวจสอบให้แน่ใจว่าคุณได้ลงทะเบียน RHEL 8 สำหรับการสมัครสมาชิก RedHat แล้ว
ขั้นตอนที่ 3: ติดตั้ง Ansible บน RHEL 8
หากต้องการติดตั้ง Ansible บนโหนดควบคุมซึ่งเป็นระบบ RHEL 8 ของเรา ให้รันคำสั่ง
dnf install ansible -y
เมื่อติดตั้งแล้ว คุณสามารถตรวจสอบเวอร์ชันของ Ansible ที่ติดตั้งได้โดยการรันคำสั่ง
ansible --version
ขั้นตอนที่ 4: การสร้างไฟล์สินค้าคงคลังโฮสต์แบบคงที่
จนถึงตอนนี้ เราได้ติดตั้ง ansible บน โหนดควบคุม ซึ่งเป็นเซิร์ฟเวอร์ RHEL 8 ของเราเรียบร้อยแล้ว โหนดระยะไกลที่จะจัดการโดยโหนดควบคุมจะต้องถูกกำหนดในไฟล์ที่เรียกว่าไฟล์ สินค้าคงคลัง ไฟล์สินค้าคงคลังเป็นไฟล์ข้อความธรรมดาที่อยู่บนโหนดควบคุมและประกอบด้วยชื่อโฮสต์หรือที่อยู่ IP ของโฮสต์ระยะไกล
ไฟล์โฮสต์แบบคงที่คือไฟล์ข้อความธรรมดาที่มีรายการโหนดที่ได้รับการจัดการซึ่งกำหนดโดยที่อยู่ IP หรือชื่อโฮสต์ มาสร้างไฟล์คงที่ 'โฮสต์' ในไดเร็กทอรี /etc/ansible/
vi /etc/ansible/hosts
จากนั้น ให้กำหนดกลุ่มสำหรับโฮสต์ที่ได้รับการจัดการของคุณ เรามีโฮสต์ที่ได้รับการจัดการ 2 แห่งดังที่เห็นก่อนหน้านี้ในการตั้งค่าที่ตอนแนะนำหัวข้อนี้ จากการตั้งค่า ไฟล์โฮสต์แบบคงที่จะถูกกำหนดดังนี้:
[webserver]
192.168.0.15
[database_server]
192.168.0.200
บันทึกและออกจากไฟล์สินค้าคงคลัง
ในการแสดงรายการโฮสต์ที่ได้รับการจัดการให้รัน:
ansible all -i hosts --list-hosts
จนถึงตอนนี้ เราได้จัดการเพื่อติดตั้ง Ansible ในโหนดควบคุม และกำหนดโฮสต์ที่ได้รับการจัดการในไฟล์โฮสต์แบบคงที่ซึ่งอยู่บนโหนดควบคุม
ต่อไป เราจะมาดูกันว่าเราสามารถจัดการหรือควบคุมโฮสต์ระยะไกลหรือโฮสต์ที่ได้รับการจัดการของเราได้อย่างไร
ขั้นตอนที่ 5: ตั้งค่าโหนดควบคุม Ansible เพื่อเชื่อมต่อกับโหนดระยะไกล
สำหรับ โหนดควบคุม Ansible (RHEL 8) ในการจัดการระบบโฮสต์ระยะไกล (Debian 10 และ CentOS 8) เราจำเป็นต้องตั้งค่าการตรวจสอบสิทธิ์ SSH แบบไม่ต้องใช้รหัสผ่านให้กับโฮสต์ระยะไกล เพื่อให้สิ่งนี้เกิดขึ้น คุณต้องสร้างคู่คีย์ SSH และบันทึกคีย์สาธารณะลงในโหนดระยะไกล
บนโหนดควบคุม Ansible ให้ล็อกอินในฐานะผู้ใช้ปกติและสร้างคู่คีย์ SSH โดยการรันคำสั่ง
su tecmint
ssh-keygen
จากนั้นคัดลอกคีย์ ssh สาธารณะไปยังโหนดระยะไกลตามที่แสดง
ssh-copy-id [email (For Debian 10 node)
ssh-copy-id [email (For CentOS 8 node)
เมื่อเพิ่มกุญแจสาธารณะให้กับโหนดระยะไกลทั้งหมดแล้ว เราจะออกคำสั่ง ping จากโหนด Ansible Control เพื่อให้แน่ใจว่าสามารถเข้าถึงได้
ansible -m ping all
จากผลลัพธ์ข้างต้น เราจะเห็นได้อย่างชัดเจนว่าคำสั่ง ping สำเร็จ และเราสามารถทดสอบความสามารถในการเข้าถึงโหนดทั้งหมดได้
บทสรุป
ในคู่มือนี้ เราได้ติดตั้งและตั้งค่า Ansible บนโหนดควบคุมที่ทำงาน RHEL 8 เรียบร้อยแล้ว ต่อมาเราได้กำหนดโฮสต์ระยะไกลในไฟล์โฮสต์แบบคงที่ และกำหนดค่าโหนดควบคุมเพื่อเชื่อมต่อและควบคุมโฮสต์ที่ได้รับการจัดการโดยการตั้งค่าการตรวจสอบสิทธิ์แบบไม่ใช้รหัสผ่าน SSH