我正试图配置Ansible来安装一个Python包。cryptography
到Windows 10上。 这需要预置两个环境变量。
C:\> set LIB=C:\OpenSSL-win64\lib;%LIB%
C:\> set INCLUDE=C:\OpenSSL-win64\include;%INCLUDE%
我想用Ansible的 win_environment
.
然而, 我不知道如何通过以下方式向环境变量添加前缀。win_environment
. 能否请您帮我解决一下?
我试过的
我尝试了以下任务。
- name: Set OpenSSL environment variables - LIB
win_environment:
name: LIB
level: machine
state: present
value: C:\Program Files\OpenSSL-Win64\lib;%LIB%
不幸的是,Ansible试图解释 %LIB%
作为一种路径,吐出。Invalid search path '%LIB%' specified in 'LIB environment variable' -- 'The system cannot find the path specified.
研究
这里的上位者也有同样的问题,只不过是针对于 Path
变量。 这是我的意见。
Path
环境变量。raw
或 register
. 我希望能有更简单的东西。版本
ansible==2.8.3
cryptography==2.6.1
正如 @Zeitounator 在 OP 的评论中指出的那样,可以使用 environment
任务参数作为 cryptography
安装案例(感谢@Zeitounator的帮助)。
- name: PIP Install Requirements
win_shell: .\venv\Scripts\pip3.8 install -r requirements.txt
args:
chdir: c:\directory
environment:
LIB: C:\Program Files\OpenSSL-Win64\lib
INCLUDE: C:\Program Files\OpenSSL-Win64\include
我在这里发布这个答案是因为我认为 environment
任务参数是一个有用的工具。
然而,它代表了原始问题的一个变通方法。 由于我认为这个问题是有用的,所以我仍然对使用Ansible预置Windows环境变量的更好方法感兴趣。