usuario password guardar credenciales cambiar and git deployment vagrant ssh-keys ansible

password - git login



automatice el uso de la clave local SSH para la implementación de git con ansible (2)

No tiene que copiar su clave SSH local a servidores remotos. En su lugar, simplemente cree el archivo llamado ansible.cfg en el directorio desde el que está ejecutando los scripts de implementación y coloque la siguiente configuración:

[ssh_connection] ssh_args = -o ForwardAgent=yes

Eso es todo, ahora su identidad local se reenvía a los servidores remotos que administra con Ansible.

Estoy trabajando con vagrant y ansible. Quiero automatizar el rol de despliegue de ansible ( puede consultar mi repositorio aquí ). Para este propósito, estoy tratando de implementar mi clave ssh local en mi VPS y en mi máquina huésped errante (estoy intentando el reenvío de agente SSH).

GOL

Automatice el proceso de despliegue con git usando ansible. Ya he hecho esto:

--- - name: read-write git checkout from github git: repo={{ repository }} dest=/home/site

Dónde:

--- # Variables here are applicable to all host groups repository: [email protected]:dgnest/dgnest.git

PROBLEMA

Cuando lo hago: "vagrant provision", la consola se detiene aquí:

TASK: [deployment | read-write git checkout from github] **********************

Eso es porque no he configurado las teclas ssh.

LO INTENTÉ

Me gustaría usar la opción key_file que tiene el módulo git de ansible. Pero también falla.

--- - name: read-write git checkout from github git: repo={{ repository }} dest=/home/site key_file=/home/oscar/.ssh/id_rsa.pub

Otra opción es copiar mi ~ / ssh / id_rsa.pub en cada VPS y vagrant, pero mi problema en este caso es manejar con todos los diferentes usuarios. Vagrant usa el usuario "vagrant" y mi VPS usa otros, ¿así que tuve que poner mi clave local ssh en cada uno de estos usuarios?

Espero que puedas ayudarme. Gracias.

ACTUALIZAR:

Acabo de automatizar la respuesta de @leucos (Gracias). Copiando las claves rsa privadas y públicas. Comparto este enlace con la implementación.


Si elige la forma de key_file , supongo que la clave debe estar en la máquina VPS / vagrant. Así que es posible que desee copiarlo primero. Tenga en cuenta que necesita una clave privada aquí, no una pública.

Para su segunda opción, puede enviar su clave a usuarios específicos según el tipo de instancia. Suponga que el usuario en VPS es vpsuser, y que implementa principalmente en estos VPS, podría hacer:

group_vars / all:

deploy_user=vpsuser

group_vars / vagrant

deploy_user=vagrant

Entonces, podrías tener un libro de jugadas como:

- name: send key to remote deploy user copy: src=files/private_key dest=~/{{deploy_user}}/.ssh/priv_key - name: read-write git checkout from github git: repo={{ repository }} dest=/home/site key_file=~/{{deploy_user}}/.ssh/priv_key

Sin embargo, no tengo idea de cómo se puede solicitar la contraseña para la clave privada remota (no creo que ansible permita el reenvío del agente de autenticación de forma predeterminada (ver salida -vvvv ), es posible que tenga que jugar con su ~/.ansible.cfg ).

Le sugiero que use una clave específica para fines de implementación (con permisos de solo lectura en su repositorio git). De esta manera, su clave privada no saldrá de su máquina. Hacer esta clave especial sin contraseña. Creo que la compensación de seguridad es aceptable ya que, solo protegerá tu código, - tu código se verifica en la máquina donde está la clave privada, por lo que el juego ya está terminado.

Otra opción es distribuir su aplicación desde su pago local usando ansible: haga un archivo, copie los archivos, descomprima y listo. De esta manera, no necesita dejar las credenciales de seguridad en su VPS.

Buena suerte.