Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save pandeyvinod/577f8a9b22ae0756cb5f9a683154ede5 to your computer and use it in GitHub Desktop.
Save pandeyvinod/577f8a9b22ae0756cb5f9a683154ede5 to your computer and use it in GitHub Desktop.
packer example for amazon linux 2
{
"min_packer_version": "1.4.2",
"variables": {
"ami_name": "basebuild-amzn-linux2-{{isotime \"2006-01-02_15:04\"}}",
"aws_region": "eu-west-1",
"aws_profile": "aws-profile",
"aws_tag_COST_CENTER": "COSTCENTER",
"aws_tag_BUSINESS": "IT",
"aws_tag_ENVIRONMENT": "NON-PRODUCTION",
"aws_tag_OWNER": "OWNER-TAG",
"aws_tag_PROJECT": "PROJECT-TAG"
},
"builders": [
{
"name": "basebuild-amazon-linux2-ami",
"ami_name": "{{user `ami_name` | clean_resource_name}}",
"ami_description": "An Amazon Linux 2 AMI Image.",
"instance_type": "t3a.large",
"region": "{{user `aws_region`}}",
"profile": "{{user `aws_profile`}}",
"spot_price": "auto",
"spot_price_auto_product": "Linux/UNIX",
"spot_tags": {
"COST-CENTER": "{{user `aws_tag_COST_CENTER`}}",
"BUSINESS": "{{user `aws_tag_BUSINESS`}}",
"ENVIRONMENT": "{{user `aws_tag_ENVIRONMENT`}}",
"OWNER": "{{user `aws_tag_OWNER`}}",
"PROJECT": "{{user `aws_tag_PROJECT`}}"
},
"type": "amazon-ebs",
"ssh_interface": "public_ip",
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"architecture": "x86_64",
"name": "*amzn2-ami-hvm-*",
"block-device-mapping.volume-type": "gp2",
"root-device-type": "ebs"
},
"owners": [
"amazon"
],
"most_recent": true
},
"run_tags": {
"Name": "packer-builder-basebuild-amzn-linux2",
"COST-CENTER": "{{user `aws_tag_COST_CENTER`}}",
"BUSINESS": "{{user `aws_tag_BUSINESS`}}",
"ENVIRONMENT": "{{user `aws_tag_ENVIRONMENT`}}",
"OWNER": "{{user `aws_tag_OWNER`}}",
"PROJECT": "{{user `aws_tag_PROJECT`}}"
},
"run_volume_tags": {
"Name": "packer-builder-basebuild-amzn-linux2",
"COST-CENTER": "{{user `aws_tag_COST_CENTER`}}",
"BUSINESS": "{{user `aws_tag_BUSINESS`}}",
"ENVIRONMENT": "{{user `aws_tag_ENVIRONMENT`}}",
"OWNER": "{{user `aws_tag_OWNER`}}",
"PROJECT": "{{user `aws_tag_PROJECT`}}"
},
"tags": {
"Name": "{{user `ami_name`}}",
"COST-CENTER": "{{user `aws_tag_COST_CENTER`}}",
"BUSINESS": "{{user `aws_tag_BUSINESS`}}",
"ENVIRONMENT": "{{user `aws_tag_ENVIRONMENT`}}",
"OWNER": "{{user `aws_tag_OWNER`}}",
"PROJECT": "{{user `aws_tag_PROJECT`}}"
},
"snapshot_tags": {
"Name": "{{user `ami_name`}}",
"COST-CENTER": "{{user `aws_tag_COST_CENTER`}}",
"BUSINESS": "{{user `aws_tag_BUSINESS`}}",
"ENVIRONMENT": "{{user `aws_tag_ENVIRONMENT`}}",
"OWNER": "{{user `aws_tag_OWNER`}}",
"PROJECT": "{{user `aws_tag_PROJECT`}}"
},
"ssh_username": "ec2-user"
}
],
"provisioners": [
{
"type": "shell",
"inline": [
"sudo yum install -y python-pip",
"sudo pip install --upgrade pip",
"sudo pip install --upgrade ansible"
]
}
],
"post-processors": [
{
"type": "manifest",
"output": "manifest_basebuild-amznlinux2-{{user `aws_profile`}}-{{user `aws_region`}}-{{isotime \"2006-01-02_1504\"}}.json",
"strip_path": true
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment