Я получаю сообщение: «Не удалось заблокировать apt для монопольной операции» при попытке установить некоторые зависимости в playbook с помощью apt с бродячим пользователем. Я подозреваю, что он говорит мне об этом, потому что не может аутентифицировать бродячего пользователя во время выполнения задачи.
Это объявление роли, которое я использую.
- name: ruby installer
hosts: all
sudo: True
sudo_user: vagrant
roles:
- ruby
И вот эта задача не удается:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
with_items:
- dependency
При удалении «update_cache = yes» и повторном запуске плейбука я получаю: E: Невозможно заблокировать административный каталог (/ var / lib / dpkg /), вы root?
Очевидно, что при запуске с root он работает отлично, но мне нужно, чтобы он запускался под другим пользователем, кроме root, из-за некоторых задач ruby (rvm, rbenv).
Как мне правильно аутентифицировать бродячего пользователя при запуске моей пьесы? Может ли кто-нибудь указать мне правильное направление?
Я закончил с этим объявлением роли:
- name: ruby installer
hosts: all
sudo: True
user: vagrant
roles:
- ruby
И эта задача для установки зависимостей:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
sudo_user: root
with_items:
-dependency
Теперь он использует root для задачи apt и vagrant для других задач ruby в playbook.
apt
устанавливает пакеты системного уровня, и поэтому для использования apt требуются привилегии, эквивалентные root.
Если вам нужно выполнить дальнейшие шаги по развертыванию приложения от имени другого пользователя, вам нужно будет вытащить эти шаги из процесса установки пакета deb.