3.0 KiB
SaltStack Master v2018.3.2
Dockerfile to build a SaltStack Master image for the Docker opensource container platform.
SaltStack Master is set up in the Docker image using the install from git source method as documented in the the official bootstrap documentation.
For other methods to install SaltStack please refer to the Official SaltStack Installation Guide.
Table of Contents
Installation
At the moment there are not auomated images at Dockerhub (There will be as soon as possible...)
In the meantime, you can build the image locally.
docker build -t cdalvaro/saltstack_master gitlab.com/cdalvaro/saltstack-master
Quick Start
The quickest way to get started is using docker-compose.
wget https://gitlab.com/cdalvaro/saltstack-master/raw/master/docker-compose.yml
Start SaltStack master using:
docker-compose up --detach
Alternatively, you can manually launch the saltstack-master container:
docker run --name salt_master --detach \
--publish 4505:4505 --publish 4506:4506 \
--env 'SALT_LOG_LEVEL=info' \
--read-only --volume ./srv/:/srv/ \
cdalvaro/saltstack_master:2018.3.2
Configuration
Custom Recipes
This image does not require storing data out of the container.
But it is necessary to mount the /srv/ volume ir order to provide your custom recipes.
Minion Keys
Minion keys can be added automatically on startup to SaltStack master by mounting the volume /etc/salt-docker/keys and copying the minion keys inside keys/minions/ directory:
mkdir -p keys/minions
cp -v /etc/salt/pki/minion/minion.pub keys/minions/minion1
docker run --name salt_master -d \
--publish 4505:4505 --publish 4506:4506 \
--env 'SALT_LOG_LEVEL=info' \
--read-only --volume ./srv/:/srv/ \
--volume ./keys/:/etc/salt-docker/keys/ \
cdalvaro/saltstack_master:2018.3.2
Usage
To test which salt minions are listening the following command can be executed from the master service:
docker-compose exec master salt '*' test.ping
Then, you can apply salt states to your minions:
docker-compose exec master salt '*' state.apply
Shell Access
For debugging and maintenance purposes you may want access the container shell. If you are using docker version 1.3.0 or higher you can access a running container shell using docker exec command.
docker exec -it salt_master bash