Skip to content

petersonwsantos/puppet-control-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS(EC2 userdata / CodeCommit ) and Puppet Serverless

EC2 Userdata

When you launch an instance in Amazon EC2, you have the option of passing user data to the instance that can be used to perform common automated configuration tasks and even run scripts after the instance starts.

The script userdata-puppetagent.bash install puppet-agent and applies the settings according with tag puppet_profile of instance EC2.

Step 1: Create an AWS CodeCommit Repository

Step 2: Create Role for clone CodeCommit repository and get tag EC2

IAM RoLe (for clone CodeCommit repository and get tag EC2):

  {
      "Version": "2012-10-17",
      "Statement": [
          {
              "Sid": "Stmt1497632792000",
              "Effect": "Allow",
              "Action": [
                  "ec2:DescribeInstances",
                  "ec2:DescribeTags"
              ],
              "Resource": [
                  "*"
              ]
          },
          {
              "Sid": "Stmt1497632920000",
              "Effect": "Allow",
              "Action": [
                  "codecommit:BatchGetRepositories",
                  "codecommit:Get*",
                  "codecommit:List*"
              ],
              "Resource": [
                  "arn:aws:codecommit:us-east-2:210177016610:aws-puppet-masterless-distribuited"
              ]
          }
      ]
  }

Step 3: Launch EC2 Instance (with IAM Role and tag name=puppet_profile/key=essential_linux )

Userdata:

#!/bin/bash 

# 'Y' to AWS code commit and "N" to other public git repo
CODE_COMMIT="Y"
# Repository Puppet Serverless
REPO_PUPPET="https://git-codecommit.us-east-2.amazonaws.com/v1/repos/aws-puppet-serverless-distribuited" 

curl https://raw.githubusercontent.com/petersonwsantos/puppet-repo-aws/master/bootstrap-puppetagent.bash | bash -s -- $CODE_COMMIT $REPO_PUPPET