Необязательный командный модуль не может выполнять аргументы
Здесь существует Ansible noobie.
Проблема, с которой я сталкиваюсь, - это когда я использовал модуль "command" для выполнения команды, это не сработает. Пробовал это на удаленном хосте и локальном хосте.
ОСНОВНАЯ ИНФОРМАЦИЯ:
Версия: ansible 2.0.0 (devel 2c9d1257ba)
Ядро: (снято HEAD 5983d64d77) Последнее обновление: 2015/05/30 07:22:33 (GMT +800)
Дополнительно: (снято HEAD 1276420a3a) Последнее обновление: 2015/05/30 07:22:41 (GMT +800)
Файл Ansible Host
local ansible_ssh_host=127.0.0.1 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=a
Команда
ansible -i ansible_hosts -m command -a "/usr/bin/ls" local
Фактический результат
local | FAILED! => {u'msg': u'Traceback (most recent call last):\r\n
File
"/root/.ansible/tmp/ansible-tmp-1436165888.5-23845581569171/command",
line 2139, in <module>\r\n main()\r\n File
"/root/.ansible/tmp/ansible-tmp-1436165888.5-23845581569171/command",
line 158, in main\r\n module =
CommandModule(argument_spec=dict())\r\n File
"/root/.ansible/tmp/ansible-tmp-1436165888.5-23845581569171/command",
line 606, in __init__\r\n self._check_for_check_mode()\r\n File
"/root/.ansible/tmp/ansible-tmp-1436165888.5-23845581569171/command",
line 1142, in _check_for_check_mode\r\n for (k,v) in
self.params.iteritems():\r\nAttributeError: \'tuple\' object has no
attribute \'iteritems\'\r\n', u'failed': True, u'changed': False,
u'parsed': False, u'invocation': {u'module_name': u'command',
u'module_args': {u'_raw_params': u'/usr/bin/ls'}}}
Что-то не так в моей конфигурации?
Ответы
Ответ 1
Похоже, этот вопрос был разрешен, запустив git submodule update --init --recursive
в режиме проверки Ansible, который использовался.
Если другие сталкиваются с одной и той же проблемой, самым простым решением будет установка Ansible из диспетчера системных пакетов хоста, с которого он выполняется, или pip install Ansible
в virtualenv.