Exécution du service avec systemd en tant qu'user par défaut via ansible en ec2 (request le mot de passe)

J'essaie d'utiliser le script Ansible suivant (partie d'un livre de lecture) pour exécuter unicorn via systemd pour une application Rails sur EC2 (micro) instance:

 --- - name: restart unicorn command: psql -h {{ db_host }} -U {{ db_user }} -d {{ db }} -c "SELECT true FROM pg_tables WHERE tablename = 'order_cycles';" register: table_exists ignore_errors: yes sudo: yes sudo_user: "{{ unicorn_user }}" notify: restart unicorn step 2 #TODO make sure both of these things run as one handler. - name: restart unicorn step 2 service: name: unicorn_{{ app }} state: restarted when: table_exists.stderr.find('does not exist') == -1 # If unicorn isn't actually started yet we probably need this: notify: start unicorn - name: start unicorn service: name: unicorn_{{ app }} state: started 

L'user configuré dans le playbook est ubuntu , l'user par défaut (EC2) et je frappe une erreur d' Interactive authentication required là-bas, alors j'essaye juste de dépanner directement dans la command line du server de deployment et je suis venu sur ce barrage routier.

Je peux l'exécuter comme sudo:

 $ sudo systemctl start unicorn_myapp.service 

Soit directement via la command line du server, soit en utilisant la méthode brute d'Ansible , qui réussit.

Mais alors, le server de rails, exécuté par l'user ubuntu ne peut pas y accéder (au less, c'est une avenue que je search pour cause de .sock failed (111: Connection refused erreur de .sock failed (111: Connection refused ).

Si je l'exécute sans sudo, un mot de passe est demandé, mais dans la mesure où je peux le dire, EC2 ubuntu user s'exécute sans mot de passe.

Je sais qu'une solution de rechange pourrait être de créer un nouvel user avec le mot de passe , les rails d'exécution et systemctl / unicorn comme cet user, mais je ne pense pas que ce soit la réponse réelle à ce problème, d'autant plus que le développeur du playbook a récemment supprimé le user_password du mannequin tout à fait pour des raisons de security.

Si je peux comprendre comment exécuter systemd tant qu'user non root, je peux peut-être comprendre comment faire Ansible réussir.

Bien sûr, il est également peu probable que je l'approche du mauvais angle en premier lieu, car je suis assez nouveau pour presque tout ce scénario implique.

  • Démarrez un programme avec systemd
  • systemd redis.service ne permet pas les connections socket unix?
  • Le service de search élastique diminue souvent ou est tué
  • Créer un répertoire sous / var / run au démarrage
  • Automount scriptless pour systèmes Linux système
  • Comment exécuter plusieurs instances redis avec systemd
  • noeud de vernis n'écoute pas sur le port configuré
  • PostgreSQL n'écoute pas sur l'eth1 local après le redémarrage
  • redémarrage automatique de php-fpm sur segfault
  • Comment cette variable d'échappement fonctionne-t-elle dans un file unité système?
  • Le service Systemd démarre avec une valeur de port dynamic depuis Docker
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.