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.
Files
docker-salt-master/README.md
2018-09-23 19:05:12 +02:00

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

References