Ansible pre_tasks คืออะไร? จะอัปเดต OS, ติดตั้ง Python และติดตั้ง JRE บน Remote Host [Linux] ได้อย่างไร

เผยแพร่แล้ว: 2019-05-10

Ansible pre_tasks คืออะไร? วิธีอัปเดต OS, ติดตั้ง Python และติดตั้ง JDK บน Remote Host

pre_tasks ใน Ansible คืออะไร?

pre_tasks เป็นงานที่ Ansible ดำเนินการก่อนที่จะดำเนินการ tasks ใด ๆ ที่กล่าวถึงในไฟล์ . .yml

พิจารณาสถานการณ์นี้ คุณได้จัดเตรียมอินสแตนซ์ใหม่บน Amazon EC2 cloud หรือ Google Cloud สิ่งแรกที่คุณต้องทำคือติดตั้งการอัปเดตระบบปฏิบัติการ จากนั้นติดตั้ง Python ล่าสุด ติดตั้ง Java และอื่นๆ

เมื่องานเบื้องต้นทั้งหมดข้างต้นเสร็จสิ้น คุณจะต้องคัดลอกแอปพลิเคชันของคุณและเริ่มแอปพลิเคชันเหล่านั้น จำเป็นอย่างยิ่งที่จะต้องติดตั้งไบนารีพื้นฐานทั้งหมดก่อนที่คุณจะคัดลอกการขึ้นต่อกันของแอปพลิเคชันของคุณ

ในบทช่วยสอนนี้ เราจะพูดถึงรายละเอียดทั้งหมดเกี่ยวกับวิธีดำเนินการงานล่วงหน้าโดยใช้แท็ก pre_task

Ansible pre_tasks คืออะไร? อัปเดต OS, ติดตั้ง Python และติดตั้ง JRE บน Remote Host?

เราจะปฏิบัติตามสถานการณ์ด้านล่างในบทช่วยสอนนี้:

  1. สร้างไฟล์ crunchify-hosts file และเพิ่ม IP ซึ่งเราจะดำเนินการ pre_task
  2. สร้างไฟล์ crunchify-install-python-java.yml ซึ่งเป็น playbook ที่เล่นได้
    • pre_task: ติดตั้ง python-simplejson
    • pre_task: ติดตั้ง python-minimal
    • pre_task: ติดตั้งการอัปเดตระบบ
    • pre_task: ติดตั้ง JRE . ล่าสุด
  3. รับเวอร์ชัน Python
  4. รับเวอร์ชัน Java
  5. พิมพ์ผลการตรวจแก้จุดบกพร่องทั้งหมด
  6. รันคำสั่ง ansible-playbook -i ./crunchify-hosts crunchify-install-python-java.yml ซึ่งจะทำงานทั้งหมดของเรา

ไฟล์ crunchify-hosts

อย่างที่คุณเห็นฉันกำลังใช้ไฟล์ crunchify.pem สำหรับการตรวจสอบรหัสผ่านน้อยกว่า ฉันสามารถเชื่อมต่อกับโฮสต์ของฉันได้โดยไม่ต้องใช้รหัสผ่าน

ไฟล์ crunchify-install-python-java.yml

เราใช้คีย์เวิร์ด register ใน Ansible เพื่อลงทะเบียนตัวแปร มันเก็บค่าส่งคืนของงาน raw

ด้วยความช่วยเหลือของ debug และ stdout_lines คุณสามารถพิมพ์ผลลัพธ์บนบรรทัดคำสั่ง

เรียกใช้คำสั่ง:

ansible-playbook -i ./crunchify-hosts crunchify-install-python-java.yml

ผลลัพธ์ที่ได้:

แค่นั้นแหละ.

อย่างที่คุณเห็น ในบทช่วยสอนนี้ เราได้ติดตั้งการอัปเดต Python, java และระบบบนโฮสต์ระยะไกล ส่งคืนผลลัพธ์กลับไปที่หน้าต่างเทอร์มินัล Mac

อะไรต่อไป?

ลองอ่านบทช่วยสอนเกี่ยวกับวิธีการคัดลอกไฟล์ ไดเรกทอรี หรือสคริปต์จาก localhost ไปยังโฮสต์ระยะไกล