I wonder anyone can help me with making a shell script which automate aws cli process for:
1.Creating Security group
2.Set roles to this Security group port 22 and port 80
3.Create a ec2 instance with this security group.
I have something done,but it's not fully completed.
addSG=$ aws ec2 create-security-group --group-name plamenSG --description "Security group for SSH access" --vpc-id vpc-026278d069c2b6ffa
addRuleSG_22p=$ aws ec2 authorize-security-group-ingress --group-id sg-0032ab410f260ce27 --protocol tcp --port 22 --cidr 87.116.78.97/32
addRuleSG_80p=$ aws ec2 authorize-security-group-ingress --group-id sg-0032ab410f260ce27 --protocol tcp --port 80 --cidr 0.0.0.0/0
runEC2=$ aws ec2 run-instances --image-id ami-0c3083e7f17ee7441 --count 1 --instance-type t2.micro \
--key-name MyKeyPair --subnet-id subnet-05499bb79299f5868 --security-group-ids sg-0032ab410f260ce27 \
--user-data file://my_script.txt
As you understand from the code above we create the SG first it's usually the first step. The problem is that when i create Security group i got security group ID as output from the command and i need to replace old security group ID with the new one ID in the line code.
About this line code - --group-id sg-0032ab410f260ce27
I make a variable which get the output of the 1st command and put it instead of the ID it look something like that:
addRuleSG_80p=$ aws ec2 authorize-security-group-ingress --group-id sg-$var --protocol tcp --port 80 --cidr 0.0.0.0/0
But i got the follow error: An error occurred (InvalidGroupId.Malformed) when calling the AuthorizeSecurityGroupIngress operation: The security-group ID 'sg-' is malformed
Any idea?