70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
|
# Configuring Networks
|
||
|
|
||
|
Only users who intend on providing some resource to a network, such as
|
||
|
[storage][storage] or [a public address][publicaddr], will need to perform any
|
||
|
network-related configuration on their host.
|
||
|
|
||
|
There are two different ways to manage the configuration of a host related to a
|
||
|
particular network: command-line, or configuration file. Command-line is
|
||
|
generally more convenient, but the configuration file exposes even more
|
||
|
fine-grained controls for super power users and might be preferred by them.
|
||
|
|
||
|
When a host is joined to multiple networks the user is able to configure some
|
||
|
of them using one mode and the rest using the other.
|
||
|
|
||
|
[storage]: contributing-storage.md
|
||
|
[publicaddr]: contributing-a-public-address.md
|
||
|
|
||
|
## Command-line Interface (CLI)
|
||
|
|
||
|
Configuring using the CLI is as easy as using the `isle` command-line tool, and
|
||
|
is covered by other documentation such as those linked above.
|
||
|
|
||
|
Keep in mind that if a network's configuration is managed by a configuration
|
||
|
file then the related CLI commands will return an error indicating that the
|
||
|
configuration file must be modified instead.
|
||
|
|
||
|
```bash
|
||
|
# isle vpn public-address unset
|
||
|
[4] Network configuration is managed by the daemon.yml
|
||
|
```
|
||
|
|
||
|
## Configuration File (daemon.yml)
|
||
|
|
||
|
A `daemon.yml` file can be provided to the daemon process when it is run using
|
||
|
the `--config-path` parameter. If Isle is [installed from a package][install]
|
||
|
then this file will be automatically referenced by the daemon service, and can
|
||
|
be found at `/etc/isle/daemon.yml`. If not the steps to create it are described
|
||
|
in that same document.
|
||
|
|
||
|
Within the `daemon.yml` is the `networks` field, which accepts a mapping of
|
||
|
network identifier to network configuration. The comments in the file itself
|
||
|
describe the available configuration parameters.
|
||
|
|
||
|
There are three different ways to identify the network in this file:
|
||
|
|
||
|
* Network identifier (a big long random string, unique to each network)
|
||
|
* Network name
|
||
|
* Network domain
|
||
|
|
||
|
If you're not sure of how to identify a network, you can see all three for each
|
||
|
network using the `isle network list` command:
|
||
|
|
||
|
[install]: ../install.md
|
||
|
|
||
|
## Switching From CLI to Configuration File (or Vice-Versa)
|
||
|
|
||
|
If you want to switch from using CLI-based configuration to using the
|
||
|
configuration file, you only need to add the desired configuration to the
|
||
|
`daemon.yml` file and restart the `isle` process.
|
||
|
|
||
|
You can use `isle network get-config` to get the currently active configuration
|
||
|
for a network in the same format as would be used in `daemon.yml`. This can be
|
||
|
copy-pasted into the `daemon.yml` for a clean transition.
|
||
|
|
||
|
If you want to switch from using the configuration file to using CLI-based
|
||
|
configuration you only need to remove the section of the configuration file
|
||
|
related to the network and restart the `isle` service. Isle will remember the
|
||
|
most recently used configuration for the network and use that upon restart if
|
||
|
none is provided in the configuration file.
|