Ortam başına SSH kimlik bilgilerini yapılandırma


10

Ansible ile bir üretim ve hazırlama ortamı için SSH kimlik bilgilerini ayrı ayrı nasıl yapılandıracağımı anlamaya çalışıyorum. Sunucu IP adreslerini ve ana bilgisayar adlarını, -iveya --inventory-filebağımsız değişkenini ansible-playbookkomuta ileterek farklı envanter dosyaları kullanarak ayrı ayrı yapılandırabileceğinizi anlıyorum . Ancak, böyle bir seçenek göremiyorum ansible.cfg. Şu anda, kimlik bilgileri şu şekilde yaşıyor /etc/ansible/ansible.cfg:

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

Biri üretim ve diğeri aşamalandırma için birden fazla SSH kimlik bilgilerini nasıl yapılandırabilirim?


ortamlarınız arasında ne değişir? Sadece anahtar dosya mı yoksa remote_user / sudo_user?
tedder42

@ tedder42 SSH özel anahtarı ve uzak_kullanıcı.
Tüm İşçiler

Bunu neden .ssh / config dosyasında örtmüyorsun?
udondan

@udondan Birden fazla ana bilgisayar için tek bir anahtar belirtmenin bir yolu var mı .ssh/config?
Tüm İşçiler

Evet, yapabilirsin. Açık ana bilgisayar adlarına veya kalıplarına sahip birden çok grup oluşturabilirsiniz. Bir cevapta örnek göndereyim.
udondan

Yanıtlar:


16

İlk cevabımın tamamen doğru olmadığı anlaşılıyor. Tabii ki .ssh/configaşağıda tarif edilen gibi çözmek mümkün olsa da, Ansibles Davranışsal Envanter Parametreleri ile mümkün olduğu görülüyor .

(Dokümanlara göre) envanterinizdeki ana bilgisayarı veya grup başına anahtar dosyasını ve kullanıcıyı tanımlayabilmeniz gerekir.

Grup başına tanım:

[some_hosts]
host1.foo
host2.foo

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

Ana bilgisayar başına tanım:

[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

Ancak, zaten içinde bulunduğunuz birden çok ana makine grubu tanımlayabilirsiniz .ssh/configve her grubun anahtar ve kullanıcı ile ilgili ayrı ayarları olabilir.

İşte kısa bir örnek

#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

Ayrıca bir varsayılan tanımlayabilir ve daha ayrıntılı ayarlarla daha sonra geçersiz kılabilirsiniz.

Host *
  user defaut_username

Host somehost
  user special_username
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.