我有一个使用ansible命令的yml文件。在文件中,我将服务位置附加到现有环境路径,如下所示:
 -name: retreiving the path
  raw: $ENV:PATH
  register: path_out
- name: adding the services to the environment path
  raw: SETX /M PATH "$ENV:PATH;{{item.service_path}}" 
  with_items:
    "{{ services }}"因此,每次执行脚本时都会发生的情况是,它会将服务路径附加到现有的环境路径中,即使之前添加了相同的服务路径,这也会一次又一次地附加相同的服务路径。因此,我想要的是有一个检查,以验证是否已经添加了service_path,它不会在结束时再次追加它。我试着追随,但没有帮助:
- name: adding the services to the environment path
  raw: SETX /M PATH "$ENV:PATH;{{item.service_location}}" 
  with_items:
    "{{ services }}"
  when : ansible_env.PATH;{{item.service_location}}.exists is not defined根本不能用,请帮帮忙怎么检查?平台是我正在使用的windows
发布于 2017-02-15 18:54:20
您不应该修改PATH变量本身。而是修改/etc/environment中的路径,或者设置每个任务的路径(如果只在那里使用)。
在这里可以找到一个很好的例子:https://coderwall.com/p/ynvi0q/updating-path-with-ansible-system-wide
- name: add {{extra_path}} to path
  lineinfile: >
  dest=/etc/environment
  state=present
  backrefs=yes
  regexp='PATH=(["]*)((?!.*?{{extra_path}}).*?)(["]*)$'
  line="PATH=\1\2:{{extra_path}}\3"https://stackoverflow.com/questions/42245481
复制相似问题