获取对象时Ansible AWS S3在目录checksuom上失败

Eya*_*leg 2 amazon-s3 ansible

使用以下Ansible命令从S3存储桶获取对象时:

- name: "copy object from s3://{{ s3_bucket }}/{{ s3_object }} to {{ dest }}"
  s3:
    bucket: "{{ s3_bucket }}"
    object: "{{ s3_object }}"
    dest: "{{ dest }}"
    mode: get
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

fatal: [som_fake_host]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "aws_access_key": null,
            "aws_secret_key": null,
            "bucket": "some-fake-bucket",
            "dest": "/some-fake-dest/",
            "ec2_url": null,
            "encrypt": true,
            "expiry": "600",
            "headers": null,
            "ignore_nonexistent_bucket": false,
            "marker": null,
            "max_keys": "1000",
            "metadata": null,
            "mode": "get",
            "object": "some_fake_file",
            "overwrite": "always",
            "permission": [
                "private"
            ],
            "prefix": null,
            "profile": null,
            "region": null,
            "retries": 0,
            "rgw": false,
            "s3_url": null,
            "security_token": null,
            "src": null,
            "validate_certs": true,
            "version": null
        }
    },
    "msg": "attempted to take checksum of directory: /some-fake-dest/"
}
Run Code Online (Sandbox Code Playgroud)

其他有用的信息:

  • 目标目录存在
  • 运行剧本的用户有权访问目标目录
  • 该文件存在于S3存储桶中

Kon*_*rov 5

文档

dest使用GET操作下载对象/键时的目标文件路径

尝试使用文件路径而不是目录来调用模块。例如:

dest: "{{ dest }}/{{ s3_object }}"
Run Code Online (Sandbox Code Playgroud)

或者其他的东西。