โทโพโลยีเครือข่าย:
ที่นี่ linuxhint-711ea เป็นเครื่อง Ubuntu 20.04 LTS ที่ฉันจะติดตั้ง Ansible
จากนั้นฉันจะกำหนดค่าโฮสต์ host1 (ที่อยู่ IP 192.168.20.162) และ host2 (ที่อยู่ IP 192.168.20.153) สำหรับการทำงานอัตโนมัติของ Ansible และเรียกใช้คำสั่งกับพวกเขาโดยใช้ Ansible จาก linuxhint-711ea เครื่องจักร.
ฉันจะโทรหา host1 และ host2 เป็นโฮสต์ของ Ansible ในบทความนี้
การติดตั้ง Ansible:
คุณสามารถติดตั้ง Ansible บน Ubuntu 20.04 LTS ได้อย่างง่ายดายจากที่เก็บแพ็คเกจอย่างเป็นทางการของ Ubuntu
ขั้นแรก อัพเดตแคชที่เก็บแพ็คเกจ APT ด้วยคำสั่งต่อไปนี้:
$sudoapt update
ควรอัปเดตแคชที่เก็บแพ็กเกจ APT
ตอนนี้ ติดตั้ง Ansible ด้วยคำสั่งต่อไปนี้:
$sudoฉลาดติดตั้งansibleเพื่อยืนยันการติดตั้ง กด และ แล้วกด .
ควรติดตั้ง Ansible
ตอนนี้ให้รันคำสั่งต่อไปนี้เพื่อตรวจสอบว่า ansible ทำงานอย่างถูกต้องหรือไม่
$ansible--รุ่นอย่างที่คุณเห็น คำสั่ง ansible พร้อมใช้งานและทำงานอย่างถูกต้อง
กำลังสร้างคีย์ SSH:
ตอนนี้ คุณต้องสร้างคีย์ SSH บนคอมพิวเตอร์ที่คุณติดตั้ง Ansible
ในการสร้างคีย์ SSH ให้รันคำสั่งต่อไปนี้:
$ssh-keygenตอนนี้กด .
กด .
กด .
ควรสร้างคีย์ SSH
การกำหนดค่าโฮสต์ Ubuntu สำหรับ Ansible Automation:
ในส่วนนี้ ฉันจะแสดงวิธีกำหนดค่าโฮสต์ Ubuntu ( host1 ) สำหรับระบบอัตโนมัติ Ansible หากคุณมีโฮสต์มากกว่าหนึ่งโฮสต์ที่คุณต้องการทำให้เป็นอัตโนมัติโดยใช้ Ansible ให้ทำขั้นตอนเดียวกันซ้ำในแต่ละโฮสต์
โฮสต์ Ubuntu Ansible (ซึ่งคุณต้องการกำหนดค่าสำหรับการทำงานอัตโนมัติของ Ansible) จะต้องติดตั้งแพ็คเกจเซิร์ฟเวอร์ SSH
ขั้นแรก อัพเดตแคชที่เก็บแพ็คเกจ APT ด้วยคำสั่งต่อไปนี้:
$sudoapt updateจากนั้น ติดตั้งเซิร์ฟเวอร์ OpenSSH ด้วยคำสั่งต่อไปนี้:
$sudoฉลาดติดตั้งopensh-เซิร์ฟเวอร์-และในกรณีของฉัน แพ็คเกจเซิร์ฟเวอร์ OpenSSH ได้รับการติดตั้งไว้แล้ว หากไม่ได้ติดตั้งในกรณีของคุณ ควรติดตั้งไว้
ตอนนี้ ตรวจสอบว่า sshd บริการกำลังทำงานด้วยคำสั่งต่อไปนี้:
$sudoสถานะ systemctl sshdอย่างที่คุณเห็น sshd บริการคือ คล่องแคล่ว (วิ่ง) และ เปิดใช้งาน (จะเริ่มโดยอัตโนมัติเมื่อบูตระบบ)
ถ้า sshd บริการไม่ได้ คล่องแคล่ว (ทำงานอยู่) ในกรณีของคุณ ให้เริ่มด้วยตนเองด้วยคำสั่งต่อไปนี้:
$sudosystemctl เริ่ม sshdถ้า sshd บริการไม่ได้ เปิดใช้งาน (ไม่ได้เพิ่มในการเริ่มต้นระบบ) ในกรณีของคุณ ให้เพิ่มในการเริ่มต้นระบบด้วยตนเองโดยใช้คำสั่งต่อไปนี้:
$sudosystemctlเปิดใช้งานsshdตอนนี้ กำหนดค่าไฟร์วอลล์เพื่ออนุญาตการเข้าถึง SSH ด้วยคำสั่งต่อไปนี้:
$sudoufw อนุญาตsshคุณควรสร้าง an . ด้วย ansible ผู้ใช้และอนุญาตให้เข้าถึง sudo โดยไม่ต้องใช้รหัสผ่านไปยัง ansible ผู้ใช้
เพื่อสร้าง ansible ผู้ใช้รันคำสั่งต่อไปนี้:
$sudoadduser ansibleตอนนี้พิมพ์รหัสผ่านสำหรับ ansible ผู้ใช้และกด .
ตอนนี้ พิมพ์รหัสผ่านอีกครั้งแล้วกด .
ตอนนี้กด .
ตอนนี้กด .
ตอนนี้กด .
ตอนนี้กด .
ตอนนี้กด .
ตอนนี้พิมพ์ และ แล้วกด .
หนึ่ง ansible ควรสร้างผู้ใช้
ตอนนี้กำหนดค่าการเข้าถึง sudo โดยไม่ต้องใช้รหัสผ่านไปยัง ansible ผู้ใช้ด้วยคำสั่งต่อไปนี้:
$โยนออก 'ansible ALL=(ALL) NOPASSWD:ALL' | sudo ที /ฯลฯ/sudoers.d/ansibleตอนนี้ ค้นหาที่อยู่ IP ของโฮสต์ Ansible ( host1 ) ด้วยคำสั่งต่อไปนี้:
$ชื่อโฮสต์ -ผมที่นี่ ที่อยู่ IP ในกรณีของฉันคือ 192.168.20.162 . มันจะแตกต่างกันสำหรับคุณ ดังนั้นตรวจสอบให้แน่ใจว่าได้แทนที่ด้วยแบบฟอร์มของคุณแล้ว
จากคอมพิวเตอร์ที่คุณติดตั้ง Ansible ให้คัดลอกคีย์สาธารณะ SSH ไปยังโฮสต์ Ansible ( host1 ) ดังนี้
$ssh-copy-id ansible@192.168.20.162พิมพ์ ใช่ แล้วกด .
ตอนนี้พิมพ์รหัสผ่านสำหรับ ansible ผู้ใช้และกด .
ควรคัดลอกคีย์ SSH สาธารณะไปที่ host1 .
ตอนนี้ปิดการใช้งานการเข้าสู่ระบบด้วยรหัสผ่านสำหรับ ansible ผู้ใช้ด้วยคำสั่งต่อไปนี้:
$sudoผู้ใช้mod-NSansibleตอนนี้ คุณสามารถ SSH ได้เฉพาะในโฮสต์ Ansible ( host1 ) เช่น ansible ผู้ใช้ที่ไม่มีรหัสผ่านจากคอมพิวเตอร์ที่คุณคัดลอกคีย์สาธารณะ SSH จาก (ในกรณีนี้คือคอมพิวเตอร์ที่คุณติดตั้ง Ansible) แต่คุณจะไม่สามารถ SSH เข้าสู่โฮสต์ Ansible ( host1 ) เช่น ansible ผู้ใช้จากคอมพิวเตอร์เครื่องอื่น ฉันได้กำหนดค่าโฮสต์ Ansible ด้วยวิธีนี้เพื่อเหตุผลด้านความปลอดภัย ในฐานะที่เป็น ansible ผู้ใช้ไม่ต้องการรหัสผ่านใด ๆ สำหรับการรันคำสั่งการดูแลระบบ มีความเสี่ยงที่จะอนุญาตให้เข้าสู่ระบบด้วยรหัสผ่านสำหรับ ansible ผู้ใช้
ตอนนี้ คุณควรจะสามารถ SSH ลงใน ansible host ได้ host1 จากคอมพิวเตอร์ที่คุณได้ติดตั้ง Ansible ดังต่อไปนี้:
$sshansible@192.168.20.162อย่างที่คุณเห็น ฉันสามารถเข้าถึงโฮสต์ Ansible ( host1 ) ในฐานะผู้ใช้ ansible โดยไม่ต้องใช้รหัสผ่านใด ๆ ดังนั้น โฮสต์ Ansible ( host1 ) พร้อมสำหรับการทำงานอัตโนมัติของ Ansible
หากคุณต้องการอนุญาตให้เข้าสู่ระบบโดยใช้รหัสผ่านสำหรับ . ด้วยเหตุผลบางประการ ansible ผู้ใช้อีกครั้ง ให้รันคำสั่งต่อไปนี้ในโฮสต์ Ansible ( host1 ):
$sudoผู้ใช้mod-ยูansibleคุณสามารถกำหนดค่าโฮสต์ได้มากเท่าที่คุณต้องการสำหรับการทำงานอัตโนมัติของ Ansible ในลักษณะเดียวกัน
ในบทความนี้ฉันได้กำหนดค่าเพียง 2 โฮสต์ host1 และ host2 สำหรับการสาธิต
การทดสอบ Ansible:
ตอนนี้ สร้างไดเร็กทอรีโครงการใหม่ ~/ansible-สาธิต/ ในคอมพิวเตอร์ที่คุณได้ติดตั้ง Ansible ดังนี้:
$mkdir~/ansible-สาธิตตอนนี้ไปที่ ~/ansible-สาธิต/ ไดเร็กทอรีดังนี้:
$ซีดี~/ansible-สาธิต/ตอนนี้สร้างใหม่ เจ้าภาพ ไฟล์ในไดเร็กทอรีโครงการดังนี้:
$นาโนเจ้าภาพตอนนี้พิมพ์ที่อยู่ IP หรือชื่อ DNS ของโฮสต์ Ansible ( host1 และ host2 ในกรณีของฉัน) ใน เจ้าภาพ ไฟล์ดังนี้
192.168.20.162192.168.20.153
ตอนนี้บันทึกไฟล์โดยกด + X ติดตามโดย และ แล้วก็ .
ตอนนี้ให้ลอง ping โฮสต์ทั้งหมดโดยใช้ Ansible ดังนี้:
$ansible ทั้งหมด-ผม./เจ้าภาพ-ยูansible-NS ปิงบันทึก: ที่นี่ -u ตัวเลือกใช้เพื่อระบุชื่อผู้ใช้ (ในกรณีนี้) ซึ่ง Ansible จะใช้เพื่อ SSH ในโฮสต์
อย่างที่คุณเห็น โฮสต์ทั้งหมดสามารถ ping ได้ ดังนั้นโฮสต์จึงพร้อมสำหรับการทำงานอัตโนมัติของ Ansible
ในทำนองเดียวกัน คุณสามารถรันคำสั่งใดๆ ในโฮสต์โดยใช้ Ansible ได้ดังนี้:
$ansible ทั้งหมด-ผม./เจ้าภาพ-ยูansible-NSเปลือก-ถึง 'echo '$(ชื่อโฮสต์) - $(ชื่อโฮสต์ -I)''อย่างที่คุณเห็น คำสั่งรันได้สำเร็จในแต่ละโฮสต์และผลลัพธ์จะแสดงขึ้น
นี่คือวิธีที่คุณติดตั้ง Ansible บน Ubuntu 20.04 LTS และกำหนดค่าโฮสต์ Ubuntu 20.04 LTS สำหรับการทำงานอัตโนมัติของ Ansible ขอบคุณที่อ่านบทความนี้