问题描述
我的 zip 文件包含一个文件夹 UAT-04022021_01
,其中包含多个文件。
我本地ansible服务器上的ls输出zip实现文件及其内容如下:
-rwxrwxr-x 1 user1 user1 171910544 Feb 4 07:02 /web
/playbooks/automation/deployments/tmpfiles/04/UAT-04022021_01.zip
$ unzip -l "/web/playbooks/automation/deployments/tmpfiles/04/UAT-04022021_01.zip"
Archive: /web/playbooks/automation/deployments/tmpfiles/04/UAT-04022021_01.zip
Length Date Time Name
--------- ---------- ----- ----
0 02-04-2021 17:31 UAT-04022021_01/
144241065 02-04-2021 15:58 UAT-04022021_01/canv.ear
8342584 02-04-2021 16:00 UAT-04022021_01/canpizza.ear
10522141 02-04-2021 16:01 UAT-04022021_01/cantity.ear
8778258 02-04-2021 15:59 UAT-04022021_01/canipc.ear
--------- -------
171884048 5 files
[user1@linuxlocalhost deployments]$
以下是我将 zip 解压缩到所有远程目标主机的代码
---
- name: "Play 1"
host: "{{ dest_host }}"
user: "{{ USER }}"
- name: Give better permissions to the zip file
tags: validate
file:
path: "{{ playbook_dir }}/tmpfiles/{{ Latest_Build_Number }}/{{ depfile | basename }}"
mode: 0775
delegate_to: localhost
run_once: true
- name: "Untar artifacts in CURRENT Folder"
tags: validate
unarchive:
src: "{{ playbook_dir }}/tmpfiles/{{ Latest_Build_Number }}/{{ depfile | basename }}"
dest: "/web/bea_apps/applications/{{ domain_home }}/{{ item }}/CURRENT/"
with_items: "{{ CLUSTER.split(',') }}"
输出:
#############################################\n\n')
The full traceback is:
File "/tmp/ansible_MCNgND/ansible_module_unarchive.py",line 873,in main
res_args['changed'] = module.set_fs_attributes_if_different(file_args,res_args['changed'],expand=False)
File "/tmp/ansible_MCNgND/ansible_modlib.zip/ansible/module_utils/basic.py",line 1473,in set_fs_attributes_if_different
file_args['path'],file_args['mode'],changed,diff,expand
File "/tmp/ansible_MCNgND/ansible_modlib.zip/ansible/module_utils/basic.py",line 1204,in set_mode_if_different
path_stat = os.lstat(b_path)
Failed: [myserver2] (item=VL_BATCH) => {
"changed": false,"dest": "/web/bea_apps/applications/mydom1/VL_BATCH/CURRENT/","gid": 64332,"group": "wladmin","handler": "ZipArchive","invocation": {
"module_args": {
"attributes": null,"backup": null,"content": null,"creates": null,"delimiter": null,"directory_mode": null,"exclude": [],"extra_opts": [],"follow": false,"force": null,"group": null,"keep_newer": false,"list_files": false,"mode": null,"original_basename": "UAT-04022021_01.zip","owner": null,"regexp": null,"remote_src": false,"selevel": null,"serole": null,"setype": null,"seuser": null,"src": "/home/wladmin/.ansible/tmp/ansible-tmp-1612477399.28-110140157282432/source","unsafe_writes": null,"validate_certs": true
}
},"item": "VL_BATCH","mode": "0755","msg": "Unexpected error when accessing exploded file: [Errno 2] No such file or directory: '/web/bea_apps/applications/mydom1/VL_BATCH/CURRENT/UAT-04022021_01/'","owner": "wladmin","size": 2,"state": "directory","uid": 600000008
}
/web/bea_apps/applications/mydom1/VL_BATCH/CURRENT/
为空,用户有写入权限。
我检查了目的地,它确实包含此文件夹 /web/bea_apps/applications/mydom1/VL_BATCH/CURRENT/
但不包含 /web/bea_apps/applications/mydom1/VL_BATCH/CURRENT/UAT-04022021_01/
如果在 UAT-04022021_01
文件夹下解压,它应该创建此文件夹 CURRENT
。
在进一步研究后,我尝试了建议的 environment
修复方法,但也无济于事。
- name: "Untar artifacts in CURRENT Folder"
tags: validate
unarchive:
src: "{{ playbook_dir }}/tmpfiles/{{ Latest_Build_Number }}/{{ depfile | basename }}"
dest: "/web/bea_apps/applications/{{ domain_home }}/{{ item }}/CURRENT/"
with_items: "{{ CLUSTER.split(',') }}"
environment:
LANG: C
LC_ALL: C
LC_MESSAGES: C
我的源是 Linux,而目标是 Solaris。
你能提出什么问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)