J'essaie d'exécuter un simple playbook Ansible sur un hôte EC2 déjà provisionné. Lorsque j'exécute ansible-playbook, j'obtiens l'erreur suivante :
SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh
À l'aide du fichier .pem fourni par Amazon, je peux me connecter manuellement à la boîte en effectuant les opérations suivantes
ssh ubuntu@my_instance_ip
.
Voici la commande complète que j'exécute :
ansible-playbook --inventory-file=inventory/production --extra-vars=ansible_ssh_user=ubuntu my-playbook.yml -vvvv
Voici mon fichier d'inventaire (IP/DNS masqué) :
[test]
ec2-1-1-1-1.us-west-1.compute.amazonaws.com ansible_ssh_private_key_file=~/path_to_pem_file.pem
Ce qui est intéressant, c'est que si j'exécute la commande ssh, le livre de jeu ansible s'affiche de manière verbeuse :
ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60m -o ControlPath="/Users/me/.ansible/cp/ansible-ssh-%h-%p-%r" -o IdentityFile="/path_to_my_pem_file.pem" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ubuntu -o ConnectTimeout=10 ec2-1-1-1-1.us-west-1.compute.amazonaws.com
J'obtiens ce qui suit :
debug3: muxserver_listen: temporary control path /Users/me/.ansible/cp/ansible-ssh-ec2-1-1-1-1.us-west-1.compute.amazonaws.com-22-ubuntu.8MjEBnDdRIAO8zAT
unix_listener: "/Users/me/.ansible/cp/ansible-ssh-ec2-1-1-1-1.us-west-1.compute.amazonaws.com-22-ubuntu.8MjEBnDdRIAO8zAT" too long for Unix domain socket
Cette erreur est-elle valable ? Si oui, existe-t-il un moyen de raccourcir la commande ? Merci !
1 votes
Il peut s'agir d'un doublon de stackoverflow.com/questions/35970686/
0 votes
Oui, c'était ça ! Je ne sais pas trop comment j'ai pu rater ça. J'ai mis un chemin plus court dans la configuration control_path et cela a fonctionné.
0 votes
Comme l'a souligné Knowhy, le problème et la réponse se trouvent ici : stackoverflow.com/questions/35970686/
0 votes
Il s'agit d'une contrainte très rare que l'on ne rencontre généralement que sur les machines aws. Je me demande pourquoi vous n'avez pas obtenu le
too long for Unix domain socket
dans le mode verbeux.