· 9 years ago · Sep 24, 2016, 03:42 AM
1{
2 "builders": [
3 {
4 "access_key": "{{user `var_aws_access_key`}}",
5 "ami_description": "My new AMI",
6 "ami_name": "CentOS 7 x86_64 Base {{timestamp}}",
7 "associate_public_ip_address": true,
8 "enhanced_networking": true,
9 "instance_type": "{{user `var_aws_instance_type`}}",
10 "region": "{{user `var_aws_region`}}",
11 "secret_key": "{{user `var_aws_secret_key`}}",
12 "source_ami": "{{user `var_aws_source_ami`}}",
13 "ssh_private_ip": false,
14 "ssh_pty": true,
15 "ssh_username": "{{user `var_ssh_username`}}",
16 "subnet_id": "{{user `var_aws_subnet_id`}}",
17 "tags": {
18 "Built": "{{isotime \"01-02-2006\"}}",
19 "Name": "{{user `var_atlas_buildname`}}",
20 "OS_Family": "RedHat",
21 "OS_Version": "CentOS",
22 "Release": "7"
23 },
24 "type": "amazon-ebs",
25 "vpc_id": "{{user `var_aws_vpc_id`}}"
26 }
27 ],
28 "description": "My New AMI",
29 "min_packer_version": "0.10.2",
30 "post-processors": [
31 {
32 "artifact": "{{user `var_atlas_username`}}/{{user `var_atlas_buildname`}}",
33 "artifact_type": "amazon.image",
34 "metadata": {
35 "created_at": "{{timestamp}}"
36 },
37 "only": [
38 "amazon-ebs"
39 ],
40 "token": "{{user `var_atlas_token`}}",
41 "type": "atlas"
42 }
43 ],
44 "provisioners": [
45 {
46 "inline": [
47 "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done"
48 ],
49 "type": "shell"
50 },
51 {
52 "execute_command": "sudo -E -S sh '{{ .Path }}'",
53 "scripts": [
54 "scripts/install_packages.sh",
55 "scripts/install_packages.sh"
56 ],
57 "type": "shell"
58 }
59 ],
60 "push": {
61 "name": "{{user `var_atlas_username`}}/{{user `var_atlas_buildname`}}",
62 "vcs": false
63 },
64 "variables": {
65 "var_atlas_buildname": "my-new-ami",
66 "var_atlas_token": "{{env `ATLAS_TOKEN`}}",
67 "var_atlas_username": "{{env `ATLAS_USERNAME`}}",
68 "var_aws_access_key": "{{env `AWS_ACCESS_KEY_ID`}}",
69 "var_aws_instance_type": "t2.micro",
70 "var_aws_region": "us-east-1",
71 "var_aws_secret_key": "{{env `AWS_SECRET_ACCESS_KEY`}}",
72 "var_aws_source_ami": "XXXXXXXXXXXXXXXX",
73 "var_aws_subnet_id": "XXXXXXXXXXXXXXX",
74 "var_aws_vpc_id": "XXXXXXXXXXXXXXXX",
75 "var_ssh_username": "XXXXXXXXXXXXXX"
76 }
77}
78
79
80
81
82
83
84
85
86############################
87
88
89
90$ cat scripts/install_packages.sh
91#!/bin/bash
92set -o pipefail
93set -x
94echo "+) Updating system packages"
95yum makecache
96yum update -y