Вот что мне нужно сделать:
- Мне нужно создать экземпляр, используя шаблон облачной информации EC2.
- После определенной установки пакетов мне нравится перезагружать экземпляр через сам шаблон формирования облака.
- После перезагрузки экземпляра я должен завершить выполнение оставшегося скрипта.
Пожалуйста, предложите мне, как это можно сделать.
Это мой текущий шаблон:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "",
"Parameters": {
"VPCID": {
"Description": "The VPC for this instance",
"Type": "AWS::EC2::VPC::Id",
},
"SubnetID": {
"Description": "The Subnet for this instance",
"Type": "AWS::EC2::Subnet::Id",
},
"AllowedCIDR": {
"Description": "IP address range (in CIDR notation) of the client that will be allowed to connect to the cluster using SSH e.g., 203.0.113.5/32",
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
"Type": "String",
"MinLength": "9",
"MaxLength": "18",
"Default": "10.0.0.0/16",
"ConstraintDescription": "must be a valid CIDR range of the form x.x.x.x/x"
},
"SSHKeyName": {
"Description": "The EC2 Key Pair to allow SSH access to the instance",
"Type": "AWS::EC2::KeyPair::KeyName",
},
"TypeOfInstance": {
"Type": "String",
"Default": "t2.medium",
"Description": "Enter t2.medium, t2.large, m3.large, m4.large, m4.xlarge, etc.",
"ConstraintDescription": "Must be a valid EC2 instance type."
}
},
"Resources": {
"Ec2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"SecurityGroupIds": [
{
"Ref": "InstanceSecurityGroup"
}
],
"KeyName": {
"Ref": "SSHKeyName"
},
"ImageId": "ami-a8d369c0",
"SubnetId": { "Ref": "SubnetID" },
"InstanceType": { "Ref": "TypeOfInstance" },
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash -xe\n",
"touch /tmp/testfile\n",
"yum -y install rng-tools\n",
"systemctl start rngd\n",
"systemctl enable rngd\n",
"yum update -y \n",
"echo \"################### Install Packages #######################\"\n",
"reboot \n",
"echo \"################### Install Remaining packages and configuration #######################\"\n",
]]}}
},
"InstanceSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "Enable SSH access via port 22",
"VpcId" : {
"Ref" : "VPCID"
},
"GroupName": "my-securitygroup",
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": "22",
"ToPort": "22",
"CidrIp": "0.0.0.0/0"
}
]
}
}
}
}