กำหนดค่าข้อมูลรับรอง SSH ต่อสภาพแวดล้อม


10

ฉันกำลังพยายามหาวิธีกำหนดค่าข้อมูลรับรอง SSH แยกกันสำหรับการผลิตและการจัดเตรียมสภาพแวดล้อมด้วย Ansible ฉันเข้าใจว่าคุณสามารถกำหนดค่าที่อยู่ IP ของเซิร์ฟเวอร์และชื่อโฮสต์แยกกันโดยใช้ไฟล์รายการต่างๆโดยส่งผ่าน-iหรือ--inventory-fileโต้แย้งไปยังansible-playbookคำสั่ง ansible.cfgแต่ผมไม่เห็นตัวเลือกดังกล่าว ปัจจุบันข้อมูลประจำตัวอาศัยอยู่ใน/etc/ansible/ansible.cfg:

[defaults]
private_key_file=/home/caleb/.ssh/staging_key.pem
remote_user=ubuntu
sudo_user=root
gathering=explicit

ฉันจะกำหนดค่าข้อมูลรับรอง SSH หลายแห่งสำหรับการผลิตและอีกหนึ่งสำหรับการแสดงละคร


สิ่งที่เปลี่ยนแปลงระหว่างสภาพแวดล้อมของคุณ? เพียงแค่ไฟล์กุญแจหรือ remote_user / sudo_user?
tedder42

@ tedder42 คีย์ส่วนตัว SSH และ remote_user
369450

ทำไมคุณไม่พูดเรื่องนั้นใน. ssh / config ของคุณ
udondan

@udondan มีวิธีการระบุคีย์เดียวหนึ่งครั้งสำหรับหลาย ๆ โฮสต์.ssh/configหรือไม่?
user369450

ใช่คุณสามารถทำได้ คุณสามารถสร้างหลายกลุ่มด้วยชื่อโฮสต์หรือรูปแบบที่ชัดเจน ให้ฉันโพสต์ตัวอย่างในคำตอบ
udondan

คำตอบ:


16

ดูเหมือนว่าคำตอบแรกของฉันไม่ถูกต้องทั้งหมด ในขณะที่แน่นอนมันเป็นไปได้ที่จะแก้ปัญหาได้ในของคุณ.ssh/configเช่นอธิบายไว้ด้านล่างดูเหมือนว่าเช่นเดียวกับที่จะเป็นไปได้ด้วย ansibles พฤติกรรมพารามิเตอร์สินค้าคงคลัง

คุณควร (ตามเอกสาร) สามารถกำหนด keyfile และผู้ใช้ในสินค้าคงคลังของคุณไม่ว่าจะเป็นต่อโฮสต์หรือต่อกลุ่ม

คำจำกัดความต่อกลุ่ม:

[some_hosts]
host1.foo
host2.foo

[some_hosts:vars]
ansible_ssh_user=ubuntu
ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem

คำจำกัดความต่อโฮสต์:

[some_hosts]
host1.foo     ansible_ssh_user=ubuntu          ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem
host2.foo     ansible_ssh_user=another_user    ansible_ssh_private_key_file=/home/caleb/.ssh/production_key.pem

แต่คุณสามารถกำหนดกลุ่มโฮสต์หลายกลุ่มที่มีอยู่แล้วใน.ssh/configและแต่ละกลุ่มสามารถมีการตั้งค่าแยกต่างหากเกี่ยวกับคีย์และผู้ใช้

นี่คือตัวอย่างด่วน

#Example with a wildcard
Host *.foo.com
  user ubuntu
  IdentityFile /home/caleb/.ssh/staging_key.pem

#Example with multiple hostnames
Host hostname.one hostname.two hostname.three
  user other_user
  IdentityFile /home/caleb/.ssh/production_key.pem

เช่นกันคุณสามารถกำหนดค่าเริ่มต้นและแทนที่ในภายหลังด้วยการตั้งค่ารายละเอียดเพิ่มเติม

Host *
  user defaut_username

Host somehost
  user special_username
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.