├── LICENSE ├── http └── preseed.cfg ├── scripts ├── base.sh ├── cleanup.sh ├── dep.sh ├── vagrant.sh ├── virtualbox.sh ├── vmware.sh └── zerodisk.sh └── template.json /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 HashiCorp, Inc. 2 | 3 | Mozilla Public License, version 2.0 4 | 5 | 1. Definitions 6 | 7 | 1.1. “Contributor” 8 | 9 | means each individual or legal entity that creates, contributes to the 10 | creation of, or owns Covered Software. 11 | 12 | 1.2. “Contributor Version” 13 | 14 | means the combination of the Contributions of others (if any) used by a 15 | Contributor and that particular Contributor’s Contribution. 16 | 17 | 1.3. “Contribution” 18 | 19 | means Covered Software of a particular Contributor. 20 | 21 | 1.4. “Covered Software” 22 | 23 | means Source Code Form to which the initial Contributor has attached the 24 | notice in Exhibit A, the Executable Form of such Source Code Form, and 25 | Modifications of such Source Code Form, in each case including portions 26 | thereof. 27 | 28 | 1.5. “Incompatible With Secondary Licenses” 29 | means 30 | 31 | a. that the initial Contributor has attached the notice described in 32 | Exhibit B to the Covered Software; or 33 | 34 | b. that the Covered Software was made available under the terms of version 35 | 1.1 or earlier of the License, but not also under the terms of a 36 | Secondary License. 37 | 38 | 1.6. “Executable Form” 39 | 40 | means any form of the work other than Source Code Form. 41 | 42 | 1.7. “Larger Work” 43 | 44 | means a work that combines Covered Software with other material, in a separate 45 | file or files, that is not Covered Software. 46 | 47 | 1.8. “License” 48 | 49 | means this document. 50 | 51 | 1.9. “Licensable” 52 | 53 | means having the right to grant, to the maximum extent possible, whether at the 54 | time of the initial grant or subsequently, any and all of the rights conveyed by 55 | this License. 56 | 57 | 1.10. “Modifications” 58 | 59 | means any of the following: 60 | 61 | a. any file in Source Code Form that results from an addition to, deletion 62 | from, or modification of the contents of Covered Software; or 63 | 64 | b. any new file in Source Code Form that contains any Covered Software. 65 | 66 | 1.11. “Patent Claims” of a Contributor 67 | 68 | means any patent claim(s), including without limitation, method, process, 69 | and apparatus claims, in any patent Licensable by such Contributor that 70 | would be infringed, but for the grant of the License, by the making, 71 | using, selling, offering for sale, having made, import, or transfer of 72 | either its Contributions or its Contributor Version. 73 | 74 | 1.12. “Secondary License” 75 | 76 | means either the GNU General Public License, Version 2.0, the GNU Lesser 77 | General Public License, Version 2.1, the GNU Affero General Public 78 | License, Version 3.0, or any later versions of those licenses. 79 | 80 | 1.13. “Source Code Form” 81 | 82 | means the form of the work preferred for making modifications. 83 | 84 | 1.14. “You” (or “Your”) 85 | 86 | means an individual or a legal entity exercising rights under this 87 | License. For legal entities, “You” includes any entity that controls, is 88 | controlled by, or is under common control with You. For purposes of this 89 | definition, “control” means (a) the power, direct or indirect, to cause 90 | the direction or management of such entity, whether by contract or 91 | otherwise, or (b) ownership of more than fifty percent (50%) of the 92 | outstanding shares or beneficial ownership of such entity. 93 | 94 | 95 | 2. License Grants and Conditions 96 | 97 | 2.1. Grants 98 | 99 | Each Contributor hereby grants You a world-wide, royalty-free, 100 | non-exclusive license: 101 | 102 | a. under intellectual property rights (other than patent or trademark) 103 | Licensable by such Contributor to use, reproduce, make available, 104 | modify, display, perform, distribute, and otherwise exploit its 105 | Contributions, either on an unmodified basis, with Modifications, or as 106 | part of a Larger Work; and 107 | 108 | b. under Patent Claims of such Contributor to make, use, sell, offer for 109 | sale, have made, import, and otherwise transfer either its Contributions 110 | or its Contributor Version. 111 | 112 | 2.2. Effective Date 113 | 114 | The licenses granted in Section 2.1 with respect to any Contribution become 115 | effective for each Contribution on the date the Contributor first distributes 116 | such Contribution. 117 | 118 | 2.3. Limitations on Grant Scope 119 | 120 | The licenses granted in this Section 2 are the only rights granted under this 121 | License. No additional rights or licenses will be implied from the distribution 122 | or licensing of Covered Software under this License. Notwithstanding Section 123 | 2.1(b) above, no patent license is granted by a Contributor: 124 | 125 | a. for any code that a Contributor has removed from Covered Software; or 126 | 127 | b. for infringements caused by: (i) Your and any other third party’s 128 | modifications of Covered Software, or (ii) the combination of its 129 | Contributions with other software (except as part of its Contributor 130 | Version); or 131 | 132 | c. under Patent Claims infringed by Covered Software in the absence of its 133 | Contributions. 134 | 135 | This License does not grant any rights in the trademarks, service marks, or 136 | logos of any Contributor (except as may be necessary to comply with the 137 | notice requirements in Section 3.4). 138 | 139 | 2.4. Subsequent Licenses 140 | 141 | No Contributor makes additional grants as a result of Your choice to 142 | distribute the Covered Software under a subsequent version of this License 143 | (see Section 10.2) or under the terms of a Secondary License (if permitted 144 | under the terms of Section 3.3). 145 | 146 | 2.5. Representation 147 | 148 | Each Contributor represents that the Contributor believes its Contributions 149 | are its original creation(s) or it has sufficient rights to grant the 150 | rights to its Contributions conveyed by this License. 151 | 152 | 2.6. Fair Use 153 | 154 | This License is not intended to limit any rights You have under applicable 155 | copyright doctrines of fair use, fair dealing, or other equivalents. 156 | 157 | 2.7. Conditions 158 | 159 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in 160 | Section 2.1. 161 | 162 | 163 | 3. Responsibilities 164 | 165 | 3.1. Distribution of Source Form 166 | 167 | All distribution of Covered Software in Source Code Form, including any 168 | Modifications that You create or to which You contribute, must be under the 169 | terms of this License. You must inform recipients that the Source Code Form 170 | of the Covered Software is governed by the terms of this License, and how 171 | they can obtain a copy of this License. You may not attempt to alter or 172 | restrict the recipients’ rights in the Source Code Form. 173 | 174 | 3.2. Distribution of Executable Form 175 | 176 | If You distribute Covered Software in Executable Form then: 177 | 178 | a. such Covered Software must also be made available in Source Code Form, 179 | as described in Section 3.1, and You must inform recipients of the 180 | Executable Form how they can obtain a copy of such Source Code Form by 181 | reasonable means in a timely manner, at a charge no more than the cost 182 | of distribution to the recipient; and 183 | 184 | b. You may distribute such Executable Form under the terms of this License, 185 | or sublicense it under different terms, provided that the license for 186 | the Executable Form does not attempt to limit or alter the recipients’ 187 | rights in the Source Code Form under this License. 188 | 189 | 3.3. Distribution of a Larger Work 190 | 191 | You may create and distribute a Larger Work under terms of Your choice, 192 | provided that You also comply with the requirements of this License for the 193 | Covered Software. If the Larger Work is a combination of Covered Software 194 | with a work governed by one or more Secondary Licenses, and the Covered 195 | Software is not Incompatible With Secondary Licenses, this License permits 196 | You to additionally distribute such Covered Software under the terms of 197 | such Secondary License(s), so that the recipient of the Larger Work may, at 198 | their option, further distribute the Covered Software under the terms of 199 | either this License or such Secondary License(s). 200 | 201 | 3.4. Notices 202 | 203 | You may not remove or alter the substance of any license notices (including 204 | copyright notices, patent notices, disclaimers of warranty, or limitations 205 | of liability) contained within the Source Code Form of the Covered 206 | Software, except that You may alter any license notices to the extent 207 | required to remedy known factual inaccuracies. 208 | 209 | 3.5. Application of Additional Terms 210 | 211 | You may choose to offer, and to charge a fee for, warranty, support, 212 | indemnity or liability obligations to one or more recipients of Covered 213 | Software. However, You may do so only on Your own behalf, and not on behalf 214 | of any Contributor. You must make it absolutely clear that any such 215 | warranty, support, indemnity, or liability obligation is offered by You 216 | alone, and You hereby agree to indemnify every Contributor for any 217 | liability incurred by such Contributor as a result of warranty, support, 218 | indemnity or liability terms You offer. You may include additional 219 | disclaimers of warranty and limitations of liability specific to any 220 | jurisdiction. 221 | 222 | 4. Inability to Comply Due to Statute or Regulation 223 | 224 | If it is impossible for You to comply with any of the terms of this License 225 | with respect to some or all of the Covered Software due to statute, judicial 226 | order, or regulation then You must: (a) comply with the terms of this License 227 | to the maximum extent possible; and (b) describe the limitations and the code 228 | they affect. Such description must be placed in a text file included with all 229 | distributions of the Covered Software under this License. Except to the 230 | extent prohibited by statute or regulation, such description must be 231 | sufficiently detailed for a recipient of ordinary skill to be able to 232 | understand it. 233 | 234 | 5. Termination 235 | 236 | 5.1. The rights granted under this License will terminate automatically if You 237 | fail to comply with any of its terms. However, if You become compliant, 238 | then the rights granted under this License from a particular Contributor 239 | are reinstated (a) provisionally, unless and until such Contributor 240 | explicitly and finally terminates Your grants, and (b) on an ongoing basis, 241 | if such Contributor fails to notify You of the non-compliance by some 242 | reasonable means prior to 60 days after You have come back into compliance. 243 | Moreover, Your grants from a particular Contributor are reinstated on an 244 | ongoing basis if such Contributor notifies You of the non-compliance by 245 | some reasonable means, this is the first time You have received notice of 246 | non-compliance with this License from such Contributor, and You become 247 | compliant prior to 30 days after Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, counter-claims, 251 | and cross-claims) alleging that a Contributor Version directly or 252 | indirectly infringes any patent, then the rights granted to You by any and 253 | all Contributors for the Covered Software under Section 2.1 of this License 254 | shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user 257 | license agreements (excluding distributors and resellers) which have been 258 | validly granted by You or Your distributors under this License prior to 259 | termination shall survive termination. 260 | 261 | 6. Disclaimer of Warranty 262 | 263 | Covered Software is provided under this License on an “as is” basis, without 264 | warranty of any kind, either expressed, implied, or statutory, including, 265 | without limitation, warranties that the Covered Software is free of defects, 266 | merchantable, fit for a particular purpose or non-infringing. The entire 267 | risk as to the quality and performance of the Covered Software is with You. 268 | Should any Covered Software prove defective in any respect, You (not any 269 | Contributor) assume the cost of any necessary servicing, repair, or 270 | correction. This disclaimer of warranty constitutes an essential part of this 271 | License. No use of any Covered Software is authorized under this License 272 | except under this disclaimer. 273 | 274 | 7. Limitation of Liability 275 | 276 | Under no circumstances and under no legal theory, whether tort (including 277 | negligence), contract, or otherwise, shall any Contributor, or anyone who 278 | distributes Covered Software as permitted above, be liable to You for any 279 | direct, indirect, special, incidental, or consequential damages of any 280 | character including, without limitation, damages for lost profits, loss of 281 | goodwill, work stoppage, computer failure or malfunction, or any and all 282 | other commercial damages or losses, even if such party shall have been 283 | informed of the possibility of such damages. This limitation of liability 284 | shall not apply to liability for death or personal injury resulting from such 285 | party’s negligence to the extent applicable law prohibits such limitation. 286 | Some jurisdictions do not allow the exclusion or limitation of incidental or 287 | consequential damages, so this exclusion and limitation may not apply to You. 288 | 289 | 8. Litigation 290 | 291 | Any litigation relating to this License may be brought only in the courts of 292 | a jurisdiction where the defendant maintains its principal place of business 293 | and such litigation shall be governed by laws of that jurisdiction, without 294 | reference to its conflict-of-law provisions. Nothing in this Section shall 295 | prevent a party’s ability to bring cross-claims or counter-claims. 296 | 297 | 9. Miscellaneous 298 | 299 | This License represents the complete agreement concerning the subject matter 300 | hereof. If any provision of this License is held to be unenforceable, such 301 | provision shall be reformed only to the extent necessary to make it 302 | enforceable. Any law or regulation which provides that the language of a 303 | contract shall be construed against the drafter shall not be used to construe 304 | this License against a Contributor. 305 | 306 | 307 | 10. Versions of the License 308 | 309 | 10.1. New Versions 310 | 311 | Mozilla Foundation is the license steward. Except as provided in Section 312 | 10.3, no one other than the license steward has the right to modify or 313 | publish new versions of this License. Each version will be given a 314 | distinguishing version number. 315 | 316 | 10.2. Effect of New Versions 317 | 318 | You may distribute the Covered Software under the terms of the version of 319 | the License under which You originally received the Covered Software, or 320 | under the terms of any subsequent version published by the license 321 | steward. 322 | 323 | 10.3. Modified Versions 324 | 325 | If you create software not governed by this License, and you want to 326 | create a new license for such software, you may create and use a modified 327 | version of this License if you rename the license and remove any 328 | references to the name of the license steward (except to note that such 329 | modified license differs from this License). 330 | 331 | 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses 332 | If You choose to distribute Source Code Form that is Incompatible With 333 | Secondary Licenses under the terms of this version of the License, the 334 | notice described in Exhibit B of this License must be attached. 335 | 336 | Exhibit A - Source Code Form License Notice 337 | 338 | This Source Code Form is subject to the 339 | terms of the Mozilla Public License, v. 340 | 2.0. If a copy of the MPL was not 341 | distributed with this file, You can 342 | obtain one at 343 | http://mozilla.org/MPL/2.0/. 344 | 345 | If it is not possible or desirable to put the notice in a particular file, then 346 | You may include the notice in a location (such as a LICENSE file in a relevant 347 | directory) where a recipient would be likely to look for such a notice. 348 | 349 | You may add additional accurate notices of copyright ownership. 350 | 351 | Exhibit B - “Incompatible With Secondary Licenses” Notice 352 | 353 | This Source Code Form is “Incompatible 354 | With Secondary Licenses”, as defined by 355 | the Mozilla Public License, v. 2.0. 356 | 357 | -------------------------------------------------------------------------------- /http/preseed.cfg: -------------------------------------------------------------------------------- 1 | ## Options to set on the command line 2 | d-i debian-installer/locale string en_US.utf8 3 | d-i console-setup/ask_detect boolean false 4 | d-i console-setup/layout string USA 5 | 6 | #d-i netcfg/get_hostname string dummy 7 | d-i netcfg/get_hostname string unassigned-hostname 8 | d-i netcfg/get_domain string unassigned-domain 9 | 10 | # Continue without a default route 11 | # Not working , specify a dummy in the DHCP 12 | #d-i netcfg/no_default_route boolean 13 | 14 | d-i time/zone string UTC 15 | d-i clock-setup/utc-auto boolean true 16 | d-i clock-setup/utc boolean true 17 | 18 | d-i kbd-chooser/method select American English 19 | 20 | d-i netcfg/wireless_wep string 21 | 22 | d-i base-installer/kernel/override-image string linux-server 23 | #d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic 24 | 25 | # Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive 26 | d-i debconf debconf/frontend select Noninteractive 27 | 28 | d-i pkgsel/install-language-support boolean false 29 | tasksel tasksel/first multiselect standard, ubuntu-server 30 | 31 | #d-i partman-auto/method string regular 32 | d-i partman-auto/method string lvm 33 | #d-i partman-auto/purge_lvm_from_device boolean true 34 | 35 | d-i partman-lvm/confirm boolean true 36 | d-i partman-lvm/device_remove_lvm boolean true 37 | d-i partman-auto/choose_recipe select atomic 38 | 39 | d-i partman/confirm_write_new_label boolean true 40 | d-i partman/confirm_nooverwrite boolean true 41 | d-i partman/choose_partition select finish 42 | d-i partman/confirm boolean true 43 | 44 | #http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883 45 | #Message: "write the changes to disk and configure lvm preseed" 46 | #http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input 47 | #preseed partman-lvm/confirm_nooverwrite boolean true 48 | 49 | # Write the changes to disks and configure LVM? 50 | d-i partman-lvm/confirm boolean true 51 | d-i partman-lvm/confirm_nooverwrite boolean true 52 | d-i partman-auto-lvm/guided_size string max 53 | 54 | ## Default user, we can get away with a recipe to change this 55 | d-i passwd/user-fullname string vagrant 56 | d-i passwd/username string vagrant 57 | d-i passwd/user-password password vagrant 58 | d-i passwd/user-password-again password vagrant 59 | d-i user-setup/encrypt-home boolean false 60 | d-i user-setup/allow-password-weak boolean true 61 | 62 | ## minimum is puppet and ssh and ntp 63 | # Individual additional packages to install 64 | d-i pkgsel/include string openssh-server ntp 65 | 66 | # Whether to upgrade packages after debootstrap. 67 | # Allowed values: none, safe-upgrade, full-upgrade 68 | d-i pkgsel/upgrade select full-upgrade 69 | 70 | d-i grub-installer/only_debian boolean true 71 | d-i grub-installer/with_other_os boolean true 72 | d-i finish-install/reboot_in_progress note 73 | 74 | #For the update 75 | d-i pkgsel/update-policy select none 76 | 77 | # debconf-get-selections --install 78 | #Use mirror 79 | #d-i apt-setup/use_mirror boolean true 80 | #d-i mirror/country string manual 81 | #choose-mirror-bin mirror/protocol string http 82 | #choose-mirror-bin mirror/http/hostname string 192.168.4.150 83 | #choose-mirror-bin mirror/http/directory string /ubuntu 84 | #choose-mirror-bin mirror/suite select maverick 85 | #d-i debian-installer/allow_unauthenticated string true 86 | 87 | choose-mirror-bin mirror/http/proxy string 88 | 89 | d-i preseed/late_command string \ 90 | in-target sed -i 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/g' /etc/sudoers 91 | 92 | -------------------------------------------------------------------------------- /scripts/base.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | perl -p -i -e 's#http://us.archive.ubuntu.com/ubuntu#http://mirror.rackspace.com/ubuntu#gi' /etc/apt/sources.list 7 | 8 | # Update the box 9 | apt-get -y update >/dev/null 10 | apt-get -y install facter linux-headers-$(uname -r) build-essential zlib1g-dev libssl-dev libreadline-gplv2-dev curl unzip >/dev/null 11 | 12 | # Tweak sshd to prevent DNS resolution (speed up logins) 13 | echo 'UseDNS no' >> /etc/ssh/sshd_config 14 | 15 | # Remove 5s grub timeout to speed up booting 16 | cat < /etc/default/grub 17 | # If you change this file, run 'update-grub' afterwards to update 18 | # /boot/grub/grub.cfg. 19 | 20 | GRUB_DEFAULT=0 21 | GRUB_TIMEOUT=0 22 | GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` 23 | GRUB_CMDLINE_LINUX_DEFAULT="quiet" 24 | GRUB_CMDLINE_LINUX="debian-installer=en_US" 25 | EOF 26 | 27 | update-grub 28 | -------------------------------------------------------------------------------- /scripts/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | # Removing leftover leases and persistent rules 7 | echo "cleaning up dhcp leases" 8 | rm /var/lib/dhcp/* 9 | 10 | # Make sure Udev doesn't block our network 11 | echo "cleaning up udev rules" 12 | rm /etc/udev/rules.d/70-persistent-net.rules 13 | mkdir /etc/udev/rules.d/70-persistent-net.rules 14 | rm -rf /dev/.udev/ 15 | rm /lib/udev/rules.d/75-persistent-net-generator.rules 16 | 17 | echo "Adding a 2 sec delay to the interface up, to make the dhclient happy" 18 | echo "pre-up sleep 2" >> /etc/network/interfaces 19 | -------------------------------------------------------------------------------- /scripts/dep.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | # 6 | # Setup the the box. This runs as root 7 | 8 | apt-get -y update 9 | 10 | apt-get -y install curl 11 | 12 | # You can install anything you need here. 13 | -------------------------------------------------------------------------------- /scripts/vagrant.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | # Vagrant specific 7 | date > /etc/vagrant_box_build_time 8 | 9 | # Installing vagrant keys 10 | mkdir -pm 700 /home/vagrant/.ssh 11 | wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys 12 | chmod 0600 /home/vagrant/.ssh/authorized_keys 13 | chown -R vagrant /home/vagrant/.ssh 14 | 15 | # Customize the message of the day 16 | echo 'Development Environment' > /etc/motd 17 | -------------------------------------------------------------------------------- /scripts/virtualbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | # Bail if we are not running inside VirtualBox. 7 | if [[ `facter virtual` != "virtualbox" ]]; then 8 | exit 0 9 | fi 10 | 11 | mkdir -p /mnt/virtualbox 12 | mount -o loop /home/vagrant/VBoxGuest*.iso /mnt/virtualbox 13 | sh /mnt/virtualbox/VBoxLinuxAdditions.run 14 | ln -s /opt/VBoxGuestAdditions-*/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions 15 | umount /mnt/virtualbox 16 | rm -rf /home/vagrant/VBoxGuest*.iso 17 | -------------------------------------------------------------------------------- /scripts/vmware.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | # Bail if we are not running inside VMWare. 7 | if [[ `facter virtual` != "vmware" ]]; then 8 | exit 0 9 | fi 10 | 11 | # Install the VMWare Tools from a linux ISO. 12 | 13 | #wget http://192.168.0.185/linux.iso -P /tmp 14 | mkdir -p /mnt/vmware 15 | mount -o loop /home/vagrant/linux.iso /mnt/vmware 16 | 17 | cd /tmp 18 | tar xzf /mnt/vmware/VMwareTools-*.tar.gz 19 | 20 | umount /mnt/vmware 21 | rm -fr /home/vagrant/linux.iso 22 | 23 | /tmp/vmware-tools-distrib/vmware-install.pl -d 24 | rm -fr /tmp/vmware-tools-distrib 25 | -------------------------------------------------------------------------------- /scripts/zerodisk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) HashiCorp, Inc. 3 | # SPDX-License-Identifier: MPL-2.0 4 | 5 | 6 | # Zero out the free space to save space in the final image: 7 | dd if=/dev/zero of=/EMPTY bs=1M 8 | rm -f /EMPTY 9 | 10 | # Sync to ensure that the delete completes before this moves on. 11 | sync 12 | sync 13 | sync 14 | -------------------------------------------------------------------------------- /template.json: -------------------------------------------------------------------------------- 1 | { 2 | "push": { 3 | "name": "", 4 | "vcs": true 5 | }, 6 | "variables": { 7 | "atlas_username": "{{env `ATLAS_USERNAME`}}", 8 | "atlas_name": "{{env `ATLAS_NAME`}}" 9 | }, 10 | "provisioners": [ 11 | { 12 | "type": "shell", 13 | "scripts": [ 14 | "scripts/base.sh", 15 | "scripts/virtualbox.sh", 16 | "scripts/vmware.sh", 17 | "scripts/vagrant.sh", 18 | "scripts/dep.sh", 19 | "scripts/cleanup.sh", 20 | "scripts/zerodisk.sh" 21 | ], 22 | "override": { 23 | "virtualbox-iso": { 24 | "execute_command": "echo 'vagrant'|sudo -S bash '{{.Path}}'" 25 | }, 26 | "vmware-iso": { 27 | "execute_command": "echo 'vagrant'|sudo -S bash '{{.Path}}'" 28 | } 29 | } 30 | } 31 | ], 32 | "builders": [ 33 | { 34 | "type": "virtualbox-iso", 35 | "boot_command": [ 36 | "", 37 | "/install/vmlinuz noapic preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", 38 | "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ", 39 | "hostname={{ .Name }} ", 40 | "fb=false debconf/frontend=noninteractive ", 41 | "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA keyboard-configuration/variant=USA console-setup/ask_detect=false ", 42 | "initrd=/install/initrd.gz -- " 43 | ], 44 | "headless": true, 45 | "boot_wait": "10s", 46 | "disk_size": 20480, 47 | "guest_os_type": "Ubuntu_64", 48 | "http_directory": "http", 49 | "iso_checksum": "af224223de99e2a730b67d7785b657f549be0d63221188e105445f75fb8305c9", 50 | "iso_checksum_type": "sha256", 51 | "iso_url": "http://releases.ubuntu.com/precise/ubuntu-12.04.5-server-amd64.iso", 52 | "ssh_username": "vagrant", 53 | "ssh_password": "vagrant", 54 | "ssh_port": 22, 55 | "ssh_wait_timeout": "10000s", 56 | "shutdown_command": "echo '/sbin/halt -h -p' > shutdown.sh; echo 'vagrant'|sudo -S bash 'shutdown.sh'", 57 | "guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso", 58 | "virtualbox_version_file": ".vbox_version" 59 | }, 60 | { 61 | "type": "vmware-iso", 62 | "boot_command": [ 63 | "", 64 | "/install/vmlinuz noapic preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", 65 | "debian-installer=en_US auto locale=en_US kbd-chooser/method=us ", 66 | "hostname={{ .Name }} ", 67 | "fb=false debconf/frontend=noninteractive ", 68 | "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA keyboard-configuration/variant=USA console-setup/ask_detect=false ", 69 | "initrd=/install/initrd.gz -- " 70 | ], 71 | "boot_wait": "10s", 72 | "disk_size": 20480, 73 | "guest_os_type": "Ubuntu-64", 74 | "headless": true, 75 | "http_directory": "http", 76 | "iso_checksum": "af224223de99e2a730b67d7785b657f549be0d63221188e105445f75fb8305c9", 77 | "iso_checksum_type": "sha256", 78 | "iso_url": "http://releases.ubuntu.com/precise/ubuntu-12.04.5-server-amd64.iso", 79 | "skip_compaction": true, 80 | "ssh_username": "vagrant", 81 | "ssh_password": "vagrant", 82 | "ssh_port": 22, 83 | "ssh_wait_timeout": "10000s", 84 | "shutdown_command": "echo '/sbin/halt -h -p' > shutdown.sh; echo 'vagrant'|sudo -S bash 'shutdown.sh'", 85 | "tools_upload_flavor": "linux" 86 | } 87 | ], 88 | "post-processors": [ 89 | [{ 90 | "type": "vagrant", 91 | "keep_input_artifact": false 92 | }, 93 | { 94 | "type": "atlas", 95 | "only": ["vmware-iso"], 96 | "artifact": "{{user `atlas_username`}}/{{user `atlas_name`}}", 97 | "artifact_type": "vagrant.box", 98 | "metadata": { 99 | "provider": "vmware_desktop", 100 | "version": "0.0.1" 101 | } 102 | }, 103 | { 104 | "type": "atlas", 105 | "only": ["virtualbox-iso"], 106 | "artifact": "{{user `atlas_username`}}/{{user `atlas_name`}}", 107 | "artifact_type": "vagrant.box", 108 | "metadata": { 109 | "provider": "virtualbox", 110 | "version": "0.0.1" 111 | } 112 | }] 113 | ] 114 | } 115 | --------------------------------------------------------------------------------