Je veux copier un fichier sur des nœuds distants, mais seulement si le fichier existe. Je l'ai copié dans /tmp/webapps/partner.war
Ma tâche est :
- local_action: stat path="/tmp/webapps/{{ application }}.war"
register: war
- name: Copy warfile
copy: src=/tmp/webapps/{{ application }}.war dest=/tmp/deploy/{{ stage }}/{{ application }}.war
when: war.stat.exists == true
Mais stat me dit toujours que le fichier n'existe pas. Si je lance stat manuellement, il me montre que le fichier existe.
Le résultat :
TASK: [deploy | stat path="/tmp/webapps/{{ application }}.war"] ***************
<127.0.0.1> REMOTE_MODULE stat path="/tmp/webapps/partner.war"
<127.0.0.1> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367 && echo $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367']
<127.0.0.1> PUT /tmp/tmpzrV_Ne TO /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/stat
<127.0.0.1> EXEC ['/bin/sh', '-c', u'LANG=C LC_CTYPE=C /usr/bin/python /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/stat; rm -rf /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/ >/dev/null 2>&1']
ok: [example.com -> 127.0.0.1] => {"changed": false, "stat": {"exists": false}}
Qu'est-ce que j'ai fait de mal ? :/
0 votes
Déboguer la variable
- debug: var=war
0 votes
En fonction des permissions, vous ne pourrez pas non plus le statuer comme votre
ansible_user
. Utilisezsudo: true
0 votes
@xddsg j'ai réussi à le faire fonctionner, ansible tower utilise proot - je l'ai désactivé et maintenant cela fonctionne.
1 votes
Je vous suggère de faire votre propre réponse et de la considérer comme résolue afin qu'elle ne continue pas à s'afficher dans la liste des questions sans réponse :)
1 votes
Veuillez fermer la question et ajouter votre propre réponse afin d'aider d'autres personnes.