≡菜单

如何通过CLI从UserData启动Amazon AWS EC2实例

AWS EC2 UserData CLI在Amazon AWS中,您还可以使用aws cli实用工具从命令行执行从AWS Console Web界面操作EC2实例所执行的所有活动。

命令是aws。您可以在aws命令中使用ec2选项来操作ec2实例。

本教程专门介绍EC2中的UserData。我们’ve显示了以下CLI示例:

  1. 从CLI启动没有用户数据的新EC2实例
  2. 通过CLI使用UserData创建新的EC2服务器实例
  3. 从CLI查看现有EC2实例的UserData

1.从CLI启动新的EC2实例(无UserData)

您可以直接从命令行从AWS Marketplace启动任何实例。

为此,您应该知道要从中创建新实例的特定图像的AMI ID(即图像ID)。

在这个例子中,我们’将从Amazon 3d捕鱼达人映像启动新的EC2服务器。图像的标识是ami-a4c7edb2。

在此示例中,我们使用的图像称为“Amazon 3d捕鱼达人 AMI 2017.03.1(HVM),SSD卷类型”具有此图像ID:ami-a4c7edb2。这是此特定映像的描述:Amazon 3d捕鱼达人 AMI是EBS支持的,AWS支持的映像。默认图像包括AWS命令行工具,Python,Ruby,Perl和Java。存储库包括Docker,PHP,MySQL,PostgreSQL和其他软件包。

要从映像启动新服务器,请使用run-instances选项以及“aws ec2”命令如下图:

# AWS EC2 run-instances --image-id ami-a4c7edb2--count 1 \
        --实例类型t2.micro--key-name mynewkey \
        --subnet-id subnet-5630306b
{
 "OwnerId": "123449611234",
 "ReservationId": "r-05e649ad3ee70f52d",
 "Groups": [],
 "Instances": [
     {
         "Monitoring": {
             "State": "disabled"
         },
..
..
         "VpcId": "vpc-63042b04",
         "StateTransitionReason": "",
         "InstanceId": "i-01ce046ad25ceb467",
         "ImageId": "ami-a4c7edb2",
         "PrivateDnsName": "ip-192-30-4-91.ec2.internal",
         "KeyName": "mynewkey",
         "SecurityGroups": [
             {
                 "GroupName": "default",
                 "GroupId": "sg-26d3d362"
             }
         ],
..
..
         "RootDeviceName": "/dev/xvda",
         "VirtualizationType": "hvm",
         "AmiLaunchIndex": 0
     }
 ]
}

在上面:

  • AWS EC2 run-instances –这是启动新Amazon EC2实例的命令
  • –image-id ami-a4c7edb2–这是我们将用于创建新实例的图像的图像ID。这是Amazon 3d捕鱼达人的映像ID
  • –count 1这表示我们只想使用该映像创建一个新服务器。请务必小心使用此参数’不想在此处错误地指定一个更大的数字,因为它将创建那么多服务器,并将这些服务器记入您的帐户。
  • –实例类型t2.micro–在此处指定实例类型。
  • –key-name mynewkey –使用您使用的密钥对’已经创建并将其保存在您的AWS账户中。
  • –子网编号subnet-5630306b–这是我要在其中创建新EC2服务器的网络VPC。

如果你不这样做’t指定网络接口,您’将获得以下VPCResourceNotSpecified错误消息:

A client error (VPCResourceNotSpecified) occurred when calling the RunInstances operation: The specified instance type can 上ly be used in a VPC. A subnet ID or network interface ID is required to carry out the request.

如果指定的参数无法在所使用的组合中使用,则您将’将得到以下InvalidParameterCombination错误消息。

# AWS EC2 run-instances --image-id ami-a4c7edb2--count 1 --实例类型t2.micro--key-name mynewkey --security-groups my-aws-security-group --subnet-id subnet-8534a4af
A client error (InvalidParameterCombination) occurred when calling the RunInstances operation: The parameter groupName cannot be used with the parameter subnet

如果指定了无效的AMI图像ID,则您’会收到以下InvalidAMIID.Malformed错误:

A client error (InvalidAMIID.Malformed) occurred when calling the RunInstances operation: Invalid id: "ami-a4c7edbm"

There are many things you can do using the AWS EC2 CLI utility as we discussed earlier: 15个基本Amazon AWS EC2 CLI命令示例

2.使用CLI中的UserData创建一个新的EC2实例

您可以在实例创建过程中使用Userdata文件执行自定义命令。当您希望新创建的实例在安装了某些软件包或具有某些自定义配置的情况下处于某种状态时,这将很有用。

创建您的自定义用户数据文件。例如:ud.txt

# cat ud.txt
#!/bin/bash
yum update -y
service httpd start
chkconfig httpd 上

Specify the above ud.txt file during the instance creation in the run-instances命令如下图:

AWS EC2 run-instances --image-id ami-a4c7edb2--count 1 \
     --实例类型t2.micro--key-name mynewkey \
     --子网编号subnet-5630306b--user-data file://ud.txt

3.从CLI查看现有EC2实例的UserData

要查看在创建实例时使用的Userdata,请执行以下操作:

为此,请在页面中使用describe-instance-attribute选项“aws ec2”命令如下所示。使用

AWS EC2 describe-instance-attribute --instance-id i-08dae85dc8fa85aa2 \
     --attribute userData --output text --query "UserData.Value" \
     | base64--decode

在上面:

  • AWS EC2 describe-instance-attribute –这是查看指定实例的任何属性的命令
  • –attribute userData –这表明我们感兴趣的属性是userData
  • –instance-id –指定我们要查看其属性的实例ID
  • –output text –我们要以文本格式输出
  • –query “UserData.Value” –我们专门在查询UserData.Value
  • base64–decode – The output is in base64. So, we have to pipe the output to base64and 解码the value as show here.

以下是上述命令的输出。这是首次启动此特定实例时使用的userdata文件。

#!/bin/bash
yum update -y
service mysqld start
chkconfig mysqld 上

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个3d捕鱼达人 Sysadmin教程
  2. 50个最常用的3d捕鱼达人命令(包括示例)
  3. 排名前25位的最佳3d捕鱼达人性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的3d捕鱼达人 Find命令示例
  5. 3d捕鱼达人 101 Hacks第二版电子书 3d捕鱼达人 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 0 评论… 加一 }

发表评论