Deploy ArcGIS All In One Cfn on AWS

Steps (Tested in US-East-1)

LicenseFileUrl=https://YourUrl.cloudfront.net/ArcGIS11-License.zip

Bucket=$(aws s3api create-bucket --bucket MyBucketName --region us-east-1 | jq -r '.Location')
Bucket="${Bucket:1}"
echo 'Bucket='$Bucket >> ~/variables

VpcId=$(aws ec2 describe-vpcs | jq -r '.Vpcs[0].VpcId')
echo 'VpcId='$VpcId >> ~/variables

Subnet1=$(aws ec2 describe-subnets --query 'Subnets[?contains(AvailabilityZone, `us-east-1a`) == `true`].SubnetId' | jq -r '.[0]')
Subnet2=$(aws ec2 describe-subnets --query 'Subnets[?contains(AvailabilityZone, `us-east-1b`) == `true`].SubnetId' | jq -r '.[0]')
echo 'Subnet1='$Subnet1 >> ~/variables
echo 'Subnet2='$Subnet2 >> ~/variables

aws ec2 create-key-pair --key-name ArcGIS  --key-type rsa --key-format pem --query "KeyMaterial" --output text > ArcGIS.pem
KeyPair=ArcGIS


ArcGisUsername=siteadmin
echo 'ArcGisUsername='$ArcGisUsername >> ~/variables
ArcGisPassword=IronmanSucks123
echo 'ArcGisPassword='$ArcGisPassword >> ~/variables

mkdir bucketsync
cd bucketsync/
wget https://links.esri.com/cf-enterprise-allinone11
sed -i 's/r3.xlarge/r6a.xlarge/g' cf-enterprise-allinone11

InstanceSize="r6a.xlarge"
echo 'InstanceSize='$InstanceSize >> ~/variables



wget -O ArcGIS11-License.zip $LicenseFileUrl
unzip ArcGIS11-License.zip
rm ArcGIS11-License.zip
ServerLicenseName=$(ls | grep Server)
echo 'ServerLicenseName='$ServerLicenseName >> ~/variables
PortalLicenseName=$(ls | grep Portal)
echo 'PortalLicenseName='$PortalLicenseName >>  ~/variables
EipResponse=$(aws ec2 allocate-address)
EnterpriseEipArn=$(echo $EipResponse | jq -r '.AllocationId')
echo 'EnterpriseEipArn='$EnterpriseEipArn >> ~/variables
EipIp=$(echo $EipResponse | jq -r '.PublicIp')
echo 'EipIp='$EipIp >> ~/variables
DashIp=$(echo $EipIp | sed "s/\./-/g")
EipDns=ec2-$DashIp.compute-1.amazonaws.com
echo 'EipDns='$EipDns >> ~/variables
sudo yum install openssl -y
openssl genrsa 2048 > private.pem
openssl req -new -x509 -nodes -sha1 -days 365 -extensions v3_ca -key private.pem -subj "/C=US/ST=Texas/L=Austin/O=Jeff/CN=$EipDns" > public.pem
cat public.pem
cat private.pem
openssl pkcs12 -export -passout pass:$ArcGisPassword -out ArcGis.pfx -inkey private.pem -in public.pem
PfxCertName=ArcGis.pfx
echo 'PfxCertName='$PfxCertName >> ~/variables
PfxCertPasswd=$ArcGisPassword
echo 'PfxCertPasswd='$PfxCertPasswd >> ~/variables
aws s3 sync . s3://$Bucket
cd ~

#Confirm Variables
cat variables

aws cloudformation create-stack --stack-name AllInOne --template-url https://$Bucket.s3.amazonaws.com/cf-enterprise-allinone11 --parameters ParameterKey=PlatformType,ParameterValue=Linux ParameterKey=KeypairName,ParameterValue=$KeyPair ParameterKey=EIPAllocationId,ParameterValue=$EnterpriseEipArn ParameterKey=VPCId,ParameterValue=$VpcId ParameterKey=Subnet,ParameterValue=$Subnet1 ParameterKey=InstanceType,ParameterValue=$InstanceSize ParameterKey=InstanceDriveSize,ParameterValue=200 ParameterKey=DeploymentBucket,ParameterValue=$Bucket ParameterKey=PortalLicenseFileKeyName,ParameterValue=$PortalLicenseName ParameterKey=ServerLicenseFileKeyName,ParameterValue=$ServerLicenseName ParameterKey=SiteadminUserName,ParameterValue=$ArcGisUsername ParameterKey=SiteadminUserPassword,ParameterValue=$ArcGisPassword ParameterKey=ConfigStoreType,ParameterValue=FileSystem ParameterKey=SiteDomain,ParameterValue=$EipDns ParameterKey=PortalWebadaptorName,ParameterValue=portal ParameterKey=ServerWebadaptorName,ParameterValue=server ParameterKey=SSLCertificateFileKeyName,ParameterValue=$PfxCertName ParameterKey=SSLCertificatePassword,ParameterValue=$PfxCertPasswd --capabilities CAPABILITY_IAM