Ansible: วิธีคัดลอกไฟล์, Directory หรือ Script จาก localhost ไปยัง Remote host?

เผยแพร่แล้ว: 2019-02-24

วิธีคัดลอกไฟล์จาก localhost ไปยังรีโมตโฮสต์โดยใช้ Ansible

ในฐานะที่เป็นส่วนหนึ่งของแผนกการจัดการด้านไอที ผู้คนต้องจัดการกับ lots of scripts ฉันแน่ใจว่าคุณต้องเผชิญกับสถานการณ์ในแต่ละวันที่คุณมีการคัดลอกไฟล์หรือสคริปต์ไปยังโฮสต์ระยะไกลนับพัน

แผนกไอทีไม่เพียงแต่เข้าสู่ระบบโฮสต์แต่ละ thousands of hosts และเรียกใช้สคริปต์ด้วยตนเอง และนั่นเป็นสาเหตุที่ทำให้ Ansible กลายเป็นภาพ Ansible เป็นโซลูชันการจัดการไอทีที่ทรงพลังมากสำหรับเราโดยไม่เสียค่าใช้จ่าย

ในบทช่วยสอนนี้ เราจะอธิบายขั้นตอนต่างๆ เพื่อคัดลอกไฟล์ไปยังรีโมตโฮสต์โดยใช้ Ansible

เรากำลังจะทำอะไร?

คัดลอกไฟล์ crunchify.txt ไฟล์จากตำแหน่ง /opt/ashah/ ไปยังไดเร็กทอรีปลายทางของโฮสต์ระยะไกล 192.66.129.83 /opt/ashah/

ขั้นตอนที่ 1

ติดตั้ง Ansible บน Linux Ubuntu หรือ macOS ทำตามบทช่วยสอนเพื่อดูขั้นตอนโดยละเอียด

ขั้นตอนที่ 2

มาทำความเข้าใจพื้นฐานและตำแหน่งไฟล์สำหรับบทช่วยสอนนี้กัน:

  • ตำแหน่งไฟล์กำหนดค่า: /etc/ansible/ansible.cfg
  • ไฟล์สคริปต์: /opt/ashah/crunchify.yml
  • ไฟล์โฮสต์: /opt/ashah/hosts
  • ไฟล์ที่จะคัดลอก: /opt/ashah/crunchify.txt (ไฟล์ทดสอบ)

ขั้นตอนที่ 3

เนื้อหาไฟล์ crunchify.yml

ขั้นตอนที่ 4

เนื้อหาไฟล์ hosts ตรวจสอบให้แน่ใจว่าได้เปลี่ยนที่อยู่ IP เป็นโฮสต์ระยะไกลของคุณ

ขั้นตอนที่ -5

สร้างไฟล์ crunchify.txt โดยมีเนื้อหาด้านล่าง

ขั้นตอนที่ 6

รันคำสั่งนี้เพื่อคัดลอกไฟล์ไปยังรีโมตโฮสต์:

  • Command : ansible-playbook -b -vvv -u root crunchify.yml -kkkk –extra-vars “crunchify-group” -i hosts

มาทำความเข้าใจพารามิเตอร์ทั้งหมดกัน:

  • -b : เรียกใช้การดำเนินการด้วย be (เหมือนกับ —become)
  • -vvv : โหมด verbose (-vvv for more, -vvvv เพื่อเปิดใช้งานการดีบักการเชื่อมต่อ)
  • -u : เชื่อมต่อในฐานะผู้ใช้รายนี้ (ค่าเริ่มต้น=ไม่มี)
  • -kkkk : ขอรหัสผ่านการเชื่อมต่อ
  • –extra-vars : ตั้งค่าตัวแปรเพิ่มเติมเป็น key=value หรือ YAML/JSON หากชื่อไฟล์ขึ้นต้นด้วย @
  • -i : ระบุเส้นทางโฮสต์สินค้าคงคลังหรือรายการโฮสต์ที่คั่นด้วยเครื่องหมายจุลภาค

แค่นั้นแหละ. คุณคัดลอกไฟล์สำเร็จแล้ว

จะตรวจสอบได้อย่างไรว่าไฟล์ถูกคัดลอกไปยังรีโมตโฮสต์ใหม่หรือไม่?

เพียงเข้าสู่ระบบโฮสต์ระยะไกลและตรวจสอบตำแหน่ง /opt/ashah แล้วคุณจะเห็นไฟล์ crunchify.txt

จะคัดลอกเนื้อหาไดเร็กทอรีไปยังไดเร็กทอรีอื่นได้อย่างไร?

เพียงเปลี่ยนค่า src และ desc ของไฟล์ crunchify.yml นี่คือไฟล์ crunchify.yml ที่อัปเดต

ไฟล์ทั้งหมดภายใต้โฟลเดอร์ /opt/ashah/ จะถูกคัดลอกไปยังโฮสต์ระยะไกลทันที

แจ้งให้เราทราบหากคุณมีคำถามใด ๆ ในการจัดการกับไฟล์ไปยังตำแหน่งระยะไกลโดยใช้ Ansible