ฉันต้องการใช้ansibleเพื่อจัดการกลุ่มของเซิร์ฟเวอร์ที่มีอยู่ ฉันสร้างansible_hosts
ไฟล์และทดสอบสำเร็จแล้ว (พร้อม-K
ตัวเลือก) ด้วยคำสั่งที่กำหนดเป้าหมายไปยังโฮสต์เดียวเท่านั้น
ansible -i ansible_hosts host1 --sudo -K # + commands ...
ปัญหาของฉันตอนนี้คือรหัสผ่านผู้ใช้ในแต่ละโฮสต์นั้นแตกต่างกัน แต่ฉันไม่สามารถหาวิธีจัดการกับสิ่งนี้ได้ใน Ansible
ใช้-K
ฉันได้รับพร้อมท์สำหรับรหัสผ่าน sudo เดียวล่วงหน้าซึ่งดูเหมือนว่าจะพยายามสำหรับโฮสต์ที่ตามมาทั้งหมดโดยไม่ต้องแจ้ง:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
การวิจัยเพื่อให้ห่างไกล:
คำถาม StackOverflowกับคำตอบหนึ่งที่ไม่ถูกต้อง ( "ใช้
-K
") และเป็นหนึ่งในการตอบสนองโดยผู้เขียนบอกว่า 'พบผมจำเป็นต้อง sudo passwordless'Ansible docsซึ่งพูดว่า "การใช้ sudoless passwordless ทำให้สิ่งต่าง ๆ ง่ายขึ้นโดยอัตโนมัติ แต่ไม่จำเป็นต้องใช้ " (เน้นที่เหมือง)
การรักษาความปลอดภัยนี้คำถาม StackExchangeซึ่งนำไปเป็นอ่านที่
NOPASSWD
จำเป็นบทความ"การจัดสรรที่ปรับขนาดได้และเข้าใจได้ ... "ซึ่งพูดว่า:
"การเรียกใช้ sudo อาจต้องพิมพ์รหัสผ่านซึ่งเป็นวิธีที่แน่นอนในการบล็อก Ansible ตลอดไปการแก้ไขอย่างง่ายคือการเรียกใช้ visudo บนโฮสต์เป้าหมายและตรวจสอบให้แน่ใจว่าผู้ใช้ Ansible ใช้ในการเข้าสู่ระบบโดยไม่ต้องพิมพ์รหัสผ่าน"
บทความ"Playbooks Ansible พื้นฐาน"ซึ่งบอกว่า
"Ansible สามารถเข้าสู่เซิร์ฟเวอร์เป้าหมายเป็นรูทและหลีกเลี่ยงความต้องการ sudo หรือให้ผู้ใช้ ansible มี sudo โดยไม่ใช้รหัสผ่าน แต่ความคิดในการทำอย่างใดอย่างหนึ่งทำให้ม้ามขู่ว่าจะกระโดดขึ้น gullet ของฉันและบล็อก windpipe ของฉัน ทำไม่ได้"
ความคิดของฉันถูกต้อง แต่วิธีการขยายเกินเซิร์ฟเวอร์เดียว?
ปัญหา # 1227 ansible "Ansible ควรถามรหัสผ่าน sudo สำหรับผู้ใช้ทั้งหมดใน playbook" ซึ่งถูกปิดเมื่อปีที่แล้วโดย mpdehaan พร้อมความคิดเห็น "ยังไม่เห็นความต้องการมากสำหรับเรื่องนี้ฉันคิดว่าคนส่วนใหญ่กำลัง sudoing จากเพียงคนเดียว บัญชีผู้ใช้หรือการใช้กุญแจเป็นส่วนใหญ่ "
ดังนั้น ... ผู้คนใช้ Ansible ในสถานการณ์เช่นนี้ได้อย่างไร การตั้งค่าNOPASSWD
ใน/etc/sudoers
การนำรหัสผ่านข้ามโฮสต์หรือทำให้เข้าสู่ระบบราก SSH ทั้งหมดดูเหมือนค่อนข้างลดลงอย่างมากในการรักษาความปลอดภัย
sudo
(ซึ่งยังควรต้องใช้รหัสผ่าน)
ansible_ssh_password
ตั้งค่าจะใช้กับรหัสผ่าน SSH เท่านั้น (เบาะแสอยู่ในชื่อ ... ) ฉันใช้การเข้าสู่ระบบด้วย SSH แบบใช้คีย์