From 69e8067b598f57d6ac2ebef18682630373430bab Mon Sep 17 00:00:00 2001 From: Christer Edwards Date: Sat, 7 Apr 2018 16:58:11 -0600 Subject: [PATCH] README updates and created a TODO list --- README.md | 118 ++++++++++++++++++++++++++++++++---------------------- TODO | 16 ++++++++ 2 files changed, 86 insertions(+), 48 deletions(-) create mode 100644 TODO diff --git a/README.md b/README.md index ababdf99..2739937e 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ would very much like to keep things flexible enough to not *require* ZFS. To bootstrap a release use the `bbsd-bootstrap` command. ```shell - bbsd-bootstrap activate bastille 11.1-RELEASE +pebbles ~ # bbsd-bootstrap activate bastille 11.1-RELEASE +pebbles ~ # ``` This command creates the directory structure, fetches the specified release, @@ -23,13 +24,14 @@ extracts and creates a ZFS snapshot. Once a system is "activated" it should have everything it needs to create a jail. ```shell - pebbles ~ # ll /usr/local/bastille - total 27 - drwxr-xr-x 2 root wheel 3B Mar 17 15:34 downloads - drwxr-xr-x 2 root wheel 8B Apr 6 18:52 fstab - drwxr-xr-x 8 root wheel 8B Mar 31 08:35 jails - drwxr-xr-x 2 root wheel 8B Mar 30 20:50 logs - drwxr-xr-x 3 root wheel 3B Mar 17 15:37 releases +pebbles ~ # ll /usr/local/bastille +total 27 +drwxr-xr-x 2 root wheel 3B Mar 17 15:34 downloads +drwxr-xr-x 2 root wheel 8B Apr 6 18:52 fstab +drwxr-xr-x 8 root wheel 8B Mar 31 08:35 jails +drwxr-xr-x 2 root wheel 8B Mar 30 20:50 logs +drwxr-xr-x 3 root wheel 3B Mar 17 15:37 releases +pebbles ~ # ``` ### bbsd-create @@ -42,7 +44,9 @@ things: - FreeBSD release (ie; 11.1-RELEASE) ```shell - bbsd-create unbound0 https://github.com/bastillebsd/local_unbound.git 11.1-RELEASE +pebbles ~ # bbsd-create unbound0 https://github.com/bastillebsd/local_unbound.git 11.1-RELEASE +...[snip]... +pebbles ~ # ``` This command will create a 11.1-based basejail, and pre-populate the root @@ -61,26 +65,38 @@ ZFS-snapshots of pre-created profiles. To start a jail you can use the `bbsd-start` command. ```shell - bbsd-start unbound0 +pebbles ~ # bbsd-start unbound0 +unbound0: created +pebbles ~ # ``` This command can also take a space-separated list of jails to start. ```shell - bbsd-start unbound0 unbound1 unbound2 +pebbles ~ # bbsd-start unbound0 unbound1 unbound2 +unbound0: created +unbound1: created +unbound2: created +pebbles ~ # ``` ### bbsd-stop To stop a jail you can use the `bbsd-stop` command. ```shell - bbsd-stop unbound0 +ishmael ~ # bbsd-stop unbound0 +unbound0: removed +pebbles ~ # ``` This command can also take a space-separated list of jails to stop. ```shell - bbsd-stop unbound0 unbound1 unbound2 +pebbles ~ # bbsd-stop unbound0 unbound1 unbound2 +unbound0: removed +unbound1: removed +unbound2: removed +pebbles ~ # ``` ### bbsd-restart @@ -93,7 +109,7 @@ to manage my jails. It started out as a simple for-loop and have now evolved into something a _little_ more mature. ```shell - bbsd-cmd ALL 'sockstat -4' +pebbles ~ # bbsd-cmd ALL 'sockstat -4' ``` This command will execute the "$2" argument (note the use of quotes to @@ -108,42 +124,44 @@ command on *ALL* systems matching the target. Here is an example from a dev system. ```shell - pebbles ~ # jls - JID IP Address Hostname Path - unbound0 10.0.0.10 unbound0 /usr/local/bastille/jails/unbound0/root - unbound1 10.0.0.20 unbound1 /usr/local/bastille/jails/unbound1/root - unbound2 10.0.0.30 unbound2 /usr/local/bastille/jails/unbound2/root - beastie 10.0.0.79 beastie /usr/local/bastille/jails/beastie/root - xmakaba 10.0.0.137 xmakaba /usr/local/bastille/jails/xmakaba/root - pebbles ~ # bbsd-cmd unbound 'sockstat -4' - Targeting specified containers. - unbound0 - unbound1 - unbound2 +pebbles ~ # jls + JID IP Address Hostname Path + unbound0 10.0.0.10 unbound0 /usr/local/bastille/jails/unbound0/root + unbound1 10.0.0.20 unbound1 /usr/local/bastille/jails/unbound1/root + unbound2 10.0.0.30 unbound2 /usr/local/bastille/jails/unbound2/root + beastie 10.0.0.79 beastie /usr/local/bastille/jails/beastie/root + xmakaba 10.0.0.137 xmakaba /usr/local/bastille/jails/xmakaba/root +pebbles ~ # +pebbles ~ # +pebbles ~ # bbsd-cmd unbound 'sockstat -4' +Targeting specified containers. +unbound0 +unbound1 +unbound2 - unbound0: - USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS - unbound unbound 9639 3 udp4 10.0.0.10:53 *:* - unbound unbound 9639 4 tcp4 10.0.0.10:53 *:* +unbound0: +USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS +unbound unbound 9639 3 udp4 10.0.0.10:53 *:* +unbound unbound 9639 4 tcp4 10.0.0.10:53 *:* - unbound1: - USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS - unbound unbound 31590 3 udp4 10.0.0.20:53 *:* - unbound unbound 31590 4 tcp4 10.0.0.20:53 *:* +unbound1: +USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS +unbound unbound 31590 3 udp4 10.0.0.20:53 *:* +unbound unbound 31590 4 tcp4 10.0.0.20:53 *:* - unbound2: - USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS - unbound unbound 66761 3 udp4 10.0.0.30:53 *:* - unbound unbound 66761 4 tcp4 10.0.0.30:53 *:* +unbound2: +USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS +unbound unbound 66761 3 udp4 10.0.0.30:53 *:* +unbound unbound 66761 4 tcp4 10.0.0.30:53 *:* - pebbles ~ # bbsd-cmd beast 'freebsd-version' - Targeting specified containers. - beastie +pebbles ~ # bbsd-cmd beast 'freebsd-version' +Targeting specified containers. +beastie - beastie: - 11.1-RELEASE-p9 +beastie: +11.1-RELEASE-p9 - pebbles ~ # +pebbles ~ # ``` As you can see, the very basic `grep` is done and limits the targeting to the @@ -164,8 +182,9 @@ login, but this will support specifying users. It will likely remain password-less. ```shell - pebbles ~ # bbsd-login beastie - root@beastie:~ # +pebbles ~ # bbsd-login beastie +root@beastie:~ # exit +pebbles ~ # ``` ### bbsd-destroy @@ -176,7 +195,9 @@ of a fail-safe. I just need to make the script a little more mature to make sure it handles the file system deletions properly. ```shell - bbsd-destroy unbound0 /usr/local/bastille/jails/unbound0 +pebbles ~ # bbsd-destroy unbound0 /usr/local/bastille/jails/unbound0 +Jail destroyed. RIP. +pebbles ~ # ``` ### bbsd-top @@ -194,7 +215,8 @@ This command requires a path argument and then creates a bunch of directories at that path. For example. ```shell - bbsd-init-repo ~/Projects/www_nginx.git +pebbles ~ # bbsd-init-repo ~/Projects/www_nginx.git +pebbles ~ # ``` This would create the required template structure in the pre-existing directory diff --git a/TODO b/TODO new file mode 100644 index 00000000..70b3b972 --- /dev/null +++ b/TODO @@ -0,0 +1,16 @@ +# TODO + +This is just a place to throw down the ideas of things I need to fix and or +improve. In no particular order. + ++ Consolidate the commands into a single `bastille` cmd. ++ Modular design for imported `bastille` functionality (ie; pkg, cmd, sysrc) ++ ZFS or UFS support ++ `bastille create` needs to support `fetch` fallback ++ `bastille create` needs to support branches ++ `bastille bootstrap` needs a complete review ++ New commands: `sysrc`, `fstab`, `jls`, `git`, `update`, `upgrade` ++ Support for multi-jail templating (create, snapshot, deploy) ++ jail.conf validation support in `create` ++ Dynamic config support for templating ++