我们正在使用ansible在AWS的远程实例中安装wso2api manager和wso2身份服务器。
使用wso2am-1.10.0.zip时,unarchive与wso2is-5.1.0.zip正常工作并抛出错误。
下面是我使用的unarchive命令
- name: unarchive wso2is-5.1.0.zip
unarchive: src="{{wso2_dest}}/wso2is-5.1.0.zip" dest="{{wso2_dest}}" copy=no
- name: unarchive apim
unarchive: src="{{wso2_dest}}/wso2am-1.10.0.zip" dest="{{wso2_dest}}" copy=no
(或)
command: "unzip {{wso2_dest}}/wso2am-1.10.0.zip -d {{wso2_dest}}"
在apim提取中,两者都会抛出错误。有时它会起作用,有时也不会。
所以,目前我计划使用tar命令进行提取。
- name: unarchive apim
command: "tar -xf {{wso2_dest}}/wso2am-1.10.0.tar"
这很好。
我想知道为什么unarchive如此无法。
任务[WSO2_APIM:unarchive apim] ******************************* 致命:[ip]:失败! => {“已更改”:true,“cmd”:[“unzip”,“/ x / y / apim_mysql / wso2am-1.10.0.zip”,“ - d”,“/ x / y / apim_mysql”],“delta” “:”0:00:00.226518“,”结束“:”2016-11-21 10:48:13.171464“,”失败“:真实,”rc“:1,”开始“:”2016-11-21 10 :48:12.944946“,”stderr“:”替换/x/y/apim_mysql/wso2am-1.10.0/repository/axis2/client/lib/bcprov-jdk15.jar?[y] es,[n] o,[ A] ll,[N] one,[r] ename:NULL \ n(EOF或读错误,视为\“[N] one \”......)“,”stdout“:”存档:/ home / ubuntu /apim_mysql/wso2am-1.10.0.zip“,”stdout_lines“:[”存档:/home/ubuntu/apim_mysql/wso2am-1.10.0.zip“],”警告“:[”考虑使用unarchive模块而不是运行解压缩“]}
wso2am-1.10.0 / dbscripts / metrics / mysql.sql -d / home / ubuntu / apim_mysql01“,”failed“:true,”msg“:”[Errno 7]参数列表太长“,”rc“ :7}
为unarchive模块粘贴最后一行。
答案 0 :(得分:1)
ansible的非归档模块中有一个extra_opts方法。有关更多信息,请遵循以下文档:https://docs.ansible.com/ansible/latest/modules/unarchive_module.html
- name: unarchive wso2is-5.1.0.zip
unarchive:
extra_opts: -j
src: "{{wso2_dest}}/wso2is-5.1.0.zip"
dest: "{{wso2_dest}}"
remote_src: yes
remote_src: yes
->这将允许您从远程服务器获取zip文件。
extra_opts: -j
->
-j
用于将解压缩的文件存储在当前工作目录中,而无需创建新目录。
在extra_ops
中,我们可以使用在Linux的unzip命令中使用的任何选项标签。
有关Linux中unzip命令的选项列表,请参考:https://linux.die.net/man/1/unzip
答案 1 :(得分:0)
似乎unarchive should be fixed对于ansible> = 2.1.3.0
解压缩变体cannot be fixed。
答案 2 :(得分:0)
这是bug known for unarchive
module。
对于解压缩,您可以添加-o
选项以覆盖文件而不提示。
command: "unzip -o {{wso2_dest}}/wso2am-1.10.0.zip -d {{wso2_dest}}"