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
Post a Comment