对于 HCL 连接,我们仍然需要 WebSphere,我想用 Ansible 自动化这个复杂而缓慢的过程。WebSphere 需要手动下载每个组件的不同 ZIP 文件,例如:
├── CIK1VML.zip
├── CIK1WML.zip
└── CIK1XML.zip
后面的字符CIK1
标识零件。在命令行上,我可以通过用问号替换那些部分标识符来解压缩它们:
unzip '/cnx-smb/was/supplements/CIK1?ML.zip' -d /tmp/was-suppl-manual
我想使用该unarchive
模块,因为它支持remote_src
对我有用的功能,所以我尝试了一个简单的 POC 剧本:
- hosts: 127.0.0.1
connection: local
tasks:
- name: Unpack test
become: yes
unarchive:
src: "/cnx-smb/was/supplements/CIK1?ML.zip"
remote_src: no
dest: "/tmp/was-extracted"
但这不起作用:
TASK [Unpack test] **********************************************************************************************************************************************************************************************************************************************************
Wednesday 10 February 2021 16:17:25 +0000 (0:00:00.637) 0:00:00.651 ****
fatal: [127.0.0.1]: FAILED! => changed=false
msg: |-
Could not find or access '/cnx-smb/was/supplements/'CIK1?ML.zip'' on the Ansible Controller.
If you are using a module and expect the file to exist on the remote, see the remote_src option
我还尝试了不同的src
路径,例如/cnx-smb/was/supplements/'CIK1?ML.zip'
,导致unzip
CLI 调用仅在至少文件名被引号或整个路径屏蔽时才起作用。Ansible 仅在引用文件名时接受,'/cnx-smb/was/supplements/CIK1?ML.zip'
似乎被解释为相对路径(显然失败)。