Skip to content

Commit

Permalink
packer: Initial packer config
Browse files Browse the repository at this point in the history
  • Loading branch information
the-maldridge committed Mar 31, 2019
1 parent ba7f0e9 commit 5859e79
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
*.iso
*.raw
*.tar.gz
*.box
xbps-cache
xbps-cachedir*
stamps*
!dracut/*/*.sh
!packer/scripts/*.sh
82 changes: 82 additions & 0 deletions packer/http/autoinstall.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#!/bin/sh
# Void Linux Automatic Install Configuration

# ===
# Disk Configuration
# ===
# disk: the disk to install to
# default: the first disk that isn't the installer
#disk=/dev/hda

# bootpartitionsize: controls how large the boot partition will be
# default: 500M
#bootpartitionsize=500M

# swapsize: how large should the swap partition be
# default: equal to the installed physical memory
#swapsize=

# ===
# XBPS Configuration
# ===
# xbpsrepository: which repo should the install pull from
# default: http://repo.voidlinux.eu/current

# pkgs: additional packages to install into the target
# default: none
#pkgs=""

# ===
# Default User
# ===
# username: the username of the user to be created
# default: voidlinux
username="vagrant"

# password: password to set for the new user
# default: unset (will prompt during install)
# Warning: This does not work in musl!
password="vagrant"

# ===
# Misc. Options
# ===
# timezone: Timezone in TZ format
# default: America/Chicago
#timezone="America/Chicago"

# keymap: Keymap to use by default
# default: us
#keymap

# locale: initial glibc locale
# default: en_US.UTF-8
#libclocale=en.US.UTF-8

# hostname: static hostname for the system
# default: derived from DNS
#hostname=VoidLinux

# end_action: what to do at the end of the install
# default: shutdown
# alternate values: reboot, script
end_action=func

# end_script: script to optionally run at end of install
# the user script must reside somewhere xbps-uhelper fetch
# can retrieve it from
# default: not set

end_function() {
printf "Linking default services"
chroot ${target} ln -s /etc/sv/dhcpcd /etc/runit/runsvdir/default/dhcpcd
chroot ${target} ln -s /etc/sv/sshd /etc/runit/runsvdir/default/sshd

xbps-install -r ${target} -Sy dbus virtualbox-ose-guest

chroot ${target} ln -s /etc/sv/dbus /etc/runit/runsvdir/default/dbus
chroot ${target} ln -s /etc/sv/vboxservice /etc/runit/runsvdir/default/vboxservice

sync
reboot -f
}
21 changes: 21 additions & 0 deletions packer/scripts/vagrant.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

# Set up sudo
echo '%vagrant ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/vagrant
echo 'Defaults:vagrant !requiretty' >> /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant

gpasswd -d vagrant wheel

sudo xbps-install -Sy wget

# Installing vagrant keys
mkdir /home/vagrant/.ssh
chmod 700 /home/vagrant/.ssh
cd /home/vagrant/.ssh
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh

# Install NFS for Vagrant
xbps-install -Sy nfs-utils
51 changes: 51 additions & 0 deletions packer/templates/vagrant-glibc64.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"variables": {
"version": "{{env `RELEASE`}}"
},
"builders": [
{
"type": "virtualbox-iso",
"vboxmanage": [
["modifyvm", "{{.Name}}", "--nictype1", "virtio"]
],
"iso_url": "https://alpha.de.repo.voidlinux.org/live/20190217/void-live-x86_64-20190217.iso",
"iso_checksum": "b6884f6ea435e242c29a5778ced7a1ce187cef2f07eb9543765064a1256030e9",
"iso_checksum_type": "sha256",
"boot_wait": "5s",
"boot_command": [
"<tab><wait>",
"auto autourl=http://{{ .HTTPIP }}:{{ .HTTPPort }}/autoinstall.cfg",
"<enter>"
],
"guest_os_type": "Linux_64",
"http_directory": "http",
"shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
"ssh_wait_timeout": "20m",
"virtualbox_version_file": ".vbox_version",
"guest_additions_mode": "disable",
"ssh_username": "vagrant",
"ssh_password": "vagrant"
}
],

"provisioners": [
{
"type": "shell",
"script": "scripts/vagrant.sh",
"execute_command": "echo 'vagrant' | {{.Vars}} sudo -E -S bash '{{.Path}}'"
}
],

"post-processors": [
[
{
"type": "vagrant"
},
{
"type": "vagrant-cloud",
"box_tag": "voidlinux/glibc64",
"version": "{{user `version`}}"
}
]
]
}

0 comments on commit 5859e79

Please sign in to comment.