首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何应用check in ansible来验证环境路径是否已经存在?

如何应用check in ansible来验证环境路径是否已经存在?
EN

Stack Overflow用户
提问于 2017-02-15 17:33:04
回答 1查看 125关注 0票数 1

我有一个使用ansible命令的yml文件。在文件中,我将服务位置附加到现有环境路径,如下所示:

代码语言:javascript
运行
复制
 -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,它不会在结束时再次追加它。我试着追随,但没有帮助:

代码语言:javascript
运行
复制
- 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

EN

Stack Overflow用户

发布于 2017-02-15 18:54:20

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

在这里可以找到一个很好的例子:https://coderwall.com/p/ynvi0q/updating-path-with-ansible-system-wide

代码语言:javascript
运行
复制
- 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"
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42245481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档