mirror of
https://github.com/hackacad/bastille.git
synced 2025-12-18 16:21:32 +01:00
75 lines
3.7 KiB
ReStructuredText
75 lines
3.7 KiB
ReStructuredText
Jail Startup Configuration
|
|
==========================
|
|
|
|
Bastille can start jails on system startup, and stop them on system shutdown. To enable this functionality, we
|
|
must first enable Bastille as a service using ``sysrc bastille_enable=YES``. Once you reboot your host, all jails
|
|
with ``boot=on`` will be started when the host boots.
|
|
|
|
If you have certain jails that must be started before other jails, you can use the priority option. Jails will start
|
|
in order starting at the lowest value, and will stop in order starting at the highest value. So, jails with a priority
|
|
value of 1 will start first, and stop last.
|
|
|
|
See the chapter on targeting for more info.
|
|
|
|
Boot
|
|
----
|
|
|
|
The boot setting controls whether a jail will be started on system startup. If you have enabled bastille
|
|
with ``sysrc bastille_enable=YES``, all jails with ``boot=on`` will start on system startup. Any jail(s)
|
|
with ``boot=off`` will not be started on system startup.
|
|
|
|
By default, when jails are created with Bastille, the boot setting is set to ``on`` by default. This can be overridden using
|
|
the ``--no-boot`` flag. See ``bastille create --no-boot TARGET...``.
|
|
|
|
You can also use ``bastille start --boot TARGET`` to make Bastille respect the boot setting. If ``-b|--boot`` is not
|
|
used, the targeted jail(s) will start, regardless of the boot setting.
|
|
|
|
Jails will still shut down on system shutdown, regardless of this setting.
|
|
|
|
The ``-b|--boot`` can also be used with the ``stop`` command. Any jails with ``boot=off`` will
|
|
not be touched if ``stop`` is called with ``-b|--boot``. Same goes for the ``restart`` command.
|
|
|
|
This value can be changed using ``bastille config TARGET set boot [on|off]``.
|
|
|
|
This value will be shown using ``bastille list all``.
|
|
|
|
Depend
|
|
------
|
|
|
|
Bastille supports configuring jails to depend on each other when started and stopped. If jail1 "depends" on jail2, then
|
|
jail2 will be started if it is not running when ``bastille start jail1`` is called. Any jail that jail1 "depends" on will
|
|
first be verified running (started if stopped) before jail1 is started.
|
|
|
|
For example, I have 3 jails called nginx, mariadb and nextcloud. I want to ensure that nginx and mariadb are running before
|
|
nextcloud is started.
|
|
|
|
First we must add both jails to nextcloud's depend property with ``bastille config nextcloud set depend "mariadb nginx"``.
|
|
Then, when we start nextcloud with ``bastille start nextcloud`` it will verify that nginx and mariadb are running (start if stopped) before
|
|
starting nextcloud.
|
|
|
|
When stopping a jail, any jail that "depends" on it will first be stopped. For example, if we run ``bastille stop nginx``, then
|
|
nextcloud will first be stopped because it "depends" on nginx.
|
|
|
|
Note that if we do a ``bastille restart nginx``, however, nextcloud will be stopped, because it "depends" on nginx, but will not be started again, because the jail we just restarted, nginx, does not depend on nextcloud.
|
|
|
|
Parallel Startup
|
|
----------------
|
|
|
|
Bastille supports starting, stopping and restarting jails in parallel mode using the ``rc`` service script. To enable this functionality, set
|
|
``bastille_parallel_limit`` to a numeric value.
|
|
|
|
For example, if you run ``sysrc bastille_parallel_limit=4``, then Bastille will start 4
|
|
jails at a time on system startup, as well as stop or restart 4 jails at a time when ``service bastille...`` is called.
|
|
|
|
This value is set to 1 by default, to only start/stop/restart jails one at a time.
|
|
|
|
Startup Delay
|
|
-------------
|
|
|
|
Sometimes it is necessary to let a jail start fully before continuing to the next jail.
|
|
|
|
We can do this with another sysrc value called ``bastille_startup_delay``. Setting ``bastille_startup_delay=5`` will
|
|
tell Bastille to wait 5 seconds between starting each jail.
|
|
|
|
You can also use ``bastille start -d|--delay 5 all`` or ``bastille restart -d|--delay 5 all`` to achieve the same thing.
|