【问题标题】:ansible script to set gradle home?ansible脚本设置gradle home?
【发布时间】:2017-09-18 08:37:05
【问题描述】:

如何使用 ansible 脚本设置 gradle home。我在 RHEL 中有一个目录 gradle_user_home。我正在尝试使用 ansible 脚本将 gradle home 设置为该目录。但是 ansible 脚本说没有这样的文件或目录!下面是我的脚本。

- name: Set gradle environment variable
  command: export GRADLE_USER_HOME={{gradle_home}}

我的 vars 文件:

gradle_home: "/data1/deployment/gradle_user_home"

【问题讨论】:

  • 因为没有命令export 而Ansible 是完全正确的。无论如何,您将无法做您认为应该做的事情,因为这没有任何意义。请了解 Unix/Linux shell 如何处理环境变量。

标签: gradle ansible environment-variables


【解决方案1】:

您不能在单个command 任务中导出环境变量,因为每个command 任务都在其自己的shell 中运行。命令完成后环境变量丢失。

您必须使用shell 操作来

  1. 设置环境变量并
  2. 运行命令。

例子:

- name: Run the command
  shell: >-
    export GRADLE_USER_HOME={{gradle_home}}
    my_command_which_requires_gradle_user_home

【讨论】:

    【解决方案2】:

    首先,export 不是命令(即没有/bin/export 可执行文件)。它是一个bash 内置的。这就是您收到no such file or directory 的原因。您可以在 shell 任务中使用它,而不是在 command 任务中。

    其次,这不是使用 Ansible 设置环境变量的正确方法。

    您可以像这样在播放级别设置环境:

    ---
    - hosts: all
      environment:
        GRADLE_USER_HOME: "{{gradle_home}}"
    

    或者像这样在任务级别:

    - name: Execute gradle build
      shell: gradle build
      environment:
        GRADLE_USER_HOME: "{{gradle_home}}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2020-02-11
      • 2020-09-27
      相关资源
      最近更新 更多