Butterknife is the last missing piece of the puzzle that makes
Linux-based desktop OS deployment a breeze. Butterknife complements your
Puppet or Salt infrastructure and reduces the time you spend
setting up Linux-based desktop machines.
We basically mixed Linux Containers with
Btrfs filesystem and that
resulted in pure awesomeness:
- Based on Btrfs snapshots technology, supports incremental upgrades
- Works with Puppet, Salt or any other configuration management software
- Persistent subvolume for /home, remote management keys and domain membership
- Supports multicast for blasting template on multiple machines simultaneously
- Avahi advertisement over mDNS, no need to configure DNS/DHCP server
- Written mostly in Python, provisioning image built with Buildroot
Check out following demo to see how Butterknife works in production:
Also check out interview at Hacker Public Radio.
For people without superpowers
It's easy, just follow these steps:
- Download provisioning image
- Write it on a memory stick or boot it on a virtual machine
- Start up the machine and follow instructions on the screen
If something doesn't work as expected please
make sure you have updated the provisioning image,
we're still expecting some changes that might break stuff.
If that was not helpful check out #butterknife channel on Freenode.
For bearded sysadmins
For in-depth instructions take a look at GitHub, generally speaking
it works as following:
- Pick a machine for hosting templates and make sure it runs rather new kernel (4.3.3+)
- Install Butterknife a'la pip3 install butterknife
- Set up a Linux Container with your favourite configuration management tool
- Prepare the container for deployment a’la butterknife lxc release
- Launch Butterknife server on the Linux Containers host a’la butterknife serve
- Boot provisioning image on the target computers either from USB key or PXE
- Blast the template on target computer(s) in minutes
- Optionally join the machine to Active Directory or Samba domain
- Reboot and enjoy!
Join the #butterknife channel on Freenode for discussion and learn
more about how you can make best out of Butterknife.
For developers and hardcore hackers
Check out what's
baking at GitHub and chip in for a conversation
at #butterknife channel on Freenode.
Before ranting and trolling please skim through the
the paper ;)
Thank you section
I'd like to thank:
- Lars for supervising the thesis
- Jim for examining the thesis
- Stanislav, Alan and Erko for continued betatesting
- Kalle for valuable feedback and Salt integration
- Jaanus for the artwork and logo
- Joel and Juri for filming and assembling the videoclip
- Kubbi for video sountrack
- Arti for Arch Linux support
- Everybody else who has bothered to write an e-mail if stuff is not working as expected
You are awesome!
Few words about dev
Lauri developed Butterknife as part of his MSc thesis at KTH while
deployment of 4000+ dual-boot desktops and laptops of Tallinn Education Board
Butterknife is released under MIT license, feel free to share and improve.
Butterknife by Lauri Võsandi