node.js - How can wait until ansible script execute in nodejs -


i working on nodejs + ansible module, our module call ansible script, ansible script execute process in remote machine. render ansible result , view via fontend. while execute ansible script, browser goes connection reset.

my code:

 app.post('/create', function (req, res) {    var playbook = new ansible.playbook().playbook("m2install");     playbook.on('stdout', function (data) {         console.log(data.tostring());     });     playbook.on('stderr', function (data) {         console.log(data.tostring());     });     var command = playbook.inventory('inventories/m2install/hosts').verbose('v');     var promise = command.exec();     promise.then(function (successresult) {         tmp += "create magento setup";         tmp += successresult.output;         fs.unlink('roles/install/vars/main.yml', function (err) {             if (!err) {                 console.log('delete docker_variables.yml file ');             } else {                 console.log('not delete docker_variables.yml file');             }         });         res.render("result", {data: tmp, title: "magento setup  report"});     }, function (error) {         tmp += error;         res.render("result", {data: tmp, title: "magento setup  report"});     });    });     app.post('/setup', function (req, res) {        postcount = object.keys(req.body).length       console.log(postcount);        (var key in req.body) {            console.log(req.body[key]);            if (req.body[key] == "create") {               res.render('create', {title: 'magento setup form'});               sucesscount++;           }           }); 

my ansible playbook:

---  - name: build image , buildargs     docker_image:        path: /opt/test/dockerfiles/mysql        name: mysql    - name: build image , buildargs     docker_image:        path: /opt/test/dockerfiles/nginx        name: php_nginx    - name: create  mysql docker container     command: docker run -it -d --name m2_node_mysql --privileged mysql    - name: create  php+ nginx docker container     command: docker run -it -d --name php_nginx  --privileged php_nginx 

my ansible logs:

         mysql   using /etc/ansible/ansible.cfg config file     play [webservers] **************************************************************     task [gathering facts] *********************************************************    ok: [192.168.1.101]     task [mysql : install docker py] ***********************************************    changed: [192.168.1.101] => {"changed": true, "cmd": ["pip", "install", "docker-py"], "delta": "0:00:01.409080", "end": "2017-08-01 11:15:19.196183", "rc": 0, "start": "2017-08-01 11:15:17.787103", "stderr": "you using pip version 8.1.1, version 9.0.1 available.\nyou should consider upgrading via 'pip install --upgrade pip' command.", "stderr_lines": ["you using pip version 8.1.1, version 9.0.1 available.", "you should consider upgrading via 'pip install --upgrade pip' command."], "stdout": "requirement satisfied (use --upgrade upgrade): docker-py in /usr/lib/python2.7/site-packages\nrequirement satisfied (use --upgrade upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): websocket-client>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)", "stdout_lines": ["requirement satisfied (use --upgrade upgrade): docker-py in /usr/lib/python2.7/site-packages", "requirement satisfied (use --upgrade upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): websocket-client>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)"]}     task [mysql : build mysql image , buildargs] ****************************    1   mysql   using /etc/ansible/ansible.cfg config file     play [webservers] **************************************************************     task [gathering facts] *********************************************************    ok: [192.168.1.101]     task [mysql : install docker py] ***********************************************    changed: [192.168.1.101] => {"changed": true, "cmd": ["pip", "install", "docker-py"], "delta": "0:00:00.282909", "end": "2017-08-01 11:17:09.426975", "rc": 0, "start": "2017-08-01 11:17:09.144066", "stderr": "you using pip version 8.1.1, version 9.0.1 available.\nyou should consider upgrading via 'pip install --upgrade pip' command.", "stderr_lines": ["you using pip version 8.1.1, version 9.0.1 available.", "you should consider upgrading via 'pip install --upgrade pip' command."], "stdout": "requirement satisfied (use --upgrade upgrade): docker-py in /usr/lib/python2.7/site-packages\nrequirement satisfied (use --upgrade upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): websocket-client>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-py)\nrequirement satisfied (use --upgrade upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)", "stdout_lines": ["requirement satisfied (use --upgrade upgrade): docker-py in /usr/lib/python2.7/site-packages", "requirement satisfied (use --upgrade upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): websocket-client>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-py)", "requirement satisfied (use --upgrade upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)"]}     task [mysql : build mysql image , buildargs] ****************************    changed: [192.168.1.101] => {"actions": ["built image m2_node_mysql_test2:latest /opt/magento2/dockerfiles/mysql"], "changed": true, "image": {"architecture": "amd64", "author": "", "comment": "", "config": {"argsescaped": true, "attachstderr": false, "attachstdin": false, "attachstdout": false, "cmd": ["mysqld"], "domainname": "", "entrypoint": ["docker-entrypoint.sh"], "env": ["path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "gosu_version=1.7", "mysql_major=5.6", "mysql_version=5.6.37-1debian8"], "exposedports": {"3306/tcp": {}}, "hostname": "e24d0b5cccc1", "image": "sha256:c314e2de3d08e55873356869f05407e24586510110b1f95ff0e27a694b0608ed", "labels": {}, "onbuild": [], "openstdin": false, "stdinonce": false, "tty": false, "user": "", "volumes": {"/var/lib/mysql": {}}, "workingdir": ""}, "container": "144eb23225ba2e493f3918cfd02e8c4c1a810df5f50cc55cb9c3925436efec5a", "containerconfig": {"argsescaped": true, "attachstderr": false, "attachstdin": false, "attachstdout": false, "cmd": ["/bin/sh", "-c", "#(nop) cmd [\"mysqld\"]"], "domainname": "", "entrypoint": ["docker-entrypoint.sh"], "env": ["path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "gosu_version=1.7", "mysql_major=5.6", "mysql_version=5.6.37-1debian8"], "exposedports": {"3306/tcp": {}}, "hostname": "e24d0b5cccc1", "image": "sha256:c314e2de3d08e55873356869f05407e24586510110b1f95ff0e27a694b0608ed", "labels": {}, "onbuild": [], "openstdin": false, "stdinonce": false, "tty": false, "user": "", "volumes": {"/var/lib/mysql": {}}, "workingdir": ""}, "created": "2017-08-01t05:54:47.287482027z", "dockerversion": "1.10.3", "graphdriver": {"data": {"deviceid": "3240", "devicename": "docker-253:3-11010052-6d8fd3972362865502b6e401c81da0ddcb39058e379c008aeae17b382046b81c", "devicesize": "10737418240"}, "name": "devicemapper"}, "id": "sha256:b9a84cf1b66bd54dd24b92171ee7b5e52566bf1dfea5756ca7ae07736080e948", "os": "linux", "parent": "sha256:c314e2de3d08e55873356869f05407e24586510110b1f95ff0e27a694b0608ed", "repodigests": [], "repotags": ["m2_node_mysql_test2:latest"], "size": 298292364, "virtualsize": 298292364}}     play recap *********************************************************************    192.168.1.101              : ok=3    changed=2    unreachable=0    failed=0         changed: [192.168.1.101] => {"actions": ["built image m2_node_mysql_test2:latest /opt/magento2/dockerfiles/mysql"], "changed": true, "image": {"architecture": "amd64", "author": "", "comment": "", "config": {"argsescaped": true, "attachstderr": false, "attachstdin": false, "attachstdout": false, "cmd": ["mysqld"], "domainname": "", "entrypoint": ["docker-entrypoint.sh"], "env": ["path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "gosu_version=1.7", "mysql_major=5.6", "mysql_version=5.6.37-1debian8"], "exposedports": {"3306/tcp": {}}, "hostname": "e24d0b5cccc1", "image": "sha256:a0c53461849600d1ee4bfa7be732beb49470e961fce46e42853489b68317a6ec", "labels": {}, "onbuild": [], "openstdin": false, "stdinonce": false, "tty": false, "user": "", "volumes": {"/var/lib/mysql": {}}, "workingdir": ""}, "container": "c09b76549dc03e5ae0cb046853f0dd63f053ae9c8b47c6563a94220d87f56b3e", "containerconfig": {"argsescaped": true, "attachstderr": false, "attachstdin": false, "attachstdout": false, "cmd": ["/bin/sh", "-c", "#(nop) cmd [\"mysqld\"]"], "domainname": "", "entrypoint": ["docker-entrypoint.sh"], "env": ["path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "gosu_version=1.7", "mysql_major=5.6", "mysql_version=5.6.37-1debian8"], "exposedports": {"3306/tcp": {}}, "hostname": "e24d0b5cccc1", "image": "sha256:a0c53461849600d1ee4bfa7be732beb49470e961fce46e42853489b68317a6ec", "labels": {}, "onbuild": [], "openstdin": false, "stdinonce": false, "tty": false, "user": "", "volumes": {"/var/lib/mysql": {}}, "workingdir": ""}, "created": "2017-08-01t05:55:47.56392089z", "dockerversion": "1.10.3", "graphdriver": {"data": {"deviceid": "3262", "devicename": "docker-253:3-11010052-41d504d5ad8375f1f76d2af19a133982e189b31baeecfd775a133842cdbf0432", "devicesize": "10737418240"}, "name": "devicemapper"}, "id": "sha256:b8903c8b02f2b88db1a0b7ae9cbcfdd80188f63f37c5430167cf7e946069348b", "os": "linux", "parent": "sha256:a0c53461849600d1ee4bfa7be732beb49470e961fce46e42853489b68317a6ec", "repodigests": [], "repotags": ["m2_node_mysql_test2:latest"], "size": 298292364, "virtualsize": 298292364}}     play recap *********************************************************************    192.168.1.101              : ok=3    changed=2    unreachable=0    failed=0    

i need wait nodejs until ansible script execute.

note: node js called ansible module twice, see ansible log, suggest me why? if node call second time ansible module, browser goes connection reset.

suggest me, how , how fix issue.


Comments

Popular posts from this blog

html - How to custom Bootstrap grid height? -

javascript - pass values from mssql to views in node -

javascript - Understanding ExtJS Framework Syntax -