This repository has been archived on 2025-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
2018-09-30 23:56:22 +02:00
2018-09-23 18:55:20 +02:00
2018-09-30 23:56:22 +02:00
2018-09-30 23:56:22 +02:00
2018-09-23 19:05:12 +02:00
2018-09-30 23:56:22 +02:00

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

Automated builds of the image are available on Dockerhub and is the recommended method of installation.

docker pull cdalvaro/saltstack-master:2018.3.2

You can also pull the latest tag which is built from the repository HEAD

docker pull cdalvaro/saltstack-master:latest

Alternatively you can build the image locally.

docker build -t cdalvaro/saltstack-master github.com/cdalvaro/saltstack-master

Quick Start

The quickest way to get started is using docker-compose.

wget https://raw.githubusercontent.com/cdalvaro/saltstack-master/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/tcp --publish 4506:4506/tcp \
    --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/tcp --publish 4506:4506/tcp \
    --env 'SALT_LOG_LEVEL=info' \
    --read-only --volume ./srv/:/srv/ \
    --volume ./keys/:/etc/salt-docker/keys/ \
    cdalvaro/saltstack-master:2018.3.2

Available Configuration Parameters

Please refer the docker run command options for the --env-file flag where you can specify all required environment variables in a single file. This will save you from writing a potentially long docker run command. Alternatively you can use docker-compose.

Below is the list of available options that can be used to customize your SaltStack master installation.

Parameter Description
SALT_LOG_LEVEL The level of messages to send to the console. One of 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'. Default: 'warning'
SALT_LEVEL_LOGFILE The level of messages to send to the log file. One of 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'. Default: 'warning'

Any parameter not listed in the above table and available in the following link, can be set by creating the directory confs and adding into it a .conf file with the desired parameters:

mkdir confs
cat > confs/ports.conf << EOF
# The tcp port used by the publisher:
publish_port: 3505
# The port used by the communication interface.
ret_port: 3506
EOF

docker run --name salt_master -d \
    --publish 3505:3505/tcp --publish 3506:3506/tcp \
    --env 'SALT_LOG_LEVEL=info' \
    --read-only --volume ./srv/:/srv/ \
    --volume ./confs/:/etc/salt-docker/confs/ \
    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

References

Description
No description provided
Readme 2.1 MiB
Languages
Shell 91.7%
Dockerfile 4.7%
Makefile 2.3%
Scheme 1.3%