2 votes

Comment authentifier un utilisateur sur des tâches spécifiques à l'aide d'Ansible ?

Je reçois le message d'erreur 'msg: Failed to lock apt for exclusive operation' lorsque j'essaie d'installer certaines dépendances dans un playbook en utilisant apt, avec l'utilisateur vagrant. Je soupçonne que cela me dit cela parce qu'il ne peut pas authentifier l'utilisateur vagrant lors de l'exécution de la tâche.

Voici la déclaration de rôle que j'utilise.

- name: ruby installer
  hosts: all
  sudo: True
  sudo_user: vagrant
  roles:
  - ruby

Et voici la tâche qui échoue:

    - name: Install ruby building dependencies
      apt: name={{ item }} 
           state=installed 
           update_cache=yes

      with_items:
      - dependency

En supprimant "update_cache=yes" et en relançant le playbook, j'obtiens : E: Impossible de verrouiller le répertoire d'administration (/var/lib/dpkg/), êtes-vous root?

Évidemment, lorsque je le lance avec root, cela fonctionne parfaitement, mais j'ai besoin qu'il s'exécute sous un utilisateur différent de root en raison de certaines tâches spécifiques à ruby (rvm, rbenv).

Comment puis-je authentifier correctement l'utilisateur vagrant lors de l'exécution de mon playbook ? Quelqu'un peut-il me mettre dans la bonne direction ?

5voto

Leather Points 177

J'ai fini avec cette déclaration de rôle:

- name: installateur ruby
  hosts: all
  sudo: True
  user: vagrant
  roles:
  - ruby

Et cette tâche pour installer les dépendances:

- name: Installer les dépendances de construction de ruby
  apt: name={{ item }} 
       state=installed 
       update_cache=yes
  sudo_user: root

  with_items:
  -dependency

Il utilise désormais root pour la tâche apt et vagrant pour les autres tâches ruby dans le playbook.

0voto

Samat Jain Points 165

apt installe des paquets au niveau du système et en tant que tel, l'utilisation d'apt nécessite des privilèges équivalents à ceux de l'administrateur.

Si vous devez effectuer d'autres étapes de déploiement d'application en tant qu'utilisateur différent, vous devrez extraire ces étapes de votre processus d'installation de paquet deb.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X