Próbuję dowiedzieć się, jak skonfigurować poświadczenia SSH osobno dla środowiska produkcyjnego i testowego za pomocą Ansible. Rozumiem, że możesz skonfigurować adresy IP serwerów i nazwy hostów osobno, używając różnych plików spisu, przekazując argument -i
lub --inventory-file
do ansible-playbook
polecenia. Nie widzę jednak takiej opcji dla ansible.cfg
. Obecnie poświadczenia są dostępne /etc/ansible/ansible.cfg
jako:
[defaults]
private_key_file=/home/caleb/.ssh/staging_key.pem
remote_user=ubuntu
sudo_user=root
gathering=explicit
Jak mogę skonfigurować wiele poświadczeń SSH, jeden dla produkcji i jeden dla przemieszczania?
.ssh/config
?Odpowiedzi:
Wydaje się, że moja pierwsza odpowiedź nie była całkowicie poprawna. Chociaż oczywiście można to rozwiązać w sposób
.ssh/config
opisany poniżej, wydaje się, że jest to również możliwe w przypadku parametrów inwentarza zachowań Ansibles .Powinieneś (zgodnie z dokumentami) móc zdefiniować plik klucza i użytkownika w swoim ekwipunku, dla hosta lub grupy.
Definicja na grupę:
Definicja na hosta:
Możesz jednak zdefiniować wiele grup hostów już w swojej
.ssh/config
grupie, a każda grupa może mieć osobne ustawienia dotyczące klucza i użytkownika.Oto szybki przykład
Możesz również zdefiniować wartość domyślną i zastąpić ją później bardziej szczegółowymi ustawieniami.
źródło