

Vagrant(CentOS6)でローカル環境の構築をしております。  
Ansibleを使いDjangoをuWsgi + Nginx上で動かせるようにしたいと考えています。  
このためuWsgiをバックグラウンドプロセスで起動したいと考えています。

[AnsibleはSSHでリモートOSに接続する](http://inokara.hateblo.jp/entry/2015/07/03/100057
"AnsibleはSSHでリモートOSに接続する")ため、  
SSHを抜けるとプロセスが継続しないことがわかりました。

上記のリンクを参考にすると、  
asyncは非同期処理を行う時間で、  
pollは非同期処理の確認をする時間らしく、  
これらを設定するとバックグラウンドでプロセスの起動が継続されると書いてあり  
下記のようにAnsibleスクリプト記述しましたが、

[code]

    - name:
      shell: bash -lc "/home/vagrant/.pyenv/versions/3.6.0/envs/myproject/bin/uwsgi --ini /home/myproject/uwsgi.ini &"
      args:
        chdir: /home/myproject/
      become: false
      async: 5
      poll: 0
    
[/code]

プロセスの起動が継続されませんでした。  
Ansibleを使い、プロセスのバックグラウンドでの起動が継続できるようにする方法はありますか？  
よろしくお願いします。


CC BY-SA 3.0
2017-08-05T19:24:56.210
36968
2018-03-23T01:57:30.993
2017-08-06T02:37:03.473
7918
7918
question
ssh ansible
Ansibleでバックグラウンドプロセスを起動したい。


回答して頂いてありがとうございます。  
自己解決しましたので記述します。

こちら、下記のようにbashをフルパスで記述すると想定通りの動作をしました。

変更前

[code]

    shell: bash -lc "/home/vagrant/.pyenv/versions/3.6.0/envs/myproject/bin/uwsgi --ini /home/myproject/uwsgi.ini &"
    
[/code]

変更後

[code]

    shell: /bin/bash -lc "/home/vagrant/.pyenv/versions/3.6.0/envs/myproject/bin/uwsgi --ini /home/myproject/uwsgi.ini &"
    
[/code]


CC BY-SA 3.0
2017-08-06T18:19:18.087
36982
2017-08-06T18:19:18.087
7918
36968
answer