ansible unarchieve非常不稳定

时间:2016-11-22 07:08:51

标签: ansible

我们正在使用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模块粘贴最后一行。

3 个答案:

答案 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}}"