· 7 years ago · Nov 06, 2018, 08:36 PM
1{
2 "variables": {
3 "aws_access_key": "{{env `AWS_ACCESS_KEY_ID`}}",
4 "aws_secret_key": "{{env `AWS_SECRET_ACCESS_KEY`}}",
5 "aws_session_token": "{{env `AWS_SESSION_TOKEN`}}",
6 "build_timestamp": "{{timestamp}}",
7 "kubernetes_version": "1.12.0-00",
8 "kubernetes_cni_version": "0.6.0-00",
9 "existing_ansible_ssh_args": "{{env `ANSIBLE_SSH_ARGS`}}",
10 "ami_groups": "all",
11 "ami_regions": "ap-south-1,eu-west-3,eu-west-2,eu-west-1,ap-northeast-2,ap-northeast-1,sa-east-1,ca-central-1,ap-southeast-1,ap-southeast-2,eu-central-1,us-east-1,us-east-2,us-west-1,us-west-2"
12 },
13 "builders": [
14 {
15 "name": "ubuntu-1804-amazon",
16 "type": "amazon-ebs",
17 "instance_type": "t2.small",
18 "source_ami": "{{user `ubuntu_18_04_ami`}}",
19 "source_ami_filter": {
20 "filters": {
21 "virtualization-type": "hvm",
22 "name": "ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*",
23 "root-device-type": "ebs"
24 },
25 "owners": [
26 "099720109477"
27 ],
28 "most_recent": true
29 },
30 "ami_name": "ami-ubuntu-18.04-{{user `kubernetes_version`}}-{{user `build_timestamp`}}",
31 "ami_groups": "{{user `ami_groups`}}",
32 "ami_regions": "{{user `ami_regions`}}",
33 "region": "{{user `build_region`}}",
34 "profile": "{{user `profile`}}",
35 "access_key": "",
36 "secret_key": "",
37 "token": "",
38 "ssh_pty": true,
39 "ssh_username": "ubuntu",
40 "subnet_id": "{{user `build_subnet_id`}}",
41 "run_tags": {
42 "Environment": "{{user `build_environment`}}",
43 "InventoryCode": "PRD354",
44 "ProductCode": "packer"
45 },
46 "run_volume_tags": {
47 "Environment": "{{user `build_environment`}}",
48 "InventoryCode": "PRD354",
49 "ProductCode": "packer"
50 },
51 "tags": {
52 "build_timestamp": "{{user `build_timestamp`}}",
53 "source_ami": "{{.SourceAMI}}",
54 "build_date": "{{isotime}}",
55 "distribution": "Ubuntu",
56 "distribution_release": "bionic",
57 "distribution_version": "18.04",
58 "kubernetes_version": "{{user `kubernetes_version`}}",
59 "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}"
60 }
61 },
62 {
63 "name": "ubuntu-1804-cloudstack",
64 "type": "qemu",
65 "vnc_bind_address": "0.0.0.0",
66 "headless": "true",
67 "vm_name": "ubuntu-18.04-{{user `kubernetes_version`}}-{{user `build_timestamp`}}",
68 "output_directory": "ubuntu-k8s",
69 "iso_checksum_type": "sha256",
70 "iso_checksum_url": "http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/SHA256SUMS",
71 "iso_urls": [
72 "http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/mini.iso"
73 ],
74 "ssh_username": "ubuntu",
75 "ssh_password": "ubuntu",
76 "ssh_wait_timeout": "60m",
77 "shutdown_command": "echo 'ubuntu' | sudo -S shutdown -P now",
78 "boot_wait": "5s",
79 "boot_command": [
80 "<tab>",
81 "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
82 "auto=true ",
83 "net.ifnames=0 ",
84 "hostname=localhost ",
85 "<enter>"
86 ],
87 "disk_size": 16384,
88 "http_directory": "http"
89 },
90 {
91 "name": "centos-7",
92 "type": "amazon-ebs",
93 "instance_type": "t2.small",
94 "source_ami": "{{user `centos_7_ami`}}",
95 "ami_name": "ami-centos-7-{{user `kubernetes_version`}}-{{user `build_timestamp`}}",
96 "ami_groups": "{{user `ami_groups`}}",
97 "ami_product_codes": "",
98 "ami_regions": "{{user `ami_regions`}}",
99 "region": "{{user `build_region`}}",
100 "access_key": "{{user `aws_access_key`}}",
101 "secret_key": "{{user `aws_secret_key`}}",
102 "profile": "{{user `profile`}}",
103 "ssh_username": "centos",
104 "subnet_id": "{{user `build_subnet_id`}}",
105 "tags": {
106 "build_timestamp": "{{user `build_timestamp`}}",
107 "source_ami": "{{.SourceAMI}}",
108 "build_date": "{{isotime}}",
109 "distribution": "CentOS",
110 "distribution_release": "Core",
111 "distribution_version": "7",
112 "kubernetes_version": "{{user `kubernetes_version`}}",
113 "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}"
114 }
115 },
116 {
117 "name": "amazon-2",
118 "type": "amazon-ebs",
119 "instance_type": "t2.small",
120 "source_ami": "{{user `amazon_2_ami`}}",
121 "ami_name": "ami-amazon-2-{{user `kubernetes_version`}}-{{user `build_timestamp`}}",
122 "ami_groups": "{{user `ami_groups`}}",
123 "ami_regions": "{{user `ami_regions`}}",
124 "region": "{{user `build_region`}}",
125 "access_key": "{{user `aws_access_key`}}",
126 "secret_key": "{{user `aws_secret_key`}}",
127 "profile": "{{user `profile`}}",
128 "ssh_username": "ec2-user",
129 "subnet_id": "{{user `build_subnet_id`}}",
130 "tags": {
131 "build_timestamp": "{{user `build_timestamp`}}",
132 "source_ami": "{{.SourceAMI}}",
133 "build_date": "{{isotime}}",
134 "distribution": "Amazon Linux",
135 "distribution_release": "Amazon Linux 2",
136 "distribution_version": "2",
137 "kubernetes_version": "{{user `kubernetes_version`}}",
138 "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}"
139 }
140 }
141 ],
142 "provisioners": [
143 {
144 "type": "shell",
145 "inline": [
146 "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done",
147 "apt-get update",
148 "apt-get -y install python python-pip"
149 ],
150 "execute_command": "sudo env {{ .Vars }} {{ .Path }}",
151 "only": [
152 "ubuntu-1804-amazon"
153 ]
154 },
155 {
156 "type": "shell",
157 "inline": [
158 "apt-get update",
159 "apt-get -y install python python-pip"
160 ],
161 "execute_command": "echo 'ubuntu' | sudo -S env {{ .Vars }} {{ .Path }}",
162 "only": [
163 "ubuntu-1804-cloudstack"
164 ]
165 },
166 {
167 "type": "ansible",
168 "playbook_file": "../ansible/playbook.yml",
169 "ansible_env_vars": [
170 "ANSIBLE_SSH_ARGS='{{user `existing_ansible_ssh_args`}} -o IdentitiesOnly=yes'",
171 "ANSIBLE_REMOTE_TEMP='/tmp/.ansible/'"
172 ],
173 "extra_arguments": [
174 "--extra-vars",
175 "kubernetes_version={{user `kubernetes_version`}} kubernetes_cni_version={{user `kubernetes_cni_version`}}"
176 ]
177 }
178 ]
179}