2016-02-18 2 views
0

J'ai une boîte Vagrant avec centos 7 où je crée des conteneurs LXC. Une course Ansible dans la boîte Vagabond. Je crée le récipient avec Ansible comme ceci:Autorisation SSH dans Ansible entre hôte local et hôte distant

- name: Create containers 
    lxc_container: 
    name: localdev_nginx 
    container_log: true 
    template: centos 
    container_config: 
     - 'lxc.network.ipv4 = 192.168.42.110/24' 
     - 'lxc.network.ipv4.gateway = 192.168.42.1' 
    container_command: | 
     yum -y install openssh-server 
     echo "Som*th1ng" | passwd root --stdin 
     ssh-keygen -b 2048 -t rsa -f /root/.ssh/id_rsa -q -N "" 
    state: started 

C'est de créer le conteneur pour moi, mais après cela, je ne peut pas accéder au conteneur du Ansible. Juste si je prends le pubkey ssh contenant les Vagrant known_hosts comme ceci:

- name: Tell the host about our servers it might want to ssh to 
    shell: ssh-keyscan -t rsa 192.168.42.110 >> /root/.ssh/known_hosts 

Et si j'ajouter le mot de passe root du conteneur dans les hôtes Ansible fichiers comme ceci:

[dev-webservers] 
loc-dev-www1.internavenue.com hostname=loc-dev-www1.internavenue.com ansible_ssh_host=192.168.42.110 ansible_connection=ssh ansible_user=root ansible_ssh_pass=Som*th1ng 

J'espère qu'il a un meilleure solution, parce que vraiment mauvais. Comment puis-je le faire normalement?

Répondre

0

Je copie la boîte Vagrant clé publique aux authorized_keys du conteneur et dans les hôtes en utilisant cette balise:

ansible_ssh_extra_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" 

Ce ne peut être importée Ansible> 2.0