Targeting

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.2-RELEASE 10.17.89.10

create 13.2 container named folsom with IP

Examples: Releases

ishmael ~ # bastille ...

command

target

args

description

bootstrap

13.2-RELEASE

bootstrap 13.2-RELEASE release

update

12.4-RELEASE

update 12.4-RELEASE release

verify

12.4-RELEASE

verify 12.4-RELEASE release