Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
tomster committed Dec 26, 2014
0 parents commit aa649a0
Show file tree
Hide file tree
Showing 7 changed files with 157 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -0,0 +1 @@
/bootstrap-files/
22 changes: 22 additions & 0 deletions README.rst
@@ -0,0 +1,22 @@
PloyBSD
=======

*PloyBSD* is a `NanoBSD <https://www.freebsd.org/doc/en/articles/nanobsd/index.html>`_ based `FreeBSD <https://www.freebsd.org>`_ distribution pre-configured to act as a host for `bsdploy <http://docs.bsdploy.net/en/latest/>`_.


Building PloyBSD
----------------

The end result of building PloyBSD is a disk image that can be used to boot a virtual machine or that can be written onto a USB stick to boot an actual machine.

Building PloyBSD represents a sort of "chicken and egg" situation (unless you are the sort of person who has a FreeBSD system with a fresh checkout of its sources lying around).

To this end we have created an Ansible role that configures a FreeBSD host as a suitable build platform along with a ploy configuration that creates a vanilla FreeBSD 10.1 VirtualBox instance.

To use it, first download the mfsBSD installation medium at http://mfsbsd.vx.sk (use the so-called *special edition* because it contains the installation packages). Make sure you end up with an image named ``~/Downloads/mfsbsd-se-10.1-RELEASE-amd64.iso``.

Then::

ploy start nanobuild-vbox
ploy bootstrap
ploy configure nanobuild
1 change: 1 addition & 0 deletions etc/known_hosts
@@ -0,0 +1 @@
[127.0.0.1]:47040 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/N+/DLBoyxlhsMf6M4YC5o0hC9dF5RFOnMLhIUOaGJJje5/efo3Rq8XzqWtS43p95FXjTC/X/7Mp9+Wo/qjdSs4QyC7UoAoxm8zr6+hBD5jfPPBo6mLaBHFhx6LEzAhHnc2PDf+vF758BIz44btBdkrKZyRhHH/KeXIOld/nIvzYTZhtXXxlEWpXxWYntKYo2w9FUyo2wwPXQEdMBaEbkb8zPTOx8DxncKULm+Ol42vlgD3HKAcGxeARu0Y3kOoxX5UFkihkV+HUahLNY9gyULgiJ698NA53Q4Wqzjk9TPLwPZpGpydqibrRgdr9XxS09ny23OYpYXMu48DcgK6/l
28 changes: 28 additions & 0 deletions etc/ploy.conf
@@ -0,0 +1,28 @@
[vb-disk:boot]
size = 102400

[vb-instance:nanobuild-vbox]
vm-ostype = FreeBSD_64
vm-memory = 1024
vm-accelerate3d = off
vm-acpi = on
vm-rtcuseutc = on
vm-boot1 = disk
vm-boot2 = dvd
vm-nic1 = nat
vm-natpf1 = ssh,tcp,,47040,,22
storage =
--type dvddrive --medium ~/Downloads/mfsbsd-se-10.1-RELEASE-amd64.iso
--medium vb-disk:boot
user = root

[ez-master:nanobuild]
instance = nanobuild-vbox
bootstrap-geli = no
bootstrap-system-devices = ada0
host = 127.0.0.1
port = 47040
# mfsBSD 10.1:
bootstrap-fingerprint = 9e:5a:5d:3f:52:a3:bf:2b:6e:a0:34:f7:e5:20:11:af
roles =
nanobuild
44 changes: 44 additions & 0 deletions roles/nanobuild/files/ploybsd.conf
@@ -0,0 +1,44 @@
NANO_NAME=ploybsd
NANO_SRC=/FreeBSD/release10/src
NANO_OBJ=/FreeBSD/relase10/obj
NANO_IMAGES=2
NANO_PMAKE="make -j 1"

CONF_BUILD='
WITHOUT_KLDLOAD=YES
WITHOUT_NETGRAPH=YES
WITHOUT_PAM=YES
'

CONF_INSTALL='
WITHOUT_ACPI=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_FORTRAN=YES
WITHOUT_HTML=YES
WITHOUT_LPR=YES
WITHOUT_MAN=YES
WITHOUT_SENDMAIL=YES
WITHOUT_SHAREDOCS=YES
WITHOUT_EXAMPLES=YES
WITHOUT_INSTALLLIB=YES
WITHOUT_CALENDAR=YES
WITHOUT_MISC=YES
WITHOUT_SHARE=YES
'

CONF_WORLD='
WITHOUT_BIND=YES
WITHOUT_MODULES=YES
WITHOUT_KERBEROS=YES
WITHOUT_GAMES=YES
WITHOUT_RESCUE=YES
WITHOUT_LOCALES=YES
WITHOUT_SYSCONS=YES
WITHOUT_INFO=YES
'

#FlashDevice SanDisk 1G
UsbDevice Generic 1000

customize_cmd cust_install_files
customize_cmd cust_allow_ssh_root
18 changes: 18 additions & 0 deletions roles/nanobuild/files/svnup.conf
@@ -0,0 +1,18 @@
[defaults]
work_directory=/var/tmp/svnup
#host=svn.freebsd.org
#host=svn0.us-west.freebsd.org
#host=svn0.us-east.freebsd.org
host=svn0.eu.freebsd.org
protocol=https
verbosity=1
trim_tree=0
extra_files=0

[release9]
branch=base/releng/9.3/
target=/FreeBSD/release9/src

[release10]
branch=base/releng/10.1/
target=/FreeBSD/release10/src
43 changes: 43 additions & 0 deletions roles/nanobuild/tasks/main.yml
@@ -0,0 +1,43 @@
---
- name: install packages
pkgng: name={{ item }} state=present
with_items:
- svnup
- screen

- name: Setup data zpool
zpool:
name: "tank"
devices: "ada0p4"
raid_mode: "detect"

- name: Set data zpool options
zfs:
name="tank"
state=present
atime=off
checksum=fletcher4

- name: build ZFS file system
zfs:
name="tank/FreeBSD"
state=present
mountpoint=/FreeBSD

- name: ensure src dirs
file: path=/FreeBSD/release9 state=directory

- name: ensure src dirs
file: path=/FreeBSD/release9/src state=directory

- name: ensure src dirs
file: path=/FreeBSD/release10 state=directory

- name: ensure src dirs
file: path=/FreeBSD/release10/src state=directory

- name: Configure svnup
copy: src=svnup.conf dest=/usr/local/etc/svnup.conf

- name: Configure ploybsd build
copy: src=ploybsd.conf dest=/FreeBSD/

0 comments on commit aa649a0

Please sign in to comment.