我有一個tomcat.sh,其目的是在將它部署到遠程主機上後重新啓動(停止並啓動)tomcat。Ansible命令,Shell模塊不執行腳本
我注意到Shell和Command模塊沒有執行.sh文件。但是,我能夠以遠程用戶的身份在遠程主機上手動執行.sh文件。
的劇本任務列表如下:
殼牌
- name: ensures tomcat is restarted
shell:
"nohup {{tomcat_dir}}/apache-tomcat-{{tomcat_version}}/tomcat.sh &"
命令
- name: ensures tomcat is restarted test-test
command: ./tomcat.sh
args:
chdir: "{{tomcat_dir}}/apache-tomcat-{{tomcat_version}}"
您是否正在使用與Ansible相同的遠程用戶執行腳本?你從Ansible收到任何錯誤消息嗎?如果腳本只重新啓動tomcat,爲什麼要將它發送到後臺? – udondan
執行腳本時沒有錯誤。沒有特別的理由把nohup。我只是習慣於在後臺發送進程,但不應該影響底層的shell命令。相反,我把它留給了命令任務。 –