-
Notifications
You must be signed in to change notification settings - Fork 2
/
golden-image.json
99 lines (98 loc) · 2.99 KB
/
golden-image.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{
"variables": {
"aws_from": "debian-10-*",
"aws_machine": "t2.micro",
"aws_owners": "136693071363",
"aws_region": "eu-central-1",
"aws_user": "admin",
"compose_ver": "1.25.3",
"consul_ver": "1.6.2",
"ct_ver": "0.24.1",
"desc": "packer-golden-image",
"docker_ver": "5:19.03.5~3-0",
"goss_ver": "0.3.9",
"nomad_ver": "0.10.3",
"to": "golden-debian"
},
"builders": [
{
"name": "aws",
"type": "amazon-ebs",
"region": "{{user `aws_region`}}",
"ssh_username": "{{user `aws_user`}}",
"instance_type": "{{user `aws_machine`}}",
"tags": { "Name": "{{user `to`}}{{timestamp}}" },
"force_deregister": true,
"ami_name": "{{user `to`}}",
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"architecture" : "x86_64",
"name": "{{user `aws_from`}}",
"root-device-type": "ebs"
},
"owners": ["{{user `aws_owners`}}"],
"most_recent": true
}
}
],
"provisioners": [
{
"type": "shell",
"environment_vars": [
"DEBIAN_FRONTEND=noninteractive",
"CONSUL_VERSION={{user `consul_ver`}}",
"NOMAD_VERSION={{user `nomad_ver`}}",
"GOSS_VERSION={{user `goss_ver`}}",
"CONSUL_TEMPLATE_VERSION={{user `ct_ver`}}",
"DOCKER_COMPOSE_VERSION={{user `compose_ver`}}",
"DOCKER_VERSION={{user `docker_ver`}}",
"APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn"
],
"execute_command": "echo 'packer' | sudo -S bash -c '{{ .Vars }} {{ .Path }}'",
"scripts": [
"provision/{{build_name}}.sh",
"provision/consul.sh",
"provision/nomad.sh",
"provision/consul-template.sh",
"provision/docker-compose.sh",
"provision/goss.sh",
"provision/g.sh"
]
},
{
"type": "file",
"source": "configuration",
"destination": "/tmp"
},
{
"type": "shell",
"expect_disconnect": true,
"execute_command": "echo 'packer' | sudo -S bash -c '{{ .Vars }} {{ .Path }}'",
"environment_vars": [
"CONSUL_VERSION={{user `consul_ver`}}",
"NOMAD_VERSION={{user `nomad_ver`}}",
"CONSUL_TEMPLATE_VERSION={{user `ct_ver`}}",
"DOCKER_COMPOSE_VERSION={{user `compose_ver`}}",
"DOCKER_VERSION={{user `docker_ver`}}"
],
"inline": [
"mv /tmp/configuration/goss.yml /etc/goss/goss.yml",
"mv /tmp/configuration/rsyslog /etc/logrotate.d/rsyslog",
"chown -R root:root /etc/logrotate.d/rsyslog",
"mv /etc/cron.daily/logrotate /etc/cron.hourly/logrotate",
"echo 'ENABLED=true' | tee /etc/default/sysstat",
"goss --gossfile /etc/goss/goss.yml validate",
"systemctl daemon-reload",
"sudo systemctl reboot"
]
},
{
"type": "shell",
"pause_before": "1m",
"inline": [
"echo Reboot successful!"
]
}
]
}