我正在尝试配置 Ansible 以cryptography
Windows 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 的评论中指出的那样,可以使用environment
task 参数作为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 环境变量的更好方法感兴趣。