如何申请检查以确认是否存在环境路径?

时间:2017-02-15 09:33:04

标签: windows ansible

我有一个使用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

它根本不起作用请帮忙怎么检查?平台是我正在工作的窗口

1 个答案:

答案 0 :(得分:0)

您不应修改PATH变量本身。而是修改/ etc / environment中的PATH,或者如果仅在那里使用PATH,则设置每个任务的PATH。

可以在这里找到一个很好的例子: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"