Signed-off-by: Andrei Stepanov astepano@redhat.com
Examples:
[root@qeos-21 ~]# export TEST_SUBJECTS=/tmp/atomi.qcow2 [root@qeos-21 ~]# ./standard-inventory-qcow2 --list [root@qeos-21 ~]# cat artifacts/default_provisioners.log 2018-06-25 10:24:33,108 [standard-inventory-qcow2/MainThread ] [INFO ]: Start provisioner. 2018-06-25 10:24:33,116 [standard-inventory-qcow2/MainThread ] [INFO ]: Launching virtual machine for /tmp/atomi.qcow2 2018-06-25 10:24:36,814 [standard-inventory-qcow2/MainThread ] [INFO ]: Fatal error in provision script. Traceback (most recent call last): File "./standard-inventory-qcow2", line 402, in <module> main(sys.argv) File "./standard-inventory-qcow2", line 131, in main data = inv_list(opts.subjects) File "./standard-inventory-qcow2", line 140, in inv_list host_vars = inv_host(subject) File "./standard-inventory-qcow2", line 302, in inv_host raise RuntimeError("qemu failed to launch qcow2 image: {0}".format(image)) RuntimeError: qemu failed to launch qcow2 image: /tmp/atomi.qcow2
[root@qeos-21 ~]# export TEST_SUBJECTS=/tmp/atomic.qcow [root@qeos-21 ~]# ./standard-inventory-qcow2 --list {}[root@qeos-21 ~]cat artifacts/default_provisioners.log 2018-06-25 10:25:38,620 [standard-inventory-qcow2/MainThread ] [INFO ]: Start provisioner. 2018-06-25 10:25:38,620 [standard-inventory-qcow2/MainThread ] [INFO ]: Return empty inventory for image: /tmp/atomic.qcow.
Or your script have bug, like echo(a)
echo(a)
[root@qeos-21 ~]# export TEST_SUBJECTS=/tmp/atomic.qcow2 [root@qeos-21 ~]# ./standard-inventory-qcow2 --list [root@qeos-21 ~]# cat artifacts/default_provisioners.log 2018-06-25 10:28:01,922 [standard-inventory-qcow2/MainThread ] [INFO ]: Start provisioner. 2018-06-25 10:28:01,922 [standard-inventory-qcow2/MainThread ] [INFO ]: Fatal error in provision script. Traceback (most recent call last): File "./standard-inventory-qcow2", line 403, in <module> main(sys.argv) File "./standard-inventory-qcow2", line 128, in main echo(a) NameError: global name 'echo' is not defined
Good run, when: 1. stdout is Ansible inventory. 1. logs have additional info
[root@qeos-21 ~]# ./standard-inventory-qcow2 --list { "subjects": { "hosts": [ "/tmp/atomic.qcow2" ], "vars": {} }, "_meta": { "hostvars": { "/tmp/atomic.qcow2": { "ansible_ssh_common_args": "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no", "ansible_port": "5350", "ansible_ssh_private_key_file": "/tmp/inventory-cloudyfnkha/identity", "ansible_python_interpreter": "/usr/bin/python2", "ansible_ssh_pass": "foobar", "ansible_user": "root", "ansible_host": "127.0.0.3" } } }, "localhost": { "hosts": [ "/tmp/atomic.qcow2" ], "vars": {} } }[root@qeos-21 ~]# cat artifacts/default_provisioners.log 2018-06-25 10:29:18,640 [standard-inventory-qcow2/MainThread ] [INFO ]: Start provisioner. 2018-06-25 10:29:18,649 [standard-inventory-qcow2/MainThread ] [INFO ]: Launching virtual machine for /tmp/atomic.qcow2 2018-06-25 10:30:51,333 [standard-inventory-qcow2/MainThread ] [INFO ]: ssh -p 5350 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /tmp/inventory-cloudyfnkha/identity root@127.0.0.3 2018-06-25 10:30:51,334 [standard-inventory-qcow2/MainThread ] [INFO ]: Password is: foobar 2018-06-25 10:30:51,334 [standard-inventory-qcow2/MainThread ] [INFO ]: Cloudinit init location: /tmp/inventory-cloudyfnkha 2018-06-25 10:30:51,334 [standard-inventory-qcow2/MainThread ] [INFO ]: export ANSIBLE_INVENTORY=/tmp/inventory-cloudyfnkha/inventory 2018-06-25 10:30:51,334 [standard-inventory-qcow2/MainThread ] [INFO ]: Wait until parent for provision-script (ansible-playbook) dies or qemu.
Good run when: 1. TEST_DEBUG=1 2. stderr has all messages as logfile.
TEST_DEBUG=1 ./standard-inventory-qcow2 --list [INFO ] standard-inventory-qcow2: Start provisioner. [INFO ] standard-inventory-qcow2: Launching virtual machine for /tmp/atomic.qcow2 [INFO ] standard-inventory-qcow2: qemu-kvm is running with VNC server. PID: 4146 [INFO ] standard-inventory-qcow2: netstat -ltpn4 | grep 4146 # to find VNC server port [INFO ] standard-inventory-qcow2: ssh -p 2405 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /tmp/inventory-cloudt42WkD/identity root@127.0.0.3 [INFO ] standard-inventory-qcow2: Password is: foobar [INFO ] standard-inventory-qcow2: Cloudinit init location: /tmp/inventory-cloudt42WkD [INFO ] standard-inventory-qcow2: export ANSIBLE_INVENTORY=/tmp/inventory-cloudt42WkD/inventory [INFO ] standard-inventory-qcow2: Wait until parent for provision-script (ansible-playbook) dies or qemu. { "subjects": { "hosts": [ "/tmp/atomic.qcow2" ], "vars": {} }, "_meta": { "hostvars": { "/tmp/atomic.qcow2": { "ansible_ssh_common_args": "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no", "ansible_port": "2405", "ansible_ssh_private_key_file": "/tmp/inventory-cloudt42WkD/identity", "ansible_python_interpreter": "/usr/bin/python2", "ansible_ssh_pass": "foobar", "ansible_user": "root", "ansible_host": "127.0.0.3" } } }, "localhost": { "hosts": [ "/tmp/atomic.qcow2" ], "vars": {} } }[root@qeos-21 ~]#
fixes #206
rebased onto d71b197e19ff21e28f9b9a2696dd721a27cf7658
pretty please pagure-ci rebuild
rebased onto e062120f9b4a74acac598b5b9b2178855d1835e4
Commit bb3bb90e fixes this pull-request
Pull-Request has been merged by astepano
Signed-off-by: Andrei Stepanov astepano@redhat.com