ansible - 无法使用 ansible s3_sync 模块同步两个 S3 存储桶
问题描述
我有什么:两个名为“s3_sync-ansible-test-1”和“s3_sync-ansible-test-2”的 S3 存储桶。
桶结构:
s3_sync-ansible-test-1
|-folder_1
|-file_1.txt
|-file_2.txt
|-folder_2
|-file_2.txt
s3_sync-ansible-test-2
桶是空的。
我想要做什么:s3_sync-ansible-test-1
在和之间同步所有内容s3_sync-ansible-test-2
。
我尝试了什么:
- name: "Sync S3 buckets"
register: sync_s3
s3_sync:
bucket: s3_sync-ansible-test-2
file_root: /s3_sync-ansible-test-1
- debug:
msg: "{{ sync_s3 }}"
调试输出是
"msg": {
"changed": false,
"failed": false,
"filelist_actionable": [],
"filelist_initial": [],
"filelist_local_etag": [],
"filelist_s3": [],
"filelist_typed": [],
"uploads": []
}
同时,手动命令
aws s3 sync s3://s3_sync-ansible-test-1 s3://s3_sync-ansible-test-2
按预期工作。
我也试过改成file_root
没有s3://s3_sync-ansible-test-2
成功。
有什么问题?
解决方案
正如 s3_sync 的文档所述:
file_root: / required File/directory path for synchronization.This is a local path. This root path is scrubbed from the key name, so subdirectories will remain as keys
file_root是本地路径。这意味着它不能是 s3 存储桶。
如果你真的想使用这个模块,你可以使用s3fs mount s3 bucket 到你的实例,然后使用 ansible s3_sync 来同步它。
推荐阅读
- oracle - Oracle 中的全局非分区索引
- javascript - 使用轮子事件更改类
- bash - 如何在循环中追加新行\ n
- javascript - 如何防止显示的实际文件路径检查网络终端
- python - 如何检查某些输入是否属于 sympy 函数?
- android - 如何同时从本地电话簿和谷歌联系人中获取所有联系人?
- android - ConstraintLayout that should support portrait and landscape modes -with a button to toggle full screen
- javascript - 如何在不模拟 ActivatedRouteSnapshot 的情况下测试角度防护/解析器
- go - 如何在 Github 上设置我的 Golang 项目版本
- python - 使用 GoogleNews-vectors-negative300.bin 构建字典返回 ValueError: could not convert string to float