Kia*_*far 5 windows path ansible
使用 win_environment,可以向 Windows 主机添加/删除环境变量。但是要修改已经存在的变量,win_environment 似乎没有用,因为您无法读取旧值来修改和更新变量。正确的?
编辑:从 Ansible 2.3 开始,win_path模块为您完成所有繁重的工作。只需给它一个应该出现在路径中的项目列表,它就会确保它们存在并且按照您指定的相对顺序。
(如果您仍在使用 Ansible 的旧版本,则仍然可以使用以下方法)
为了让它正常工作,您需要与替换和搜索过滤器结合使用,以便仅在您想要的值不存在时才进行更改。例如(这是针对 Ansible 1.9 的):
- raw: echo %PATH%
register: path_out
- win_environment:
name: path
value: "{{ path_out.stdout | regex_replace('[\r\n]*', '') + ';C:\\\\newpath' }}"
state: present
level: machine
when: not (path_out.stdout | search("(?i)c:\\\\newpath"))
Run Code Online (Sandbox Code Playgroud)
这比应有的要困难得多——我想为 2.0 破解一个 win_path 模块,以使其更容易......
对于 2.0,raw在 Powershell 下运行,因此您需要Get-Item env:PATH改为。