Когда-то (я думаю, до версии 1.9) мы могли использовать -s для sudo в командной строке. Теперь это не работает. Я использую версию 2.85 в Ubuntu 18.04.
$ ansible all -m apt -a “name=httpd state=latest”
- это должно привести к ошибке отсутствия привилегий, но вместо этого ERROR! Extraneous options or arguments
$ ansible -s all -m apt -a “name=httpd state=latest”
- раньше работало когда-то,Также вместо -s
пробовал -b
и --become
- все дают - ОШИБКА! Посторонние параметры или аргументы
Также пробовал --become-user=root
- та же ошибка
Неправильный ли синтаксис командной строки - все это время менялось ?
Как мы решаем эту проблему - просто используем playbooks?
Обновление 1
Скопируйте выпуск цитаты из слова ms - в слове каким-то образом он преобразуется "в«- это то, как произошло это преобразование. Так что просто используйте блокнот.
Теперь заменили “ ”
на " "
и -b
. Попробовали это пошло дальше
ansible -b all -m apt -a "name=httpd state=latest"
Но ничего не получается: [ПРЕДУПРЕЖДЕНИЕ]: не удалось найти aptitude. Вместо этого используется apt-get
x.x.x.x | FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1570925983,
"cache_updated": false,
"changed": false,
"msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'httpd'' failed: E: Package 'httpd' has no installation candidate\n",
"rc": 100, ...
Не уверен, что означает эта ошибка - "Ошибка установки 'httpd': E: Пакет 'httpd' не имеет кандидата на установку ". Целевой машиной является ubuntu 18.04
Эта команда работает
apache2 (для debian) с -b (для sudo):
ansible -b all -m apt -a "name=apache2 state=latest"