diff --git a/build.pkr.hcl b/build.pkr.hcl index 15866e7..3d57886 100644 --- a/build.pkr.hcl +++ b/build.pkr.hcl @@ -69,20 +69,22 @@ data amazon-parameterstore playbook { locals { - aws_account_id = data.amazon-parameterstore.aws_account_id.value - aws_region = data.amazon-parameterstore.aws_region.value - source_image = data.amazon-parameterstore.source_image.value - source_tag = data.amazon-parameterstore.source_tag.value - source_docker_repo = data.amazon-parameterstore.source_docker_repo.value - dest_image = data.amazon-parameterstore.dest_image.value - dest_tag = data.amazon-parameterstore.dest_tag.value - dest_docker_repo = data.amazon-parameterstore.dest_docker_repo.value + aws_account_id = data.amazon-parameterstore.aws_account_id.value + aws_region = data.amazon-parameterstore.aws_region.value + source_image = data.amazon-parameterstore.source_image.value + source_tag = data.amazon-parameterstore.source_tag.value + source_docker_repo = data.amazon-parameterstore.source_docker_repo.value + dest_image = data.amazon-parameterstore.dest_image.value + dest_tag = data.amazon-parameterstore.dest_tag.value + dest_docker_repo = data.amazon-parameterstore.dest_docker_repo.value + aws_access_key_id = jsondecode(data.amazon-secretsmanager.aws_credentials.secret_string)["aws_access_key_id"] + aws_secret_access_key = jsondecode(data.amazon-secretsmanager.aws_credentials.secret_string)["aws_secret_access_key"] } source "docker" "docker" { - image = "${local.aws_account_id}.dkr.ecr.${local.aws_region}.amazonaws.com/${local.source_docker_repo}/${local.source_image}:${local.source_tag}" - commit = true - ecr_login = true + image = "${local.aws_account_id}.dkr.ecr.${local.aws_region}.amazonaws.com/${local.source_docker_repo}/${local.source_image}:${local.source_tag}" + commit = true + ecr_login = true login_server = "${local.aws_account_id}.dkr.ecr.${local.aws_region}.amazonaws.com" } @@ -91,10 +93,15 @@ build { # Provisioner to run the Ansible playbook provisioner "ansible" { - command = "/root/.local/bin/ansible-playbook" - playbook_file = "${var.ansible_dir}/${data.amazon-parameterstore.playbook.value}" - roles_path = "${var.ansible_dir}/roles" - ansible_env_vars = ["ANSIBLE_STDOUT_CALLBACK=yaml", "ANSIBLE_NOCOLOR=True"] + command = "/root/.local/bin/ansible-playbook" + playbook_file = "${var.ansible_dir}/${data.amazon-parameterstore.playbook.value}" + roles_path = "${var.ansible_dir}/roles" + ansible_env_vars = [ + "ANSIBLE_STDOUT_CALLBACK=yaml", + "ANSIBLE_NOCOLOR=True", + "AWS_ACCESS_KEY_ID=${local.aws_access_key_id}", + "AWS_SECRET_ACCESS_KEY=${local.aws_secret_access_key}" + ] } post-processors { @@ -104,14 +111,14 @@ build { } post-processor "docker-push" { - ecr_login = true + ecr_login = true login_server = "${local.aws_account_id}.dkr.ecr.${local.aws_region}.amazonaws.com" } } # Post-processor to write the build name to a file and print the AMI ID post-processor "manifest" { - output = "ami_id.json" + output = "ami_id.json" strip_path = true }