Модуль или команда Ansible windows для обрезки или изменения строковой переменной - PullRequest
0 голосов
/ 04 декабря 2018

Нужно предложение или идея о том, как удалить или получить подстроку из переменной при запуске ANSIBLE Playbook для Windows.

Скажем, у меня есть факт / переменная, которая содержит строку типа

"c:apps\Directory\sub_directoty"

Теперь мне нужно манипулировать / обрезать эту строку и получить новый факт / переменную в виде строки:

"c:apps\Directory\"

Нужно ли использовать команды Powershell?

Моя цель в том, чтобыслужба Windows, запущенная из другого каталога, и мне нужно установить изменение в каталоге, на который указывает служба.

Мои задачи playbook для чтения и записи пути службы выполняются с помощью приведенного ниже:

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 голосов
/ 12 декабря 2018

Либо вы можете использовать "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"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...