Dai uno sguardo allo authorized_key module per ottenere informazioni su come gestire le tue chiavi pubbliche.
La soluzione più semplice che posso pensare sarebbe quella di generare una nuova coppia di chiavi per l'applicazione, da condividere con tutte le istanze dell'app. Questo potrebbe avere implicazioni sulla sicurezza (stai effettivamente condividendo le chiavi tra tutte le istanze!), Ma semplificherà molto il processo di provisioning.
È inoltre necessario un utente di distribuzione su ciascuna macchina dell'app, da utilizzare in un secondo momento durante il processo di distribuzione. Avrai bisogno della tua chiave pubblica (o jenkins uno) su ogni utente di distribuzione authorized_keys
.
un playbook disegno:
---
- name: ensure app/deploy public key is present on git server
hosts: gitserver
tasks:
- name: ensure app public key
authorized_key:
user: "{{ git_user }}"
key: app_keys/id_dsa.pub
state: present
- name: provision app servers
hosts: appservers
tasks:
- name: ensure app/deploy user is present
user:
name: "{{ deploy_user }}"
state: present
- name: ensure you'll be able to deploy later on
authorized_key:
user: "{{ deploy_user }}"
key: "{{ path_to_your_public_key }}"
state: present
- name: ensure private key and public one are present
copy:
src: keys/myapp.private
dest: "/home/{{ deploy_user }}/.ssh/{{ item }}"
mode: 0600
with_items:
- app_keys/id_dsa.pub
- app_keys/id_dsa
fonte
2014-09-03 12:30:44
Potresti elaborare su come gestire le chiavi sul server Git? Questa è un'istanza di gitlab? Devi solo aggiungere chiavi in un file authorized_keys? – leucos
Devo solo aggiungere le chiavi al file authorized_keys – beydogan