ฉันพยายามที่จะใช้คนจรจัดเป็นวิธีการจัดเตรียมเครื่องเสมือน (การตั้งค่าที่อยู่ IP ทรัพยากร ฯลฯ ) แต่ฉันก็พยายามที่จะแยกการพึ่งพาคนจรจัดของ ansible เช่นฉันเพียงแค่ต้องการใช้คนจรจัดที่จะทำสำรองเพียงครั้งเดียวโดยใช้ ansible ตั้งค่าผู้ใช้ที่ได้รับอนุญาตของฉันปลอดภัยแล้วใช้ Ansible แยกต่างหากเพื่อทำการจัดเตรียมเพิ่มเติมบนเครื่องเสมือนเหล่านี้ จากนั้นฉันก็ยังต้องการใช้คนเร่ร่อน (อาจจะมีวิธีที่ดีกว่านี้) เพื่อนำขึ้น / ลง / ระงับ / ทำลายเครื่องเสมือนโดยใช้คนจรจัด
นี่คือสิ่งที่ฉันมี:
vagrant up
- สร้างอินสแตนซ์ VM ใหม่โดยใช้กล่องคนจรจัด
builtin provisioner BP
ที่รันระหว่างคนจรจัดขึ้น
- เพิ่มผู้ใช้ใหม่ของฉัน (สมมติว่า
ansibleuser
) - เพิ่มกุญแจสาธารณะของฉันเองเพื่อ
ansibleuser's
.ssh
ให้ansibleuser
สามารถเข้าสู่ระบบผ่านทางกุญแจส่วนตัวเท่านั้น (และปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน) - ปรับเปลี่ยน
/etc/sudoers
สำหรับ sudo ไม่มีรหัสผ่าน - [ไม่ทำงานในขณะนี้] ลบ
vagrant
ผู้ใช้และเปลี่ยนรหัสผ่านรูทเพื่อให้เข้าถึงไม่ได้
ปัญหา
ฉันไม่สามารถลบ
vagrant
ผู้ใช้ระหว่างตัวBP
จัดสรรได้เนื่องจากตัวจัดสรรนั้นล็อกอินในฐานะผู้ใช้นั้น ฉันต้องการให้ตัวจัดเตรียมอื่นรันในฐานะผู้ใช้คนอื่น (ansibleuser
) เพื่อลบคนพเนจร มีวิธีที่ดีกว่าในการทำเช่นนี้กับvagrant up
คำสั่งครั้งแรกและครั้งเดียวถ้าฉันทำอย่าง
vagrant halt
นั้นvagrant up
อีกครั้งกระบวนการจะไม่เสร็จสมบูรณ์เพราะมันพยายามที่จะเป็นคนพเนจรและได้รับWarning: Authentication failure. Retrying...
และไม่สามารถ "นำมาขึ้น" ได้สำเร็จ มีวิธีแก้ไขไหม วิธีแก้ปัญหาที่เป็นไปได้คือการระบุผู้ใช้config.ssh
แต่จะต้องมีการตรวจสอบตามเงื่อนไขบางอย่างขึ้นอยู่กับเมื่อฉันเรียกใช้vagrant up
ฉันจะแก้ปัญหาทั้งสองได้อย่างไร มีวิธีที่ดีกว่าในการทำสิ่งที่ฉันพยายามทำให้สำเร็จหรือไม่? มีวิธีที่ดีกว่าในการจัดเตรียมเครื่องเสมือนกระดูกที่ปลอดภัยและเปลือยเปล่าด้วยการตั้งค่า ssh เพื่อที่ฉันจะสามารถใช้ ansible เพื่อทำสิ่งที่ต้องการสำรองเพิ่มเติมได้หรือไม่? ฉันชอบวิธีการกำหนดค่าเครื่องเสมือนโดยง่ายด้วยการใช้ไฟล์คนจรจัดเช่นการตั้งค่าการshared_folders
กำหนดค่าCPU/RAM
ทรัพยากรการสร้าง NIC เสมือน