使用 CloudFormation,我想在现有存储桶上设置AWS::S3::Bucket 中的一些属性。换句话说,我不想创建存储桶,我只想强制执行一些设置。这是我的 CloudFormation JSON 示例:
"websitePreviewBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"AccessControl": "PublicRead",
"VersioningConfiguration": {
"Status": "Suspended"
},
"BucketName": "preview.website.com",
"WebsiteConfiguration": {
"IndexDocument": "index.html",
"ErrorDocument": "error.html"
}
}
},
Run Code Online (Sandbox Code Playgroud)
毫不奇怪,这在 CloudFormation 控制台中失败了:
The following resource(s) failed to create: [websitePreviewBucket].
preview.website.com already exists
Run Code Online (Sandbox Code Playgroud)
我已经创建了存储桶preview.website.com
。我的意思是,这个帐户拥有那个存储桶。如何设置之类的东西AccessControl
,并WebsiteConfiguration
与CloudFormation现有的桶?
我看到另一个问题提出了类似的问题,但没有合适的答案。
TLDR 版本:在正常使用 fileserver.conf 的情况下,我如何构建一个实际可用的 puppet URL?
.
我正在尝试开始使用 Puppet 和一些虚拟实例。对于第一个任务,我正在尝试使用文件类型分发一个 authorized_keys 文件。是的,它可以使用ssh 授权密钥类型来完成,但现在这是关于文件分发,对吗?
该服务维基文件意味着我要构建的路径。首先,这是 puppetmasterd 知道的:
$ grep -B 1 path /etc/puppet/fileserver.conf
[files]
path /etc/puppet
Run Code Online (Sandbox Code Playgroud)
其次,我创建了一个文件,/etc/puppet/modules/ssh/manifests/init.pp
包含以下内容:
$ cat /etc/puppet/modules/ssh/manifests/init.pp
class ssh {
file { "/home/ubuntu/.ssh/authorized_keys":
source => "puppet:///modules/ssh/authorized_keys",
mode => 400,
owner => ubuntu,
group => ubuntu
}
file { "/home/ubuntu/.ssh":
ensure => directory,
mode => 700,
owner => ubuntu,
group => ubuntu
}
notify {"all done.":}
}
# …
Run Code Online (Sandbox Code Playgroud)