Pracuję w projekcie, a używamy ansible, aby utworzyć wdrożenie klastra serwerów. Jednym z zadań, które muszę wdrożyć, jest skopiowanie lokalnego pliku do zdalnego hosta, tylko jeśli ten plik istnieje lokalnie. Teraz staram się rozwiązać ten problem za pomocą tegoSkopiuj plik lokalny, jeśli istnieje, używając ansible
- hosts: 127.0.0.1
connection: local
tasks:
- name: copy local filetocopy.zip to remote if exists
- shell: if [[ -f "../filetocopy.zip" ]]; then /bin/true; else /bin/false; fi;
register: result
- copy: src=../filetocopy.zip dest=/tmp/filetocopy.zip
when: result|success
Bu to się niepowodzeniem z następującym komunikatem: błąd: „działanie” lub „local_action” atrybut brakuje w zadaniu „skopiować lokalną filetocopy.zip do zdalnego Jeśli istnieje "
Próbowałem utworzyć to, jeśli z zadania polecenia. Próbowałem już stworzyć to zadanie z lokalnym zaangażowaniem, ale nie mogłem go uruchomić. Wszystkie próbki, które znalazłem, nie biorą udziału w powłoce lokalnej, są tylko próbki poleceń i żadne z nich nie ma niczego innego niż polecenie. Czy istnieje sposób na wykonanie tego zadania za pomocą ansibla?
Hi @ sandra-parsick, dzięki za odpowiedź, to nadal nie z failed: [52.11.12.29 -> 127,0 .0.1] => {"failed": true, "parsowany": false} [sudo via ansible, key =] password: –
dirceusemighini
wygląda na to, że nie lubi sudo. Jak dzwonisz do "playbooka"? –
standardowym wzorcem jest moduł [stat module] (http://docs.ansible.com/stat_module.html), który eliminuje konieczność użycia powłoki/polecenia. – tedder42