Ansible 在 Windows 主机上创建一个 zip 文件备份

sfg*_*ups 4 windows winrm ansible

我想将 windows 目录压缩为 zip 文件。存档功能不起作用。

对于 Windows,我看到了win_unzip模块,但我没有找到win_zip模块。

我们如何在 Windows 中备份现有文件夹?

  - name: Backup existing install folder to zip 
    archive:
      path:
        - "{{ installdir }}"
      dest: "{{ stragedir }}\\{{ appname }}.zip"
      format: zip 
Run Code Online (Sandbox Code Playgroud)

错误:

 [WARNING]: FATAL ERROR DURING FILE TRANSFER: Traceback (most recent call last):   File "/usr/lib/python2.7/site-packages/ansible/plugins/connection/winrm.py", line 276, in _winrm_exec
self._winrm_send_input(self.protocol, self.shell_id, command_id, data, eof=is_last)   File "/usr/lib/python2.7/site-packages/ansible/plugins/connection/winrm.py", line 256, in
_winrm_send_input     protocol.send_message(xmltodict.unparse(rq))   File "/usr/lib/python2.7/site-packages/winrm/protocol.py", line 256, in send_message     raise
WinRMOperationTimeoutError() WinRMOperationTimeoutError
Run Code Online (Sandbox Code Playgroud)

谢谢 SR

Tj *_*lie 6

ansible 目前没有模块可以在 Windows 上进行 zip 存档。我已经创建了一个简单的模块,就像我使用的 win-unzip 一样,只要在主机上安装了 powershell 4,这应该对你有用。代码在这里:https : //github.com/tjkellie/PublicRepo/blob/master/ansible在创建正式模块之前可以随意使用。

将文件添加到您的库中:

library/                  # Put the custom modules files here
filter_plugins/           
roles/
       library/           # or here
Run Code Online (Sandbox Code Playgroud)

并使用剧本中的模块,如下所示:

- name: zip a directory
  win_zip:
    src: C:\Users\Someuser\Logs
    dest: C:\Users\Someuser\OldLogs.zip
    creates: C:\Users\Someuser\OldLogs.zip
Run Code Online (Sandbox Code Playgroud)