Butterknife makes bare-metal Linux deployment dead-simple using the Linux Containers (LXC) and Btrfs filesystem.
Project description
Install dependencies:
sudo apt-get install lxc python3-dev cython3 python3-pip pigz btrfs-progs
sudo pip3 install falcon click
sudo apt-get install python3-lxc # Ubuntu 14.04 or older
Place overlay/usr/bin/butterknife somewhere in PATH, eg /usr/bin and make it executable.
Listing templates
List local templates at /var/butterknife/pool:
butterknife list
List local templates in a particular directory:
butterknife list file:///path/to/directory
List templates at /var/butterknife/pool on a remote machine via SSH:
butterknife list ssh://hostname
List templates at remote machine via HTTP:
butterknife list http[s]://hostname[:port]
Pushing/pulling templates
Currently pull over SSH is working. Following replicates /var/butterknife/pool from machine hostname to local pool at /var/butterknife/pool:
butterknife pull ssh://hostname
Of course you can apply filters:
butterknife pull ssh://hostname --architecture x86 --namespace com.koodur.butterknife
You can also pull via HTTP:
butterknife pull http://butterknife.koodur.com
Note that symmetric push/pull requires patched btrfs-progs which has additional -p and -C flags for btrfs receive.
Multicast
Sending local template via multicast:
butterknife serve multicast @template\:com.koodur.butterknife.Ubuntu\:x86_64\:snap7
You can even multicast a remote subvolume:
butterknife serve multicast @template\:com.koodur.butterknife.Ubuntu\:x86_64\:snap7 --pool ssh://hostname
Receiving to local pool at /var/butterknife/pool:
butterknife multicast receive
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.