通过 CloudFormation 在 EC2 上安装 mysql 客户端

Installing mysql client on EC2 via CloudFormation

要在我的 EC2 实例上安装 MySQL 客户端,我执行以下操作:

# Update all packages
sudo yum update

# Install mysql client 
sudo yum install mysql

我想知道如何在创建 EC2 实例时使用 CloudFormation 进行配置?

有没有样本可以参考?

要 运行 使用 CloudFormation 配置的 EC2 实例上的简单脚本,您需要使用 UserData property of the AWS::EC2::Instance 资源。

示例:

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

只想在上面的答案之上分享。

后来我发现我的 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"