Добавьте имя хоста ко всем строкам в файле на удаленном сервере Windows, используя ansible - PullRequest
0 голосов
/ 09 июля 2019

У меня есть CSV-файл, как показано ниже. Число строк в файле может отличаться.

admin_server, id:1, /tmp
admin_group, id:3, /home
user_group, id:5, /root

Мне нужно добавить имя хоста к каждой строке в файле. то есть мне нужно добавить столбец 1, который будет иметь имя хоста.

1-й сервер:

server1,admin_server, id:1, /tmp
server1,admin_group, id:3, /home
server1,user_group, id:5, /root

2-й сервер.

server2,admin_server, id:1, /tmp
server2,admin_group, id:3, /home
server2,user_group, id:5, /root

В linux использовался модуль замены, и он работал нормально. Но в windows модуль замены не работает. Пожалуйста, посоветуйте.

То, что я пробовал, как показано ниже Он не работает, он просто добавляет имя хоста в конец файла.

- name: Test
    win_lineinfile:
     path: /tmp/testing.log
     line: '"{{ansible_hostname}}"\1'
     regexp: '^(.*)$'

1 Ответ

0 голосов
/ 09 июля 2019

Попробуйте следующее, поскольку модуль win_lineinfile заменяет только последнее совпадение.

модуль win_template

- name: Create a file from a Jinja2 template
  win_template:
    src: file.conf.j2
    dest: C:\Temp\file.conf

Измените файл file.conf.j2

{{ansible_hostname}},admin_server, id:1, /tmp
{{ansible_hostname}},admin_group, id:3, /home
{{ansible_hostname}},user_group, id:5, /root

Еслиansible_hostname не работает, установите переменную в playbook и попробуйте.

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