forked from FINkit/development-environment-base
/
development-environment-base.json
134 lines (134 loc) · 4.62 KB
/
development-environment-base.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
{
"variables": {
"atlas_username": "{{env `ATLAS_USERNAME`}}",
"cloud_token": "{{env `VAGRANT_CLOUD_TOKEN`}}",
"cloud_endpoint": "{{env `VAGRANT_CLOUD_ENDPOINT`}}",
"iso_checksum": "0a03608988cfd2e50567990dc8be96fb3c501e198e2e6efcb846d89efc7b89f2",
"iso_checksum_type": "sha256",
"iso_file": "http://releases.ubuntu.com/16.04/ubuntu-16.04.4-server-amd64.iso",
"preseed_file": "base.seed",
"sudo_password": "vagrant",
"vagrant_box_file": "build/{{isotime \"2006-01-02-15-10\"}}/{{env `ATLAS_NAME`}}.box",
"vm_name": "{{env `ATLAS_NAME`}}",
"vm_type": "Ubuntu_64",
"vm_cpus": "1",
"vm_ram_size": "2048",
"vm_vram_size": "64",
"vm_disk_size": "30720",
"version": "1.0.{{timestamp}}"
},
"provisioners": [
{
"type": "shell",
"execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
"scripts": [
"scripts/enable_passwordless_sudo.sh",
"scripts/ansible.sh"
]
},
{
"type": "ansible-local",
"playbook_file": "./ansible/main.yml",
"role_paths": [
"./ansible/roles/disable_auto_update",
"./ansible/roles/developer_packages",
"./ansible/roles/git",
"./ansible/roles/atom",
"./ansible/roles/docker_service",
"./ansible/roles/docker_compose",
"./ansible/roles/cf_cli",
"./ansible/roles/maven",
"./ansible/roles/gradle",
"./ansible/roles/intellij",
"./ansible/roles/sts",
"./ansible/roles/unity_desktop",
"./ansible/roles/go",
"./ansible/roles/postman",
"./ansible/roles/gitbook",
"./ansible/roles/compliance_masonry",
"./ansible/roles/gcloud",
"./ansible/roles/newrelic",
"./ansible/roles/bosh",
"./ansible/roles/fly",
"./ansible/roles/groovy",
"./ansible/roles/taurus"
]
},
{
"execute_command": "echo '{{user `sudo_password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'",
"only": [
"vbox"
],
"script": "scripts/cleanup.sh",
"type": "shell"
}
],
"builders": [
{
"name": "vbox",
"type": "virtualbox-iso",
"boot_command": [
"<enter><wait><f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
" /install/vmlinuz",
" debconf/priority=critical",
" locale=en_GB console-setup/layoutcode=gb",
" noapic hostname={{user `vm_name`}}",
" auto url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{user `preseed_file`}}",
" initrd=/install/initrd.gz",
" -- <enter>"
],
"boot_wait": "10s",
"disk_size": "{{user `vm_disk_size`}}",
"format": "ova",
"guest_os_type": "{{user `vm_type`}}",
"headless": true,
"http_directory": "http",
"iso_checksum": "{{user `iso_checksum`}}",
"iso_checksum_type": "{{user `iso_checksum_type`}}",
"iso_interface": "sata",
"iso_url": "{{user `iso_file`}}",
"output_directory": "output-{{user `vm_name` }}-{{isotime \"2006-01-02\"}}",
"shutdown_command": "echo 'packer' | sudo -S shutdown -P now",
"shutdown_timeout": "5m",
"ssh_username": "vagrant",
"ssh_password": "{{user `sudo_password`}}",
"ssh_port": 22,
"ssh_wait_timeout": "10000s",
"vboxmanage": [
[ "modifyvm", "{{.Name}}", "--cpus", "{{user `vm_cpus`}}" ],
[ "modifyvm", "{{.Name}}", "--memory", "{{user `vm_ram_size`}}" ],
[ "modifyvm", "{{.Name}}", "--vram", "{{user `vm_vram_size`}}" ]
],
"virtualbox_version_file": ".vbox_version"
}
],
"description": "A developer environment using the Ubuntu OS",
"post-processors": [
[
{
"compression_level": 9,
"keep_input_artifact": true,
"only": [
"vbox"
],
"output": "{{user `vagrant_box_file`}}",
"type": "vagrant",
"vagrantfile_template": "Vagrantfile.template"
},
{
"type": "vagrant-cloud",
"access_token": "{{user `cloud_token`}}",
"box_tag": "{{user `atlas_username`}}/{{user `vm_name`}}",
"version": "{{user `version`}}",
"vagrant_cloud_url": "{{user `cloud_endpoint`}}"
}
]
],
"push": {
"name": "finkit/development-environment-base",
"vcs": true
}
}