【问题标题】:Ansible create a zip file backup on windows hostAnsible 在 Windows 主机上创建一个 zip 文件备份
【发布时间】:2018-03-09 15:52:39
【问题描述】:

我想将 windows 目录压缩成 zip 文件。存档功能不工作。

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

我们如何备份windows中已有的文件夹?

  - name: Backup existing install folder to zip 
    archive:
      path:
        - "{{ installdir }}"
      dest: "{{ stragedir }}\\{{ appname }}.zip"
      format: zip 

错误:

 [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

谢谢 SR

【问题讨论】:

    标签: windows ansible winrm


    【解决方案1】:

    目前没有来自 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
    

    并像这样使用剧本中的模块:

    - name: zip a directory
      win_zip:
        src: C:\Users\Someuser\Logs
        dest: C:\Users\Someuser\OldLogs.zip
        creates: C:\Users\Someuser\OldLogs.zip
    

    【讨论】:

    • 感谢您的代码,它有效。为什么我们需要 dest 并创建参数?
    • creates arg 是可选的,dest 是要创建的档案的名称,src 当然是要压缩的文件,所以这些是必需的。我遵循与 win_unzip 模块相同的规范。
    • 感谢这个模块,希望这将很快成为核心模块的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2012-10-16
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多