Skip to content
This repository has been archived by the owner on Jan 10, 2021. It is now read-only.

Latest commit

 

History

History
53 lines (43 loc) · 2.55 KB

README.md

File metadata and controls

53 lines (43 loc) · 2.55 KB

packer-pfsense

Packer stuff to build pfSense 2.1.4

Requirements

  • Packer
  • Vagrant
  • Virtualbox and/or VMware

About the Boxes

We start with a pfSense 2.1.4 x32 base .iso and run a few scripts on it before creating a vagrant compatible .box for Virtualbox and/or VMware.

pfSense 2.1.4

  • ruby-gem chef installed for provisioning.
  • User 'vagrant' is created with password 'vagrant' and added to user group 'wheel'.
  • Enables passwordless sudo for user group 'wheel'.
  • Authorized keys for 'vagrant' user are stored in the ~/.ssh directory.
  • Enables ssh service at boot.
  • Vagrant shared folders are turned off.
  • Vagrant provisioning doesn't currently work so provision with Packer.

TODO

Notes

There is quite a bit of hackery to get this working. I'm new to FreeBSD and pfSense so I'll document stuff here.

  • There is no 'preload' like Debian boxes, so instead we have to get certain things done in the 'boot command' step:

    • install sudo, bash, ruby, rubygem-chef (omnibus installer doesn't work with FreeBSD 9), virtualbox-ose-additions
    • create our user 'vagrant' with password 'vagrant'
    • change root password to 'vagrant'
    • add user 'vagrant' to 'wheel' group
    • enable passwordless sudo for 'wheel' group
  • Once that's done we upload our config.xml from out http folder to the VM

    • This config file may not be secure, I'm more focused on making things work for now.
  • Things that have to be in there for packer/vagrant to work:

    • group 'wheel'
    • user 'vagrant' with mitchellh authorized_key
    • <enablesshd/>
  • pfSense likes to mess with /etc/passwd and other stuff on reboot so we need to reset our user 'vagrant' user stuff by using <shellcmd> in the imported config.xml to issue commands at boot

    • <shellcmd>pw usermod vagrant -s /usr/local/bin/bash</shellcmd>
    • <shellcmd>pw group mod wheel -m vagrant</shellcmd>
    • <shellcmd>chown -R vagrant /home/vagrant/.ssh</shellcmd>
  • Frome here our regular scripts take over like a normal Packer install

    • config.sh writes our /http/config.xml file to /conf/config.xml
    • vmtools.sh supposedly enables virtualbox modules but damned if I can get it working
    • vagrant.sh imports keys and stuff