Hi,
we are using Ansible 1.8.2, and we stumbled upon a problem after copying and unarchiving a (large) file:
failed: [myhost.com] => {"failed": true}
msg: Failed to find handler to unarchive. Make sure the required command to extract the file is installed.
msg: Failed to find handler to unarchive. Make sure the required command to extract the file is installed.
The task(s) looks like:
- name: copy artifact to the target machine
copy: src={{ local_nexus_jar.dest }} dest={{ remote_transfer_dir }}
- name: prepare | unarchive deployment package on target node directly to target directory
unarchive:
copy='no'
src="{{remote_transfer_dir}}/{{wls_artifactId}}-{{wls_version}}.{{wls_type}}"
dest="/opt/wls/"
The file we´ve previously downloaded has these attributes:
ok: [myhost.com] => {
...
"local_nexus_jar": { "package": "tar.gz", "proxy": null, "size": 849995522,
...
After transfering it to the remote host it looks like:
changed: [myhost.com] => {"changed": true, ...}
dest: /opt/wls/transfer/wls-patched-12.1.3.0.0-SNAPSHOT.tar.gz
...
size: 629563392
src: /home/wls_de/.ansible/tmp/ansible-tmp-1435185465.25-138644251456481/source
state: file
uid: 507
After wondering a while we 1st found out that the copied file is corrupted (see filesize above)
Than we found out why:
The
had´nt have enough disk space due to limited $HOME directory in our environments !
I´m wondering why:
* the copy task doesn´t fail due to "out of disk space" ?
* why do we see "Failed to find handler to unarchive" instead of I/O Error due to corrupted archive here ?
We worked around that problem by using synchronize Module - but an explanation would be nice, additionally a hint in the documentation of the copy Module.
Thanx for any reply,
Torsten