Невозможно скопировать каталог с помощью модуля копирования Ansible

Я пытался скопировать каталог (в Linux) на удаленный узел Windows. Я могу копировать отдельные файлы без каких-либо проблем. Но когда я пытался скопировать каталог, я получал следующую ошибку.

Окружающая среда: Windows 7

Команда: ansible --verbose Windows -m copy -a "src = ~ / Releases dest = C: \ Ansible"

Ошибка:

10.8.0.4 | FAILED => Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 561, in _executor
    exec_rc = self._executor_internal(host, new_stdin)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 666, in _executor_internal
    return self._executor_internal_inner(host, self.module_name, self.module_args, inject, port, complex_args=complex_args)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 884, in _executor_internal_inner
    result = handler.run(conn, tmp, module_name, module_args, inject, complex_args)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/action_plugins/copy.py", line 252, in run
    module_return = self.runner._execute_module(conn, tmp_path, 'copy', module_args_tmp, inject=inject, complex_args=complex_args, delete_remote_tmp=delete_remote_tmp)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 483, in _execute_module
    argsfile = self._transfer_str(conn, tmp, 'arguments', utils.jsonify(utils.parse_kv(args)))
  File "/usr/lib/python2.7/dist-packages/ansible/utils/__init__.py", line 690, in parse_kv
    vargs = split_args(args)
  File "/usr/lib/python2.7/dist-packages/ansible/module_utils/splitter.py", line 182, in split_args
    raise Exception("error while splitting arguments, either an unbalanced jinja2 block or quotes")
Exception: error while splitting arguments, either an unbalanced jinja2 block or quotes

person Anuradha Fernando    schedule 27.01.2015    source источник


Ответы (2)


В настоящее время Ansible имеет довольно ограниченный набор модулей для Windows, и я не верю, что копия модуль поддерживается для систем Windows. Версии модулей копирования, файлов и шаблонов для Windows были недавно приняты в проект ansible-modules-core на github. Похоже, они зависят от отдельного самого запроса на перенос в доступный, и он, по-видимому, планируется быть доступным в доступной версии 1.9. Когда они станут доступны, модули будут называться win_copy, win_file и win_template.

person Bruce P    schedule 02.02.2015
comment
По-другому, я думал, мы можем .zip папку и скопировать .zip файл в удаленный узел Windows, а затем легко распаковать его из сценария ps. - person Anuradha Fernando; 04.02.2015

Да, полностью согласен с Брюсом.

Я нашел ОЧЕНЬ полезный модуль - copy.ps1.

https://gist.github.com/tkinz27/fd92ba9af0e0309614ee

А потом все заработало :-)

Важно: вам необходимо обновить Windows (7) Powershell до версии 4.0.

И да, действительно приятно видеть новых функционалистов Windows для Ansible.

person Anuradha Fernando    schedule 03.02.2015