Повышение привилегированных привилегий - стать - PullRequest
0 голосов
/ 12 октября 2019

Когда-то (я думаю, до версии 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"

Ответы [ 3 ]

2 голосов
/ 13 октября 2019

Проблема в том, что в Ubuntu нет пакета с именем httpd, который объясняется в сообщении об ошибке здесь: failed: E: Package 'httpd' has no installation candidate

Семейство дистрибутивов Red Hat (RHEL, CentOS и Fedora)называет его httpd, потому что это технически то, что имя исходного проекта , где, как семейство дистрибутивов Debian (к которому Ubuntu относится как к потомку Debian), оно называется apache2, потому что в период расцветаСтек LAMP сервис httpd обычно назывался просто «Apache», и в настоящее время мы находимся в основной версии 2.

1 голос
/ 14 октября 2019

Как упоминалось выше, httpd в Ubuntu называется apache2, поэтому вы можете использовать приведенную ниже команду.

ansible all -m apt -a "name=apache2 state=latest"
1 голос
/ 13 октября 2019

Я думаю, вам просто нужно заменить ваши кавычки на простые двойные или одинарные кавычки:

ansible all -m apt -a "name=httpd state=latest"

или

ansible all -m apt -a 'name=httpd state=latest'

Ваша оболочка, вероятно, не распознает открытие / закрытиекавычки, которые вы используете, так что ansible получает “name=httpd в качестве аргумента опции -a и не знает, что делать с state=latest”.

...