
Recibo el mensaje "Error al bloquear apt para operación exclusiva" cuando intento instalar algunas dependencias en un libro de estrategias usando apt, con el usuario vagabundo. Sospecho que me dice esto porque no puede autenticar al usuario vagabundo mientras ejecuta la tarea.
Esta es la declaración de rol que estoy usando.
- name: ruby installer
hosts: all
sudo: True
sudo_user: vagrant
roles:
- ruby
Y esta es la tarea que falla:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
with_items:
- dependency
Al eliminar "update_cache=yes" y volver a ejecutar el libro de estrategias, aparece: E: No se puede bloquear el directorio de administración (/var/lib/dpkg/), ¿eres root?
Obviamente, cuando lo ejecuta con root funciona perfectamente bien, pero necesito que se ejecute con un usuario diferente al de root debido a algunas tareas de Ruby (rvm, rbenv específicas).
¿Cómo autentico correctamente al usuario vagabundo cuando ejecuto mi libro de jugadas? ¿Alguien me puede apuntar en la dirección correcta?
Respuesta1
Terminé con esta declaración de rol:
- name: ruby installer
hosts: all
sudo: True
user: vagrant
roles:
- ruby
Y esta tarea para instalar las dependencias:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
sudo_user: root
with_items:
-dependency
Ahora usa root para la tarea apt y vagrant para las otras tareas de Ruby en el libro de jugadas.
Respuesta2
apt
instala paquetes a nivel de sistema y, como tal, usar apt requiere privilegios equivalentes a root.
Si necesita realizar más pasos de implementación de la aplicación como un usuario diferente, deberá eliminar esos pasos del proceso de instalación del paquete deb.