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.

  • Pour générer une key pour le server AWS en utilisant ssh-keygen depuis .pem pour PuTTY
  • ssh-keygen crée la key ssh pour l'user linux
  • Comment utiliser les certificates OpenSSH sur Windows?
  • Comment révoquer un certificate ssh (pas le file d'identité ssh!)
  • Autoriser uniquement des keys spécifiques dans le renvoi d'agent?
  • montrer mes keys publiques ssh, une bonne idée?
  • openssh request dsa
  • Partage de la key publique avec ssh
  • La variable SSH_ORIGINAL_COMMAND ne se règle pas
  • empêcher la modification des files par les users: cette méthode est-elle sûre?
  • rsync sans mot de passe, aucun tutoriel de Google (défaut de server) n'a fonctionné
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.