Невозможно выполнить команды ansible adhoc на бродячей коробке? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь выполнить команды ansible ad-hoc на vagrant vms, но получаю следующую ошибку.

vagrant@10.0.0.12 | FAILED! => {
"cache_update_time": 1543885371,
"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: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)\nE: Unable to lock the administration directory (/var/lib/dpkg/), are you root?\n",
"rc": 100,
"stderr": "E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)\nE: Unable to lock the administration directory (/var/lib/dpkg/), are you root?\n",
"stderr_lines": [
    "E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)",
    "E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?"
],
"stdout": "",
"stdout_lines": []

Мне удалось их пинговать нормально, и результаты пинга ниже,

vagrant@10.0.0.1 | SUCCESS => {
"changed": false,
"ping": "pong"
}

Я искал пару страниц переполнения стека и пытался изменить разрешения и даже удалил "/ var / lib / dpkg / lock", но ничего не получилось.

Конфигурация: Ubuntu 18.0 vms

версия vagrant: Vagrant 2.2.2

версия ansible: ansible 2.7.4 config file = None configured module search path = ['/Users/arunyantrapragada/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.7/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.7.1 (default, Nov 6 2018, 18:46:03) [Clang 10.0.0 (clang-1000.11.45.5)]

Команда, которую я пытаюсь запустить, является:

ansible servers -i inventory -m apt -a "name=httpd state=present"

Можеткто-то, пожалуйста, объясните мне, почему это происходит и как можно решить проблему, связанную с компрометацией проблем безопасности и разрывов для удаления файла блокировки, в "/var/lib/dpkg/lock".

1 Ответ

0 голосов
/ 05 декабря 2018

Вам необходимо добавить опцию --sudo к вашей команде.В противном случае, ansible попытается запустить apt-get как бродячий пользователь, но apt-get (как подсказывает сообщение об ошибке) необходимо запустить от имени пользователя root.

...