gpt4 book ai didi

path - Ansible:如何为 solaris 全局设置 PATH

转载 作者:行者123 更新时间:2023-12-01 00:57:18 25 4
gpt4 key购买 nike

我正在编写 Ansible 剧本来在 Solaris 服务器上设置和安装我们的应用程序。

问题是我需要执行的(bash)脚本都假设某个目录位于 PATH 上,即 /data/bin - 如果不是 Ansible 忽略所有 .profile,这通常不会成为问题和 .bashrc配置。

现在,我知道您可以为 shell 指定环境任务通过 environment标志,例如像这样:

- shell: printenv
environment:
PATH: /usr/bin:/usr/sbin:/data/bin

这将正确路径 /data/bin文件夹,以及 printenv命令将正确显示(或我的 bash 脚本将正确运行)。

但。 但是有两个问题:
  • 首先,必须一遍又一遍地指定环境是非常烦人的。我知道你可以在一些剧本基本文件变量和引用中定义环境,但你仍然必须设置 environment: ...每单 shell任务。
  • 其次,上面的例子不允许我动态指定路径,例如如 PATH: $PATH:/data/bin - 因为 Ansible 以无法解析 $PATH 的方式执行此操作,因此该命令会灾难性地失败。所以基本上这将覆盖对 PATH 的任何其他更改.

  • 我正在寻找一个解决方案
  • 附加 PATH仅应添加条目 一次
  • 附加 PATH条目不应覆盖其他任务添加的条目

  • 附言我在 how to do this on Linux 上找到了这个很好的解释,但它使用了 /etc/environment在 Solaris 上不存在。 (并且 /etc/profile 再次被 Ansible 忽略。)

    最佳答案

    尝试添加 -o SendEnv=PATHssh_argsansible.cfg .要求

  • 运行 ansible 的 shell 在 PATH 中有/data/bin 。或者,ansible 允许您修改当前/本地 PATH 变量。
  • 远程机器有 AcceptEnv正确设置。
  • 关于path - Ansible:如何为 solaris 全局设置 PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27817310/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com