Bastille uses a command target arguments syntax, meaning that each command requires a target. Targets are usually containers, but can also be releases.

Targeting a container is done by providing the exact containers name.

Targeting a release is done by providing the release name. (Note: do not include the -pX point-release version.)

Bastille includes a pre-defined keyword ALL to target all running containers.

In the future I would like to support more options, including globbing, lists and regular-expressions.

Examples: Containers

ishmael ~ # bastille ...
command target args description
cmd ALL ‘sockstat -4’ execute sockstat -4 in ALL containers (ip4 sockets)
console mariadb02 console (shell) access to mariadb02
pkg web01 ‘install nginx’ install nginx package in web01 container
pkg ALL upgrade upgrade packages in ALL containers
pkg ALL audit (CVE) audit packages in ALL containers
sysrc web01 nginx_enable=YES execute sysrc nginx_enable=YES in web01 container
template ALL username/base apply username/base template to ALL containers
start web02 start web02 container
cp bastion03 /tmp/resolv.conf-cf etc/resolv.conf copy host-path to container-path in bastion03
create folsom 13.1-RELEASE create 13.1 container named folsom with IP

Examples: Releases

ishmael ~ # bastille ...
command target args description
bootstrap 13.1-RELEASE bootstrap 13.1-RELEASE release
update 11.4-RELEASE update 11.4-RELEASE release
upgrade 11.3-RELEASE 11.4-RELEASE upgrade 11.3-RELEASE release to 11.4-RELEASE
verify 11.4-RELEASE verify 11.4-RELEASE release