繁体   English   中英

使用 Ansible 在服务器上执行 shell 脚本

[英]Execute shell script on server using Ansible

我必须使用 Ansible 在多台服务器上运行 shell 脚本。 我正在使用以下代码。

-name: start script
 hosts: list_of_host
 become: yes
 gather_facts: no
 role:
   - startscript

在startscript中我有下面的代码......

-name: start script
 shell: /bin/bash /home/ansible/test_script.sh
 chnaged_when: false

Test_script 永远在服务器上运行进程。 所以当我执行这个命令时,它不是从那个服务器出来的。 我需要它应该在服务器上启动脚本并出来并 go 到另一台服务器以启动脚本。

如果/home/ansible/test_script.sh是“永远运行”,您应该将其转换为服务并通过 systemctl 启动它。

显然 ansible 将等待shell:命令完成..

shell不应用于“永远运行”的脚本。

您也可以通过启动screen并在其中执行脚本来启动/home/ansible/test_script.sh ,这样它会在 ansible 退出后继续运行,

或者您可以尝试通过在shell:命令的末尾添加&将该脚本推送到后台执行,并在命令前加上nohup以便在 ansible 的 ssh 连接断开时不会终止

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM