Provisioning
Configuration Management tools
- Saltstack works well with FreeBSD
- works with sysrc for configuration files
Standard documentation & techniques generally apply to FreeBSD
- Puppet
- Ansible
- Chef
Image building
- Poudrière
- supports VM/OS image builds
- Packer
- builds images for Vagrant, EC2, Azure, VMWare, ...
- needs serial library in go
- "Bento" from Chef project has FreeBSD configurations
VM/bhyve orchestration
- Vagrant
- need Suspend/Resume feature
- Openstack
Configuration
Preconfigured VMs for testing
https://artifact.ci.freebsd.org/snapshot/head/latest_vm/
- disk-test.img.xz
- disk.img.xz
Ports/Package support
Monitoring/Metrics
- OSQuery
needs more people help about tables https://osquery.io/docs/tables/#freebsd
- Prometheus
- SNAP Telemetry
Wishlist
- libifconfig integration for Jail configuration
- structured log data
- newer syslog RFC
- Improved diskless approach
- Cross-install approach
- Configure installer from MacOS, Linux, etc.
- Create SD card image from other another OS
- increased librification
Deploying FreeBSD technology across the base system
- libucl
pitfalls to avoid
- migration away from human-readable formats
- forward and backward compatibility
- changes in configuration file formats
- e.g. introduce new UCL config, but allow a long transition where old format (inetd.conf) is accepted
- Steps
- Introduce new format
- Switch default
- (long transition period here)
- Remove old format
- POLA
- Broad concensus that this is the desired path forward, but need to proceed very carefully and thoughtfully
- bsnmp as a good candidate
TODO
- Create (on wiki) prioritized list of utilities / configuration files
- Discuss w/ embedded and FreeBSD-derived appliance vendors and particularly smaller ones (Kris Moore @iX, pfSense folks, ...)
- Establish as a principle use UCL for newly developed software
- Documentation
- Produce guidance on librification
- like style(9); perhaps api(3)
Session topic for upcoming DevSummits
Open questions
- Does this apply to ports? Upstream projects not in base?