Ansible Windows如何向系统环境变量添加前缀?

问题描述 投票:0回答:1

我正试图配置Ansible来安装一个Python包。cryptography 到Windows 10上。 这需要预置两个环境变量。

C:\> set LIB=C:\OpenSSL-win64\lib;%LIB%
C:\> set INCLUDE=C:\OpenSSL-win64\include;%INCLUDE%

cryptography docs on this

我想用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.


研究

如何使用ansible扩展windows路径变量

这里的上位者也有同样的问题,只不过是针对于 Path 变量。 这是我的意见。

  • 我的用例不是 Path 环境变量。
  • 目前的答案基本都是通过使用 rawregister. 我希望能有更简单的东西。

版本

ansible==2.8.3
cryptography==2.6.1
ansible environment-variables ansible-2.x prepend
1个回答
0
投票

正如 @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环境变量的更好方法感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.