首页 > 解决方案 > 在ansible中执行环境文件

问题描述

我正在尝试设置一个剧本,它将在运行命令停止服务之前执行服务的 env 文件。
请注意,停止启动服务命令仅在执行该 env 文件后才有效。

执行 env 文件的命令是. ./.env_file_nameksh .env_file_name

我无法在命令模块和 shell 模块中使用上述命令执行文件。

  1. 如何在 ansible 中执行上述 env 文件?
  2. 执行 env 文件后如何运行停止命令?

标签: ansibleenvironment-variables

解决方案


如果 env 文件包含一些需要在运行 stop 之前设置的环境变量,那么您可以读取文件,将结果存储在变量中,然后使用environment关键字将它们提供给实际停止服务的任务。

或者,您可以一次在 shell 模块中添加多个命令,如下所示:

- name: Example for a shell module
  shell:
    cmd: |
      ./.env_file_name
      ./stop.sh (insert command to stop the service here)

推荐阅读