Ansible Windows 如何预置到系统环境变量



我正在尝试配置 Ansible 以cryptographyWindows 10 安装一个 Python 包。 这需要预置两个环境变量:

C:> set LIB=C:OpenSSL-win64lib;%LIB%
C:> set INCLUDE=C:OpenSSL-win64include;%INCLUDE%

cryptography文档

我想使用 Ansible 的win_environment预置环境变量。

但是,我不知道如何通过win_environment预置环境变量。 你能帮帮我吗?


我试过什么

我尝试了以下任务:

- name: Set OpenSSL environment variables - LIB
win_environment:
name: LIB
level: machine
state: present
value: C:Program FilesOpenSSL-Win64lib;%LIB%

不幸的是,Ansible试图将%LIB%解释为一条路径,吐出:Invalid search path '%LIB%' specified in 'LIB environment variable' -- 'The system cannot find the path specified.


研究

如何使用 Ansible 扩展 Windows 路径变量

这里的 OP 有同样的问题,除了Path变量。 以下是我的评论:

  • 我的用例不是Path环境变量。
  • 当前的答案基本上是使用raw和/或register在几个步骤中手动附加到路径前面。 我希望有更简单的东西。

版本

ansible==2.8.3
cryptography==2.6.1

正如@Zeitounator在 OP 的评论中指出的那样,可以使用environmenttask 参数作为cryptography安装案例中的解决方法(@Zeitounator感谢您这样做(。

- name: PIP Install Requirements
win_shell: .venvScriptspip3.8 install -r requirements.txt
args:
chdir: c:directory
environment:
LIB: C:Program FilesOpenSSL-Win64lib
INCLUDE: C:Program FilesOpenSSL-Win64include

我在这里发布这个答案是因为我认为environment任务参数是一个有用的工具。

但是,它代表了原始问题的解决方法。 由于我认为这个问题很有用,所以我仍然对使用 Ansible 预置 Windows 环境变量的更好方法感兴趣。

相关内容

  • 没有找到相关文章

最新更新