Rôle possible pour empêcher le message de confirmation initial lors de la connexion avec SSH

Cette entrée est le 11e jour du calendrier de l'avent Ansible 3 2019. C'était juste vacant, alors je l'ai écrit.

Contenu de cet article

--Définissez Ansible pour que le message de confirmation lors de la première connexion SSH ne s'affiche pas.

supposition

--Je ne veux pas émettre de message de confirmation uniquement lors de la connexion SSH à un hôte spécifique

Méthode de mise en œuvre

code

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


À la fin

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

Rôle possible pour empêcher le message de confirmation initial lors de la connexion avec SSH
[PostgreSQL] Comment accorder une autorité de superutilisateur lorsque le nombre d'utilisateurs (rôles) avec l'autorité de superutilisateur est de 0.
Connectez-vous à un serveur distant avec SSH
Lorsque j'ai essayé de changer le mot de passe root avec ansible, je ne pouvais pas y accéder.
[Ansible] Comment utiliser l'authentification par mot de passe SSH lors de l'exécution d'ansible
Trajectoire lors de la connexion ssh au système d'exploitation invité sur VirtualBox
Lorsque vous souhaitez enregistrer les données initiales de Django avec des relations
Changer le message affiché lors de la connexion à Raspberry Pi
Définir l'authentification par clé publique pour la connexion SSH dans Teraterm
Lorsque vous souhaitez ajuster l'intervalle de l'échelle de l'axe avec APLpy