Ansible Windows模块或命令来修剪或更改字符串变量

时间:2018-12-04 14:41:55

标签: windows powershell ansible windows-services

需要有关在为Windows运行Ansible Playbook时如何从变量中删除或获取子字符串的建议或想法。

说我有一个事实/变量,其中包含像这样的字符串

"c:apps\Directory\sub_directoty"

现在我需要操纵/修剪此字符串并获取一个新的事实/变量作为字符串:

"c:apps\Directory\"

我需要使用Powershell命令吗?

我的目的是,有一个Windows服务正在从另一个目录运行,我也需要在该服务指向的目录上安装更改。

我用来读取和捕获服务路径的剧本任务是通过以下方式完成的:

tasks:
- name: Check if a service is installed
  win_service:
    name: ServerName 
  register: LINKServerInfo

- debug: msg="path is {{ LINKServerInfo.path }}"

- name: set linkpath  
  set_fact: linkpath="{{ LINKServerInfo.path }}"

1 个答案:

答案 0 :(得分:0)

您都可以使用“ regex_replace” Ansible Filters

对于您的情况,

 `---
 - hosts: localhost
   gather_facts: false
   vars:
     a: 'c:apps\Directory\sub_directoty'
   tasks:
    - name: Replace
      set_fact: 
        b: "{{ a | win_dirname }}"
    - debug: msg="{{ b }}" 

输出::      "msg": "c:apps\\Directory"