Configuration Files¶
At this point you have a naked SlipStream instance running on your system. This is great, but you probably want a few basic configuration items loaded for your instance to be useable and useful.
The following instructions describe how you can drive the entire configuration of SlipStream by simply dropping a few files on the file system and restarting the service.
The configuration files will only be loaded once, on an empty system. It is therefore safe to restart the SlipStream service with modified configuration files. A specific post request can be invoked to force a reload of the files.
Warning
If your SlipStream server is already started, don’t forget to restart it for the configuration files to be loaded.
File System Structure¶
Initially, SlipStream will look for configuration files in the file system to load. Typically, the loader will look for files in the following locations, stopping at the first occurrence:
/etc/slipstream/
~/.slipstream/
Inside this structure of the expected configuration is as follows:
Configuration file | Meaning |
./slipstream.conf |
Main configuration file |
./connectors/*.conf |
Connector specific configuration files |
./modules/*.xml |
Module definition files |
./cloud-ids/*.conf |
Unique cloud image identifiers |
./users/*.xml |
User definition files |
./passwords/* |
User passwords |
Note that these files are not created by default during a standard installation.
Main Configuration File¶
The main configuration file is normally placed in /etc/slipstream when performing a standard installation. The default values are taken from the system default shipped with SlipStream.
If you want to override these defaults, a good place to start is from the system default file, that you can modify and drop in one of the standard location (see previous section).
Warning
Do not forget to rename the default file to slipstream.conf
.
Connector Configuration Files¶
Each connector can be configured by simply dropping a configuration file
in the ./connectors/
directory. While the same can be achieved using
the main configuration file, we recommend you split your connector
configuration in separate files. This method is also more configuration
management tool friendly, such as Puppet, Chef or Ansible.
The connector configuration file must include the
cloud.connector.class
and the name given to the connector instance
must be used to qualify all other configuration parameter. Here is an
example of a connector file to configure the Exoscale cloud:
cloud.connector.class = exoscale-ch-gva:cloudstack
exoscale-ch-gva.endpoint = https://api.exoscale.ch/compute
exoscale-ch-gva.zone = CH-GV2
exoscale-ch-gva.quota.vm = 20
exoscale-ch-gva.orchestrator.imageid = 605d1ad4-b3b2-4b60-af99-843c7b8278f8
exoscale-ch-gva.orchestrator.instance.type = Micro
exoscale-ch-gva.native-contextualization = linux-only
Warning
Do not forget to have a cloud.connector.class
key in each file.
You can have as many connector configuration files as you wish.
Warning
If you are using the enterprise edition, makes sure you have the license matching the number of connector instance configured.
Module Configuration Files¶
To load automatically module definitions (i.e. projects, images and
deployments), simply drop module files in the ./modules
configuration directory. These files (now in xml and soon in json) can
be retrieved from a live SlipStream instance by simply GETting the
module or appending ?media=xml
to the end of a URL, either using
your browser, curl or any other http tool.
Loading Apps from Nuvla™
Nuvla™, a SlipStream service managed by SixSq,
contains a number of interesting apps you can take advantage of. You can
download these following a simple procedure. Once you have the xml
files, simply drop them in the modules/
directory and restart your
SlipStream service.
Warning
Modules will only be loaded from file if no modules already exist.
More information about loading apps is available.
Unique Cloud Identifier Configuration Files¶
As you build a full SlipStream system configuration, you will also need to provide unique cloud identifiers, especially for base images. Typically, these files will be cloud service specific. Here is an example of a unique cloud identifier file for Exoscale:
apps/Minecraft/minecraft-server = exoscale-ch-gva:aaabbbccc
where the key is the module to set, and the value is composed of a :
separated tuple, composed of the cloud service name and the unique cloud
identifier.
Warning
Ensure the cloud service name part of the value matches the cloud
service name defined via the cloud.connector.class
configuration
parameter.
User Configuration Files¶
The last piece of configuration required to have a fully functional
system is one or several users. By default, SlipStream will create a
privileged user during the first startup of the service. But you can add
more users to the system dropping files in the ./users/
configuration directory.
As for modules (see above), user configuration files can be created GETting existing users.
For security reasons, since user passwords are never transmitted over the wire once the user is registered, a second set of configuration file is required to define the user password. Only a hashed version of the password is kept in the database.
User Password Configuration File¶
As mentioned above, the password of each user must be defined using
separate files, located in the ./passwords/
directory. The file name
must match the username, without any extension. The file must only
contain the password in clear text.
Here is an example of the content of the password file for the user
test
:
$ cat ./passwords/test
Change_Me
You can also, using such a password file change the password of the
super
user created automatically during the first execution of the
service. However, ensure that the file is in place before the first
execution, or that no user exist in the database.
Warning
Ensure each password file has the exact same name as the user it corresponds to, without any extension.