Cette entrée est le 11e jour du calendrier de l'avent Ansible 3 2019. C'était juste vacant, alors je l'ai écrit.
--Définissez Ansible pour que le message de confirmation lors de la première connexion SSH ne s'affiche pas.
--Je ne veux pas émettre de message de confirmation uniquement lors de la connexion SSH à un hôte spécifique
main.yml
# vars:
# - ssh_host_and_user:
# - from:
# user: vagrant
# host: A
# to:
# user: root
# host: B
#Stocker la clé publique de l'utilisateur root de l'hôte B dans une variable
- name: Copy public key to variable
slurp:
src: "{{ ROOT_PUBLIC_KEY_HOST_B }}"
with_items: "{{ ssh_host_and_user }}"
register: to_host_public_key
when: item.to.host == inventory_hostname
#Hôte A,Obtenez le répertoire personnel de n'importe quel utilisateur
- name: Get home direcotry of from.user
shell: |
set -o pipefail
egrep "^{{ item.from.user }}:" /etc/passwd | awk -F: '{ print $6 }'
register: from_user_home_directory
with_items: "{{ ssh_host_and_user }}"
changed_when: false
failed_when: from_user_home_directory.rc != 0
when: item.from.host == inventory_hostname
#La clé publique de l'utilisateur root de l'hôte B, connu de l'hôte A_Écrire aux hôtes
- name: Add Host B infomation to known_hosts in Host A
become: item.from.user
known_hosts:
key: "{{ item.to.host }}
{{ hostvars[item.to.host].to_host_public_key.results[0].content | b64decode }}"
name: "{{ item.to.host }}"
path: "{{ hostvars[item.from.host].from_user_home_directory.results[my_idx].stdout }}/.ssh/known_hosts"
state: present
with_items: "{{ ssh_host_and_user }}"
loop_control:
index_var: my_idx
when: item.from.host == inventory_hostname
En utilisant le module known_hosts, j'ai écrit un processus afin de ne pas émettre le message de confirmation initial SSH. --Il était possible d'empêcher l'émission du message de confirmation uniquement lors de l'établissement d'une connexion SSH avec un hôte spécifique.
Recommended Posts