Files
BastilleBSD_bastille/README.md

146 lines
4.4 KiB
Markdown
Raw Normal View History

2025-11-09 12:31:39 -07:00
<p align="center">
<img src="docs/images/bastille.jpeg" width="60%" height="auto" />
</p>
----
2018-04-06 13:40:48 -06:00
2019-08-02 10:00:03 -06:00
2025-11-09 12:25:32 -07:00
Table of Contents
=================
2025-11-09 12:25:32 -07:00
* [Table of Contents](#table-of-contents)
* [Bastille](#bastille)
* [Installation](#installation)
* [Usage](#usage)
* [Getting Started](#getting-started)
* [Documentation](#documentation)
* [Comparing](#comparing)
2025-11-09 12:31:39 -07:00
* [Breaking Changes](#breaking-changes)
* [Support](#support)
2025-07-20 08:04:25 -06:00
2025-11-09 12:25:32 -07:00
# Bastille
2025-11-09 12:31:39 -07:00
Bastille is an open-source system for automating
2025-11-09 12:25:32 -07:00
deployment and management of containerized applications on FreeBSD.
2025-05-01 10:38:50 -07:00
2025-11-09 12:31:39 -07:00
[Official BastilleBSD Website](https://bastillebsd.org)
2025-11-09 12:25:32 -07:00
## Installation
2025-05-01 10:15:43 -07:00
Bastille is available for installation from the official FreeBSD ports tree.
2018-11-18 20:37:03 -07:00
**pkg**
```shell
pkg install bastille
```
2018-11-18 20:37:03 -07:00
**ports**
```shell
portsnap fetch auto
make -C /usr/ports/sysutils/bastille install clean
2018-11-18 20:37:03 -07:00
```
2020-02-16 14:23:05 -07:00
**Git** (bleeding edge / unstable -- primarily for developers)
2019-11-28 09:21:13 -07:00
```shell
git clone https://github.com/bastillebsd/bastille.git
2019-11-28 09:21:13 -07:00
cd bastille
make install
```
2019-11-23 13:50:55 -07:00
**enable at boot**
```shell
sysrc bastille_enable=YES
```
2025-11-09 12:25:32 -07:00
### Upgrading
2025-09-23 18:51:04 +02:00
When upgrading from a previous version of bastille (e.g. 0.10.20230714 to
0.10.20231013) you will need to update your bastille.conf
2025-11-09 12:25:32 -07:00
Be sure to read the [Breaking Changes](#breaking-changes) below.
```shell
cd /usr/local/etc/bastille
2023-11-24 15:20:15 -07:00
diff -u bastille.conf bastille.conf.sample
```
Merge the lines that are present in the new bastille.conf.sample into
your bastille.conf
2025-11-09 12:25:32 -07:00
## Usage
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
See [Usage](https://bastille.readthedocs.io/en/latest/chapters/usage.html)
2018-04-07 14:57:48 -06:00
2025-11-09 12:25:32 -07:00
## Getting Started
2025-11-09 12:25:32 -07:00
See [Getting Started](https://bastille.readthedocs.io/en/latest/chapters/getting-started.html)
2018-04-07 14:57:48 -06:00
2025-11-09 12:25:32 -07:00
## Documentation
See [Documentation](https://bastille.readthedocs.io/en/latest/)
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
## Comparing
2018-04-07 14:57:48 -06:00
2025-11-09 12:25:32 -07:00
See [Comparing](https://bastille.readthedocs.io/en/latest/chapters/comparing.html)
2020-02-01 16:06:13 +00:00
2025-11-09 12:25:32 -07:00
## Breaking Changes ⚠
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
### Version 1.x
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
Up until version 1.0.20250714, Bastille has handled epairs for -V jails
using the jib script included in FreeBSD installs. However, for -B jails,
Bastille statically assigned an epair to each jail. This means you can only
run one type (-V or -B) of VNET jails on a given system.
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
Starting with version 1.0.20250714, we are now handling all epairs
dynamically, allowing the use of both types of VNET jails without issue. We
have also selected a naming scheme that will allow for consistency across
these jail types. The naming scheme is as follows:
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
`e0a_jailname` and `e0b_jailname` are the default epair interfaces for every
jail. The `e0a` side is on the host, while the `e0b` is in the jail. This will
allow better management when trying to figure out which jail a given epair is
linked to. Due to a limitations in how long an interface name can be, Bastille
will name any epairs whose jail names exceed the maximum length, to
`e0b_bastille1` and `e0b_bastille1` with the `1` incrementing by 1 for
each new epair. So, mylongjailname will be `e0a_bastille2` and `e0b_bastille2`.
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
If you decide to add an interface using the network sub-command, they will
be named `e1a_jailname` and `e1b_jailname` respectively. The number included
in the prefix `eXa_` will increment by 1 for each interface you add.
2018-11-07 10:36:54 -07:00
2025-11-09 12:25:32 -07:00
### Mandatory
We have tried our best to auto-convert each jails jail.conf and rc.conf
to the new syntax (this happens when the jail is stopped). It isn't a huge
change (only a handful of lines), but if you do have an issue please open a
bug report.
After updating, you must restart all your jails (probably one at a time, in
case of issues) to have Bastille convert the jail.conf and rc.conf files.
This simply involves renaming the epairs to the new syntax.
If you have used the network sub-command to add any number of interfaces, you
will have to edit the jail.conf and rc.conf files for each jail to update
the names of the epair interfaces. This is because all epairs will have been
renamed to e0... in both files. For each additional one, simply increment
the number by 1.
### Important Limitations
Due to the JIB script that gets used when creating VNET jails, you
will face changes with the MAC address if these jails.
If you have any VNET jails (created with -V), the MAC addresses
will change if you did not also use -M when creating them. This
is due to the JIB script generating a MAC based on the jail interface
name.
If you did use -M when creating them, the MAC should stay the same.
2025-11-09 12:31:39 -07:00
## Support
2018-11-07 10:36:54 -07:00
If you've found a bug in Bastille, please submit it to the [Bastille Issue
2025-11-09 12:25:32 -07:00
Tracker](https://github.com/bastillebsd/bastille/issues/new)