我在Amazon S3存储桶中有一些文件,我正在使用SaltStack将所有这些文件复制到备用目录中。如何检查AWS S3同步是否有任何更改?
不幸的是,SaltStack没有能力从S3复制整个目录,所以我使用了awscli。它几乎完美地工作。
它可以同步S3桶和我的目录(万岁!),它甚至有一个--dryrun
标志(甚至更好!),但不幸的是我不能想出一个办法让它做东西,我可以捕获Salt表示没有任何变化。
我有一个看起来像这样的盐的状态:“什么?到这里”
copy-my-dir:
file.directory:
- name: /path/to/my/dir
- makedirs: True
cmd.run:
- name: "aws s3 sync s3://my-bucket/ /path/to/my/dir"
- unless: "What goes here?"
我试过--dry-run
为但aws s3同步返回0是否有要同步的文件。
我想aws --output json s3 sync --dry-run
但是,即使不接近做任何有用的(即不输出的JSON我可以告诉大家,至少不是通过salt 'minion' cmd.run "aws..."
运行时。
所以,我怎么能知道还有我的亚马逊S3存储和我的目录之间的差异,所以我可以有条件地执行一个SaltStack状态