Déploiement de multiples permissions autorisées sur plusieurs hôtes

Nous avons besoin de déployer des keys sur les servers, mais l'erreur est que les keys sont nombreuses et qu'elles ne doivent pas toutes être déployées sur tous les servers. Maintenant, nous le faisons suit:

dans plusieurs rôles / authorized_keys / vars / main.yml

ssh_users: - name: bob key: "{{ lookup('file', 'roles/authorized_keys/vars/bob.pub') }}" state: present - name: root key: "{{ lookup('file', 'roles/authorized_keys/vars/guru.pub') }}" state: present - name: root key: "{{ lookup('file', 'roles/authorized_keys/vars/user.pub') }}" state: absent 

dans la tâche: roles / authorized_keys / tasks / main.yml

 - name: Add ssh key. authorized_key: user={{ item.name }} key="{{ item.key }}" state={{ item.state }} with_items: ssh_users 

dans playbook: authorized_keys.yml

 --- - hosts: '{{ hosts }}' vars_files: - '{{ vars }}' roles: - { role: authorized_keys } 

Avant de commencer les rôles de modification du jeu de lecture / authorized_keys / vars / main.yml (présent ou absent). Lors du lancement de Playbook, ajoutez les hôtes et le groupe d'hôtes:

 ansible-playbook -i production --extra-vars "hosts=web:pg:1.2.3.4" authorized_keys.yml 

Auparavant, tout était bon, mais maintenant augmenté le nombre de keys et de servers. Et maintenant, je ne me souviens pas de qui doit être sur quel server.

Dites-moi s'il vous plaît comment je peux configurer la list des hôtes pour chaque key? Par exemple, quelque chose comme ceci:

 - name: bob key: "{{ lookup('file', 'roles/authorized_keys/vars/bob.pub') }}" servers: web,database,12.12.12.12 state: present - name: root key: "{{ lookup('file', 'roles/authorized_keys/vars/guru.pub') }}" servers: api,pg,30.30.30.30 state: present 

One Solution collect form web for “Déploiement de multiples permissions autorisées sur plusieurs hôtes”

J'utiliserais une variable hôte "ssh_users", qui indique les users qui ont besoin de leurs keys d'hôte ajoutées.

 - ssh_users: - bob - root - alice 

Ensuite, vous avez un file variable séparé qui définit le nom, la key et l'état pour chaque user SSH. Importez ce file variable, puis appelez votre tâche originale à peu près tel quel.

  • un file key ssh pour plusieurs machines, au lieu de paire à une seule machine?
  • Rsync sans mot de passe et port différé pour shell rssh
  • Les keys SSH publiques ne fonctionnent pas pour tous les users sur le même server
  • Comment puis-je valider un file de key publique RSS ssh (id_rsa.pub)?
  • SSH Comment ignorer les erreurs non trouvées d'IdentityFile?
  • Cygwin: exécutez SSH.exe (sans cygwin.bat) avec un couple-key
  • openssh request dsa
  • Pourquoi ne puis-je pas ssh dans mon server ubuntu? (erreur ssh_exchange_identification)
  • CoreOS / Docker "$ fleetctl satus my.service" - ssh: la poignée de main a échoué
  • Accepte automatiquement l'empreinte digitale de la clé rsa à partir de la ligne de commande
  • Peut accéder à sshd-server avec un user, mais pas avec une seconde
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.