amazon-web-services - 如何在 AWS::CloudFormation::Init 中添加 yum 存储库
问题描述
我正在尝试使用 cloudformation 和块在 Centos 实例中安装 dockerAWS::CloudFormation::Init
安装步骤之一是通过运行将某个存储库添加到 yum:
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如何在 cloudformation 模板中启用该存储库。理想情况下,如果可能的话,我想使用单个配置块。
这是我到目前为止得到的
Resources:
ec2:
Type: AWS::EC2::Instance
Metadata:
AWS::CloudFormation::Init:
config:
packages:
yum:
yum-utils: []
device-mapper-persistent-data: []
lvm2: []
Properties:
...
解决方案
您应该可以通过添加一个commands
块来做到这一点:
Resources:
ec2:
Type: AWS::EC2::Instance
Metadata:
AWS::CloudFormation::Init:
configSets:
config:
- yum_config_manager
- yum_packages
yum_config_manager:
commands:
yum_config_manager:
command: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum_packages:
packages:
yum:
yum-utils: []
device-mapper-persistent-data: []
lvm2: []
在您的身上,UserData
您将拥有:
cfn-init -c config -s ${AWS::StackId} --resource ec2 --region ${AWS::Region}
进一步说明:
请注意,
commands
和packages
块都被包裹在一个configSet
.另请注意,
-c config
告诉您要运行cfn-init
哪个。configSets
启动后,您应该能够通过查看来检查成功的操作/var/log/cfn-init-cmd.log
。
文档中的更多信息,尤其是关于configSets和commands的部分。
推荐阅读
- python - YoutubeSearchPython 错误:无法发出请求
- javascript - jQuery / Datatables,在单击事件时发出 ajax 请求,同时仍处理 DT 事件
- javascript - 离子科尔多瓦运行 android 不工作。为 strip-final-newline 提供错误
- postgresql - 识别postgres扩展版本显示不同版本
- proxy - 不能将卷曲包裹在 tsocks 中?
- r - R中带有部分字符串匹配的模糊连接
- angular - 设置间隔和观察者会减慢我的角度应用程序吗?
- python - 从 Python 启动 excel,并在启动脚本中发送一个对象
- android-studio - Android Studio 冻结并显示内存不足错误,只需在一个返回字符串对象的语句后键入 }"
- amazon-dynamodb - Dynamoose 和 DynamoDB 二级索引搜索