【问题标题】:Installing mysql client on EC2 via CloudFormation通过 CloudFormation 在 EC2 上安装 mysql 客户端
【发布时间】:2017-01-13 08:41:09
【问题描述】:
要在我的 EC2 实例上安装 MySQL 客户端,我执行以下操作:
# Update all packages
sudo yum update
# Install mysql client
sudo yum install mysql
我想知道在创建 EC2 实例时如何使用 CloudFormation 进行配置?
有没有可以参考的样本?
【问题讨论】:
标签:
mysql
amazon-ec2
amazon-cloudformation
【解决方案1】:
要在使用 CloudFormation 配置的 EC2 实例上运行简单脚本,您可以使用 AWS::EC2::Instance 资源的 UserData 属性。
例子:
Description: Run a bash script using the UserData property.
Mappings:
# amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
RegionMap:
us-east-1:
"64": "ami-9be6f38c"
Resources:
Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", 64]
InstanceType: m3.medium
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash
# Update all packages
yum -y update
# Install mysql client
yum -y install mysql
【解决方案2】:
只想分享上面的答案。
后来我发现我的 EC2 是通过 EB 部署的,而 UserData 似乎不起作用。
在这种情况下,我必须使用 .ebextension 的 container_commands。
所以在这里发布它希望它也能帮助别人:
files:
"/usr/local/bin/eb_mysql.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
yum -y update
yum -y install mysql
container_commands:
040_install_mysql_client:
command: "chmod a+rx /usr/local/bin/eb_mysql.sh && /usr/local/bin/eb_mysql.sh"