terraform-aws-component-ansible-setup
Template repository for terraform modules. Good for any cloud and any provider.
Terraform module that creates an EC2 Image Builder component which installs Ansible on Amazon Linux 2
data "aws_caller_identity" "current" {
}
locals {
account_id = data. aws_caller_identity . current . account_id
tags = module. tags . tags_no_name
}
module "tags" {
source = " rhythmictech/tags"
version = " ~> 1.1.0"
names = [
" smiller" ,
" imagebuilder-test"
]
tags = merge ({
" Env" = " test"
" Namespace" = " smiller"
" notes" = " Testing only - Can be safely deleted"
" Owner" = var.owner
}, var. additional_tags )
}
module "component_ansible_setup" {
source = " rhythmictech/imagebuilder-component-ansible-setup/aws"
version = " ~> 1.0.0-rc1"
component_version = " 1.0.0"
description = " Testing ansible setup"
name = " testing-setup-component"
tags = local. tags
}
module "test_recipe" {
source = " rhythmictech/imagebuilder-recipe/aws"
version = " ~> 0.2.0"
description = " Testing recipe"
name = " test-recipe"
parent_image = " arn:aws:imagebuilder:us-east-1:aws:image/amazon-linux-2-x86/x.x.x"
recipe_version = " 1.0.0"
tags = local. tags
update = true
component_arns = [
module . component_ansible_setup . component_arn ,
" arn:aws:imagebuilder:us-east-1:aws:component/simple-boot-test-linux/1.0.0/1" ,
" arn:aws:imagebuilder:us-east-1:aws:component/reboot-test-linux/1.0.0/1"
]
}
module "test_pipeline" {
source = " rhythmictech/imagebuilder-pipeline/aws"
version = " ~> 0.3.0"
description = " Testing pipeline"
name = " test-pipeline"
tags = local. tags
recipe_arn = module. test_recipe . recipe_arn
public = false
}
This module serves as an EC2 Image Builder component to install Ansible on an Amazon Linux 2 image.
No modules.
Name
Description
Type
Default
Required
additional_packages
Space separated list of additional yum packages that may be needed for your ansible workflow
string
""
no
additional_pip_packages
Space separated list of additional pip packages that may be needed for your ansible workflow
string
""
no
ansible_use_venv
Whether or not ansible should be run in a virtual environment
bool
true
no
ansible_venv_path
Path at which to create the ansible virtual environment
string
"/var/tmp/ansible_venv/"
no
change_description
description of changes since last version
string
null
no
component_version
Version of the component
string
n/a
yes
data_uri
Use this to override the component document with one at a particualar URL endpoint
string
null
no
description
description of component
string
null
no
kms_key_id
KMS key to use for encryption
string
null
no
name
name to use for component
string
n/a
yes
platform
platform of component (Linux or Windows)
string
"Linux"
no
ssh_key_secret_arn
ARN of a secretsmanager secret containing an SSH key (use arn OR name, not both)
string
null
no
ssh_key_secret_name
Name of a secretsmanager secret containing an SSH key (use arn OR name, not both)
string
null
no
supported_os_versions
A set of operating system versions supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation.
set(string)
null
no
tags
map of tags to use for CFN stack and component
map(string)
{}
no
Name
Description
component_arn
ARN of the EC2 Image Builder Component
The Giants underneath this module
pre-commit.com/
terraform.io/
github.com/tfutils/tfenv
github.com/segmentio/terraform-docs