Skip to content

Commit

Permalink
Updated
Browse files Browse the repository at this point in the history
  • Loading branch information
lolli001 committed Jul 24, 2024
1 parent 7b69b30 commit 8602155
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 30 deletions.
15 changes: 12 additions & 3 deletions modules/image-pipeline/build.pkr.hcl → build.pkr.hcl
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
variable "project_name" {
type = string
default = "rhel-arm-image-pipeline-demo"
}

variable "ansible_dir" {
type = string
}

source "amazon-ebs" "rhel" {
ami_name = "rhel-arm-{{timestamp}}"
ami_name = "${var.project_name}-{{timestamp}}"
instance_type = "t3.micro" # Ensure the instance type is ARM64 compatible
region = "us-gov-west-1"
source_ami = "ami-03f5c6b8195c66b04" # Updated AMI ID for RHEL 9 ARM
Expand All @@ -11,13 +20,13 @@ build {
sources = ["source.amazon-ebs.rhel"]

provisioner "ansible" {
playbook_file = "ansible/rhel-arm-baseline.yaml"
playbook_file = "${var.ansible_dir}/rhel-arm-baseline.yaml"
}

post-processor "shell-local" {
inline_shebang = "/bin/sh"
inline = [
"echo 'Build finished!'",
"echo '${build.amis}' > ami_id.txt",
]
}
}
48 changes: 21 additions & 27 deletions buildspec.yml
Original file line number Diff line number Diff line change
@@ -1,49 +1,43 @@
version: 0.2

env:
variables:
AWS_REGION: "us-gov-west-1"
CODE_SRC_DIR: "source"
CODEBUILD_SRC_DIR_SourceAnsibleOutput: "/codebuild/output/src3467/src/s3/01"

phases:
install:
runtime-versions:
python: 3.x
commands:
- echo "Installing Python version 3.11 ..."
- pyenv global $PYTHON_311_VERSION
- stat ${CODEBUILD_SRC_DIR_SourceAnsibleOutput}/init.sh && bash ${CODEBUILD_SRC_DIR_SourceAnsibleOutput}/init.sh ${CODEBUILD_SRC_DIR_SourceAnsibleOutput} || echo "No init.sh script found"
- which pip3 || curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- which pip3 || python3 get-pip.py --user
- stat $(python -m site --user-base)/bin/ansible-playbook || python3 -m pip install --user ansible pywinrm
- stat /bin/packer || curl -s -qL -o packer.zip https://releases.hashicorp.com/packer/1.10.3/packer_1.10.3_linux_amd64.zip
- stat /bin/packer || unzip -o packer.zip
- stat /bin/packer || $(mv packer /bin && rm packer.zip)
- echo "Installing pip, Ansible, and Packer"
- which pip3 || curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py --user
- stat $(python3 -m site --user-base)/bin/ansible-playbook || python3 -m pip install --user ansible pywinrm
- export PATH=$PATH:/root/.local/bin
- if ! stat /bin/packer; then
curl -s -qL -o packer.zip https://releases.hashicorp.com/packer/1.10.3/packer_1.10.3_linux_amd64.zip;
unzip -o packer.zip;
mv packer /bin;
rm packer.zip;
fi

pre_build:
commands:
- echo "Configuring AWS credentials"
- echo "Fetching AWS credentials from ECS metadata service"
- echo "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}"
- curl -qL -o aws_credentials.json http://169.254.170.2/${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI} > aws_credentials.json
- echo "Configuring AWS CLI"
- aws configure set region $AWS_REGION
- aws configure set aws_access_key_id `jq -r '.AccessKeyId' aws_credentials.json`
- export AWS_ACCESS_KEY_ID=`jq -r '.AccessKeyId' aws_credentials.json`
- aws configure set aws_secret_access_key `jq -r '.SecretAccessKey' aws_credentials.json`
- export AWS_SECRET_ACCESS_KEY=`jq -r '.SecretAccessKey' aws_credentials.json`
- aws configure set aws_session_token `jq -r '.Token' aws_credentials.json`
- export AWS_SESSION_TOKEN=`jq -r '.Token' aws_credentials.json`

build:
commands:
- echo "Building HashiCorp Packer template, build.pkr.hcl"
- cd ${CODEBUILD_SRC_DIR}/${CODE_SRC_DIR}
- /bin/packer init build.pkr.hcl
- ln -s ${CODEBUILD_SRC_DIR_SourceAnsibleOutput}/roles
- /bin/packer build -var project_name=rhel-arm-image-pipeline-demo -var ansible_dir=${CODEBUILD_SRC_DIR_SourceAnsibleOutput} build.pkr.hcl
- echo "Running Packer build"
- packer init build.pkr.hcl
- packer build -var project_name=rhel-arm-image-pipeline-demo -var ansible_dir=${CODEBUILD_SRC_DIR_SourceAnsibleOutput} build.pkr.hcl

post_build:
commands:
- cd ${CODEBUILD_SRC_DIR}/${CODE_SRC_DIR}
- echo "Checking for the AMI ID file"
- test -s ami_id.txt || exit 1

artifacts:
files:
- '**/*'
discard-paths: yes
- ami_id.txt

0 comments on commit 8602155

Please sign in to comment.