2017-08-28 2 views
1

Je suis nouveau à ansible et essayais de configurer mes multiples instances ec2 en utilisant l'outil de gestion de configuration.Exécution à jamais des tâches de noeud à partir du script shell en utilisant ansible sur les instanses ec2

J'ai été capable de l'exécuter. Cependant, je suis coincé à la fin de fag. J'ai un script shell (à exécuter par le Playbook) qui a autre tâche à l'intérieur à savoir:

forever start app.js 
forever start serverScripts.js 

Le script ne fonctionne, mais l'application n'est pas instancié avec pour toujours. Quand je n'énumère jamais il montre

« Aucun processus toujours en cours d'exécution »

mais les processus de nœud ne fonctionne en arrière-plan (ci-dessous).

racine 9725 65,0 6,1 933920 125432? 17:35 00:02 sl/usr/bin/nodejs app.js

commande utilisé dans le PlayBook:

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 

me conduiras de bien vouloir accomplir exécution du script de la même manière exacte par toujours!

+0

Quel utilisateur avez-vous exécuté votre playbook? Voyez-vous le processus permanent lorsque vous essayez d'exécuter 'forever list' comme cet utilisateur? Pouvez-vous inclure votre playbook et la commande que vous utilisez pour appeler le playbook? – kfreezy

+0

Courir en tant que root. Oui, quand je l'exécute manuellement sur le serveur, il fonctionne normalement avec toujours. –

+0

probablement cela pourrait aider: https://immortal.run/post/ansible/ – nbari

Répondre

0

Vous pouvez voir les processus forever avec forever list lorsque vous utilisez le même utilisateur que celui qui a démarré. Dans ce cas, c'est la racine.

sudo su - root -c "forever list" 

Si vous voulez toujours exécuter en tant qu'utilisateur différent, définissez le become_user à quelque chose d'autre dans votre PlayBook.

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 
    become_user: some_other_user