123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- AWSTemplateFormatVersion: 2010-09-09
- Parameters:
- EC2InstanceType:
- Type: String
- EC2AMI:
- Type: String
- Default: 'ami-09e67e426f25ce0d7'
- KeyName:
- Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
- Type: 'AWS::EC2::KeyPair::KeyName'
- Default: 'joystream-key'
- ConstraintDescription: must be the name of an existing EC2 KeyPair.
- Resources:
- SecurityGroup:
- Type: AWS::EC2::SecurityGroup
- Properties:
- GroupDescription:
- !Sub 'Internal Security group for ${AWS::StackName}'
- SecurityGroupIngress:
- - IpProtocol: tcp
- FromPort: 9933
- ToPort: 9933
- CidrIp: 0.0.0.0/0
- - IpProtocol: tcp
- FromPort: 9944
- ToPort: 9944
- CidrIp: 0.0.0.0/0
- - IpProtocol: tcp
- FromPort: 22
- ToPort: 22
- CidrIp: 0.0.0.0/0
- Tags:
- - Key: Name
- Value: !Ref AWS::StackName
- InstanceLaunchTemplate:
- Type: AWS::EC2::LaunchTemplate
- Metadata:
- AWS::CloudFormation::Init:
- config:
- packages:
- apt:
- wget: []
- unzip: []
- Properties:
- LaunchTemplateName: !Sub 'LaunchTemplate_${AWS::StackName}'
- LaunchTemplateData:
- ImageId: !Ref EC2AMI
- InstanceType: !Ref EC2InstanceType
- KeyName: !Ref KeyName
- SecurityGroupIds:
- - !GetAtt SecurityGroup.GroupId
- BlockDeviceMappings:
- - DeviceName: /dev/sda1
- Ebs:
- VolumeSize: '40'
- UserData:
- Fn::Base64: !Sub |
- #!/bin/bash -xe
- # send script output to /tmp so we can debug boot failures
- exec > /tmp/userdata.log 2>&1
- # Update all packages
- apt-get update -y
- # Get latest cfn scripts;
- # apt-get install -y python3-pip
- apt-get install -y python3-setuptools
- mkdir -p /opt/aws/bin
- # pip3 install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz
- wget https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz
- python3 -m easy_install --script-dir /opt/aws/bin aws-cfn-bootstrap-py3-latest.tar.gz
- # curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
- # echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
- # apt-get update -y
- # apt-get install -y yarn
- ln -s /root/aws-cfn-bootstrap-latest/init/ubuntu/cfn-hup /etc/init.d/cfn-hup
- Instance:
- Type: AWS::EC2::Instance
- Properties:
- LaunchTemplate:
- LaunchTemplateId: !Ref InstanceLaunchTemplate
- Version: !GetAtt InstanceLaunchTemplate.LatestVersionNumber
- Tags:
- - Key: Name
- Value: !Sub '${AWS::StackName}_1'
- Instance2:
- Type: AWS::EC2::Instance
- Properties:
- LaunchTemplate:
- LaunchTemplateId: !Ref InstanceLaunchTemplate
- Version: !GetAtt InstanceLaunchTemplate.LatestVersionNumber
- Tags:
- - Key: Name
- Value: !Sub '${AWS::StackName}_2'
- Outputs:
- PublicIp:
- Description: The DNS name for the created instance
- Value: !Sub "${Instance.PublicIp}"
- Export:
- Name: !Sub "${AWS::StackName}PublicIp"
- PublicIp2:
- Description: The DNS name for the created instance
- Value: !Sub "${Instance2.PublicIp}"
- Export:
- Name: !Sub "${AWS::StackName}PublicIp2"
|