On 9/3/20 7:58 PM, Sebastian Collins wrote:
> I tried the command module before using the shell module.
> 
> I thought the command module was the wrong choice because when I run it, as 
> below, it simply hangs.
> 
> If I log on to the host I can see the ansible task has spawned the node.js 
> process but I suppose my playbook is hanging
> because it can't background it.
> 

Correct, npm doesn't do that. Use PM2.

Regards
         Racke

> Any ideas how to do this because the documentation has left me none the wiser.
> 
>    tasks:
> 
>       - name: execute startup script
>         command: npm start app.js
>         register: status
>         args:
>           chdir: "/apps/test/postcodes.io <http://postcodes.io>"
>         
>       - debug:
>           var: status
> 
> 
> 
> On Thu, Sep 3, 2020 at 5:52 PM Stefan Hornburg (Racke) <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>     On 9/3/20 5:45 PM, Sebastian Collins wrote:
>     > Thanks for your suggestion. PM2 actually looks really good. Great 
> monitoring metrics and ansible seems to
>     > seamlessly invoke it no problem:
>     >
>     > - name: Task17 - start nodejs - Step1 of 3 - execute startup script
>     >         shell: pm2 start app.js
>     >         register: status
>     >         args:
>     >           chdir: "/apps/test/postcodes.io <http://postcodes.io> 
> <http://postcodes.io>"
>     >         
>     >       - debug:
>     >           var: status
>     > ]
>     >
> 
>     Use command instead of shell module. See documentation.
> 
> 
>     > and provides a handy output to the terminal 
>     >
>     >
>     > "stdout": "[PM2] Applying action restartProcessId on app [app](ids: [ 0 
> ])\n[PM2] [app](0) ✓\n[PM2] Process
>     successfully
>     >
>     
> started\n┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐\n│
>     > id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺  
>   │ status    │ cpu      │ mem      │ user
>         │
>     > watching
>     >
>     
> │\n├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤\n│
>     > 0   │ app    │ default     │ 12.0.0  │ fork    │ 59888    │ 0s     │ 1  
>   │ online    │ 0%       │ 8.7mb    │
>     wasadm   │
>     > disabled
>     >
>     
> │\n└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘",
>     >         "stdout_lines": [
>     >             "[PM2] Applying action restartProcessId on app [app](ids: [ 
> 0 ])",
>     >             "[PM2] [app](0) ✓",
>     >             "[PM2] Process successfully started",
>     >            
>     >
>     
> "┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐",
>     >             "│ id  │ name   │ namespace   │ version │ mode    │ pid     
>  │ uptime │ ↺    │ status    │ cpu      │
>     mem  
>     >    │ user     │ watching │",
>     >            
>     >
>     
> "├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤",
>     >             "│ 0   │ app    │ default     │ 12.0.0  │ fork    │ 59888   
>  │ 0s     │ 1    │ online    │ 0%       │
>     8.7mb
>     >    │ wasadm   │ disabled │",
>     >            
>     >
>     
> "└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘"
>     >         ]
>     >     }
>     > }
>     >
>     >
>     > However, using pm2 has introduced other problems such as me failing to 
> have it read the process.env file that node had
>     > no issues with so now I am not listening on the intended port with the 
> custom credentials. No doubt there is a way
>     to do
>     > this but  before looking at adopting pm2 is there not just a simple fix 
> to my existing ansible task in order to launch
>     > "node start" and keep that process up and running?
>     >
> 
>     I'm sure that pm2 can regard your process.env file, but I think that is 
> beyond the topic of this group.
> 
>     And no, I neither have or want "just" a fix for your inferior hack, sorry.
> 
>     Regards
>              Racke
> 
>     >
>     >
>     > On Thu, Sep 3, 2020 at 1:20 PM Stefan Hornburg (Racke) 
> <[email protected] <mailto:[email protected]>
>     <mailto:[email protected] <mailto:[email protected]>>> wrote:
>     >
>     >     On 9/3/20 2:07 PM, Sebastian Collins wrote:
>     >     > Hi,
>     >     >
>     >     > I have this task and I can't for the life of me get it to keep 
> the process running. I have added in some
>     debug and it
>     >     > shows me the process is getting shutdown almost immediately after 
> it is started up as can be seen by the end
>     time
>     >     in the
>     >     > output I have provided below. Please advise how I can fix this so 
> that the process keeps on running as future
>     >     tasks are
>     >     > performed.
>     >     >
>     >     >   
>     >     >   - hosts: nodes
>     >     >     remote_user: root
>     >     >     become_user: test
>     >     >     become: true
>     >     >     tasks:
>     >     >
>     >     >       - name: execute startup script
>     >     >         shell: nohup npm start > test.out 2>&1 &
>     >     >         register: status
>     >     >         args:
>     >     >           chdir: "/apps/test/postcodes.io <http://postcodes.io> 
> <http://postcodes.io>"
>     >     >         
>     >     >       - debug:
>     >     >           var: status
>     >     >
>     >     >
>     >
>     >     Use a proper daemon process manager (PM2, 
> https://pm2.keymetrics.io/).
>     >
>     >     Regards
>     >             Racke
>     >
>     >     > Output:
>     >     >
>     >     > TASK [execute startup script] 
> ************************************************************
>     >     > changed: [host] => {"changed": true, "cmd": "nohup npm start > 
> test.out 2>&1 &", "delta": "0:00:00.006275",
>     "end":
>     >     > "2020-09-03 12:37:51.797561", "rc": 0, "start": "2020-09-03 
> 12:37:51.791286", "stderr": "", "stderr_lines": [],
>     >     > "stdout": "", "stdout_lines": []}
>     >     >
>     >     > TASK [debug]
>     >     >
>     
> ******************************************************************************************************************
>     >     > ok: [host] => {
>     >     >     "status": {
>     >     >         "changed": true,
>     >     >         "cmd": "nohup npm start > test.out 2>&1 &",
>     >     >         "delta": "0:00:00.006275",
>     >     >         "end": "2020-09-03 12:37:51.797561",
>     >     >         "failed": false,
>     >     >         "rc": 0,
>     >     >         "start": "2020-09-03 12:37:51.791286",
>     >     >         "stderr": "",
>     >     >         "stderr_lines": [],
>     >     >         "stdout": "",
>     >     >         "stdout_lines": []
>     >     >     }
>     >     > }
>     >     >
>     >     > If I go on to the host and run it manually it works:
>     >     >
>     >     > host:APACHE >nohup npm start > host.out 2>&1 &
>     >     > [1]     45428
>     >     > user@host:/apps/test/postcodes.io <http://postcodes.io> 
> <http://postcodes.io>
>     >     > host:APACHE > ps -ef | grep node
>     >     > user   45439 45428  3 12:54 pts/2    00:00:00 node server.js
>     >     >
>     >     >
>     >     > Any help much appreciated.
>     >     >
>     >     >
>     >     > --
>     >     > You received this message because you are subscribed to the 
> Google Groups "Ansible Project" group.
>     >     > To unsubscribe from this group and stop receiving emails from it, 
> send an email to
>     >     > [email protected] 
> <mailto:ansible-project%[email protected]>
>     <mailto:ansible-project%[email protected] 
> <mailto:ansible-project%[email protected]>>
>     >     <mailto:[email protected] 
> <mailto:ansible-project%[email protected]>
>     <mailto:ansible-project%[email protected] 
> <mailto:ansible-project%[email protected]>>>.
>     >     > To view this discussion on the web visit
>     >     > 
> https://groups.google.com/d/msgid/ansible-project/02be6001-7a5f-4f13-b478-199947412270n%40googlegroups.com
>     >     >
>     >   
>      
> <https://groups.google.com/d/msgid/ansible-project/02be6001-7a5f-4f13-b478-199947412270n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>     >
>     >
>     >     --
>     >     Ecommerce and Linux consulting + Perl and web application 
> programming.
>     >     Debian and Sympa administration. Provisioning with Ansible.
>     >
>     >     --
>     >     You received this message because you are subscribed to a topic in 
> the Google Groups "Ansible Project" group.
>     >     To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/ansible-project/wEC_V3rGxeg/unsubscribe.
>     >     To unsubscribe from this group and all its topics, send an email to
>     [email protected] 
> <mailto:ansible-project%[email protected]>
>     >     <mailto:ansible-project%[email protected] 
> <mailto:ansible-project%[email protected]>>.
>     >     To view this discussion on the web visit
>     >     
> https://groups.google.com/d/msgid/ansible-project/bd730ce8-9abc-cce9-1854-14457cd27475%40linuxia.de.
>     >
>     > --
>     > You received this message because you are subscribed to the Google 
> Groups "Ansible Project" group.
>     > To unsubscribe from this group and stop receiving emails from it, send 
> an email to
>     > [email protected] 
> <mailto:ansible-project%[email protected]>
>     <mailto:[email protected] 
> <mailto:ansible-project%[email protected]>>.
>     > To view this discussion on the web visit
>     >
>     
> https://groups.google.com/d/msgid/ansible-project/CAFqnG036tjLc%3DDkScJ_RtcQvuyZgx5YUA3ubqk4jYeHnngSiPQ%40mail.gmail.com
>     >
>     
> <https://groups.google.com/d/msgid/ansible-project/CAFqnG036tjLc%3DDkScJ_RtcQvuyZgx5YUA3ubqk4jYeHnngSiPQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> 
> 
>     -- 
>     Ecommerce and Linux consulting + Perl and web application programming.
>     Debian and Sympa administration. Provisioning with Ansible.
> 
>     -- 
>     You received this message because you are subscribed to a topic in the 
> Google Groups "Ansible Project" group.
>     To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/ansible-project/wEC_V3rGxeg/unsubscribe.
>     To unsubscribe from this group and all its topics, send an email to 
> [email protected]
>     <mailto:ansible-project%[email protected]>.
>     To view this discussion on the web visit
>     
> https://groups.google.com/d/msgid/ansible-project/1e256e75-78ce-ae98-30f8-71956757aa4b%40linuxia.de.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to
> [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CAFqnG01yOzodEKMz9sO5_chO3rRfVJLnkjNXqTxbL0p7Jxd%3Daw%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAFqnG01yOzodEKMz9sO5_chO3rRfVJLnkjNXqTxbL0p7Jxd%3Daw%40mail.gmail.com?utm_medium=email&utm_source=footer>.


-- 
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/fabc0952-4f74-f959-011d-97ed15fc4bfb%40linuxia.de.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to