feat: Add support for local third party formulas
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,3 +1,6 @@
|
|||||||
# Keys
|
# development
|
||||||
|
roots/
|
||||||
keys/
|
keys/
|
||||||
|
logs/
|
||||||
|
3pfs/
|
||||||
|
.vscode/
|
||||||
@@ -24,12 +24,14 @@ ENV SALT_BUILD_DIR="${SALT_DOCKER_DIR}/build" \
|
|||||||
ENV SALT_CONFS_DIR="${SALT_DATA_DIR}/config" \
|
ENV SALT_CONFS_DIR="${SALT_DATA_DIR}/config" \
|
||||||
SALT_KEYS_DIR="${SALT_DATA_DIR}/keys" \
|
SALT_KEYS_DIR="${SALT_DATA_DIR}/keys" \
|
||||||
SALT_BASE_DIR="${SALT_DATA_DIR}/srv" \
|
SALT_BASE_DIR="${SALT_DATA_DIR}/srv" \
|
||||||
SALT_LOGS_DIR="${SALT_DATA_DIR}/logs"
|
SALT_LOGS_DIR="${SALT_DATA_DIR}/logs" \
|
||||||
|
SALT_FORMULAS_DIR="${SALT_DATA_DIR}/3pfs"
|
||||||
|
|
||||||
RUN mkdir -p ${SALT_BUILD_DIR}
|
RUN mkdir -p ${SALT_BUILD_DIR}
|
||||||
WORKDIR ${SALT_BUILD_DIR}
|
WORKDIR ${SALT_BUILD_DIR}
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
|
# hadolint ignore=DL3008
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install --yes --quiet --no-install-recommends \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install --yes --quiet --no-install-recommends \
|
||||||
sudo ca-certificates apt-transport-https wget locales pkg-config openssh-client \
|
sudo ca-certificates apt-transport-https wget locales pkg-config openssh-client \
|
||||||
@@ -60,8 +62,8 @@ RUN chmod +x /sbin/entrypoint.sh
|
|||||||
|
|
||||||
# Shared resources
|
# Shared resources
|
||||||
EXPOSE 4505 4506 8000
|
EXPOSE 4505 4506 8000
|
||||||
RUN mkdir -p ${SALT_DATA_DIR} ${SALT_BASE_DIR} ${SALT_KEYS_DIR} ${SALT_CONFS_DIR} ${SALT_LOGS_DIR}
|
RUN mkdir -p "${SALT_BASE_DIR}" "${SALT_FORMULAS_DIR}" "${SALT_KEYS_DIR}" "${SALT_CONFS_DIR}" "${SALT_LOGS_DIR}"
|
||||||
VOLUME [ "${SALT_BASE_DIR}" "${SALT_KEYS_DIR}" "${SALT_CONFS_DIR}" "${SALT_LOGS_DIR}" ]
|
VOLUME [ "${SALT_BASE_DIR}" "${SALT_FORMULAS_DIR}" "${SALT_KEYS_DIR}" "${SALT_CONFS_DIR}" "${SALT_LOGS_DIR}" ]
|
||||||
|
|
||||||
LABEL \
|
LABEL \
|
||||||
maintainer="carlos@cdalvaro.io" \
|
maintainer="carlos@cdalvaro.io" \
|
||||||
|
|||||||
98
README.md
98
README.md
@@ -1,9 +1,10 @@
|
|||||||
[![SaltStack][saltstack_badge]][saltstack_release_notes]
|
[![SaltStack][saltstack_badge]][saltstack_release_notes]
|
||||||
[![Ubuntu Image][ubuntu_badge]][ubuntu_hub_docker]
|
[![Ubuntu Image][ubuntu_badge]][ubuntu_hub_docker]
|
||||||
[![Docker Build Status][docker_build_badge]][docker_hub]
|
[![Docker Build Status][docker_build_badge]][docker_hub_builds]
|
||||||
|
[![Docker Image Size][docker_size_badge]][docker_hub_tags]
|
||||||
[![CodeFactor][codefactor_badge]][codefactor_score]
|
[![CodeFactor][codefactor_badge]][codefactor_score]
|
||||||
|
|
||||||
# SaltStack Master v3000.3_1
|
# Dockerized SaltStack Master v3000.3
|
||||||
|
|
||||||
Dockerfile to build a [SaltStack](https://www.saltstack.com) Master image for the Docker opensource container platform.
|
Dockerfile to build a [SaltStack](https://www.saltstack.com) Master image for the Docker opensource container platform.
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ For other methods to install SaltStack please refer to the [Official SaltStack I
|
|||||||
- [Git Fileserver](#git-fileserver)
|
- [Git Fileserver](#git-fileserver)
|
||||||
- [GitPython](#gitpython)
|
- [GitPython](#gitpython)
|
||||||
- [PyGit2](#pygit2)
|
- [PyGit2](#pygit2)
|
||||||
|
- [3rd Party Formulas](#3rd-party-formulas)
|
||||||
- [Logs](#logs)
|
- [Logs](#logs)
|
||||||
- [Healthcheck](#healthcheck)
|
- [Healthcheck](#healthcheck)
|
||||||
- [Available Configuration Parameters](#available-configuration-parameters)
|
- [Available Configuration Parameters](#available-configuration-parameters)
|
||||||
@@ -39,7 +41,7 @@ For other methods to install SaltStack please refer to the [Official SaltStack I
|
|||||||
Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/cdalvaro/saltstack-master/) and is the recommended method of installation.
|
Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/cdalvaro/saltstack-master/) and is the recommended method of installation.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker pull cdalvaro/saltstack-master:3000.3_1
|
docker pull cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also pull the latest tag which is built from the repository `HEAD`
|
You can also pull the latest tag which is built from the repository `HEAD`
|
||||||
@@ -82,7 +84,7 @@ docker run --name salt_master --detach \
|
|||||||
--env 'SALT_LOG_LEVEL=info' \
|
--env 'SALT_LOG_LEVEL=info' \
|
||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@@ -109,7 +111,7 @@ docker run --name salt_master -d \
|
|||||||
--env 'SALT_LOG_LEVEL=info' \
|
--env 'SALT_LOG_LEVEL=info' \
|
||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Master Signed Keys
|
### Master Signed Keys
|
||||||
@@ -124,7 +126,7 @@ docker run --name salt_stack --detach \
|
|||||||
--env 'SALT_MASTER_SIGN_PUBKEY=True'
|
--env 'SALT_MASTER_SIGN_PUBKEY=True'
|
||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
The container will create the `master_sign` key and its signature.
|
The container will create the `master_sign` key and its signature.
|
||||||
@@ -136,10 +138,10 @@ Additionally, you can generate new keys by executing the following command:
|
|||||||
```sh
|
```sh
|
||||||
docker run --name salt_stack -it --rm \
|
docker run --name salt_stack -it --rm \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1 app:gen-signed-keys other_master_sign
|
cdalvaro/saltstack-master:3000.3_2 app:gen-signed-keys new_master_sign
|
||||||
```
|
```
|
||||||
|
|
||||||
The newly created keys will appear inside `keys/generated/other_master_sign` directory.
|
The newly created keys will appear inside `keys/generated/new_master_sign` directory.
|
||||||
|
|
||||||
### Salt API
|
### Salt API
|
||||||
|
|
||||||
@@ -165,7 +167,7 @@ docker run --name salt_stack --detach \
|
|||||||
--env 'SALT_API_USER_PASS=SuperCool/Password10'
|
--env 'SALT_API_USER_PASS=SuperCool/Password10'
|
||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
By default, user `salt_api` is created and you can set its password by setting the environment variable
|
By default, user `salt_api` is created and you can set its password by setting the environment variable
|
||||||
@@ -229,10 +231,11 @@ Also the container processes seem to be executed as the host's user/group `1000`
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run --name salt_stack -it --rm \
|
docker run --name salt_stack -it --rm \
|
||||||
|
--publish 4505:4505 --publish 4506:4506 \
|
||||||
--env "USERMAP_UID=$(id -u)" --env "USERMAP_GID=$(id -g)" \
|
--env "USERMAP_UID=$(id -u)" --env "USERMAP_GID=$(id -g)" \
|
||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Git Fileserver
|
### Git Fileserver
|
||||||
@@ -275,6 +278,62 @@ _pygit2.GitError: Failed to authenticate SSH session: Unable to send userauth-pu
|
|||||||
|
|
||||||
look if your private key hash empty lines at the bottom of the file and suppress them for solving the error.
|
look if your private key hash empty lines at the bottom of the file and suppress them for solving the error.
|
||||||
|
|
||||||
|
### 3rd Party Formulas
|
||||||
|
|
||||||
|
You can add third party formulas to your configuration simply by adding them to your `gitfs_remotes`:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
# fileserver.conf
|
||||||
|
fileserver_backend:
|
||||||
|
- roots
|
||||||
|
- gitfs
|
||||||
|
|
||||||
|
# gitfs.conf
|
||||||
|
gitfs_provider: pygit2
|
||||||
|
gitfs_remotes:
|
||||||
|
- https://github.com/saltstack-formulas/apache-formula
|
||||||
|
- https://github.com/aokiji/salt-formula-helm.git
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the [SaltStack recommended](https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#adding-a-formula-as-a-gitfs-remote) way of doing it, and you can go to the [Git Fileserver](#git-fileserver) section on this document if you need help configuring this service.
|
||||||
|
|
||||||
|
You can find a great set of formulas on the following GitHub repositories:
|
||||||
|
|
||||||
|
- [Official SaltStack Formulas](https://github.com/saltstack-formulas)
|
||||||
|
- [Unofficial SaltStack Formulas](https://github.com/salt-formulas)
|
||||||
|
|
||||||
|
Although, as mention in [SaltStack documentation](https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#adding-a-formula-as-a-gitfs-remote), you are encouraged to fork desired formulas to avoid unexpected changes to your infrastructure.
|
||||||
|
|
||||||
|
However, sometimes you may need to load some formulas that are not available on a git repository and you want to have them separated from your main `srv` directory.
|
||||||
|
|
||||||
|
For that case, you can mount a volume containing all your third party formulas separeted in subdirectories into `/home/salt/data/3pfs/`, and they will be automatically added to the master configuration when your container starts.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 3pfs directory content
|
||||||
|
3pfs
|
||||||
|
├── custom-formula
|
||||||
|
├── golang-formula
|
||||||
|
└── vim-formula
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run --name salt_stack -it --rm \
|
||||||
|
--publish 4505:4505 --publish 4506:4506 \
|
||||||
|
--env "USERMAP_UID=$(id -u)" --env "USERMAP_GID=$(id -g)" \
|
||||||
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
|
--volume $(pwd)/3pfs/:/home/salt/data/3pfs/ \
|
||||||
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
|
```
|
||||||
|
|
||||||
|
If you need to add more third party formulas, you can restart the container, or you can type the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker exec -it salt_stack /sbin/entrypoint.sh app:reload-3rd-formulas
|
||||||
|
```
|
||||||
|
|
||||||
|
`file_roots` base configuration file will be updated with current existing formulas and `salt-master` service will be restarted to reload the new configuration.
|
||||||
|
|
||||||
### Logs
|
### Logs
|
||||||
|
|
||||||
Salt logs are accessible by mounting the volume `/home/salt/data/logs/`.
|
Salt logs are accessible by mounting the volume `/home/salt/data/logs/`.
|
||||||
@@ -288,7 +347,7 @@ docker run --name salt_master --detach \
|
|||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
--volume $(pwd)/logs/:/home/salt/data/logs/ \
|
--volume $(pwd)/logs/:/home/salt/data/logs/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
Check [Available Configuration Parameters](#available-configuration-parameters) section for configuring logrotate.
|
Check [Available Configuration Parameters](#available-configuration-parameters) section for configuring logrotate.
|
||||||
@@ -326,7 +385,7 @@ docker run --name salt_master --detach \
|
|||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
--volume $(pwd)/logs/:/home/salt/data/logs/ \
|
--volume $(pwd)/logs/:/home/salt/data/logs/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
Then you can manually check this info by running the following command:
|
Then you can manually check this info by running the following command:
|
||||||
@@ -396,7 +455,7 @@ docker run --name salt_master -d \
|
|||||||
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
--volume $(pwd)/roots/:/home/salt/data/srv/ \
|
||||||
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
--volume $(pwd)/keys/:/home/salt/data/keys/ \
|
||||||
--volume $(pwd)/config/:/home/salt/data/config/ \
|
--volume $(pwd)/config/:/home/salt/data/config/ \
|
||||||
cdalvaro/saltstack-master:3000.3_1
|
cdalvaro/saltstack-master:3000.3_2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@@ -437,14 +496,17 @@ Where `salt-service` is one of: `salt-master` os `salt-api` (if `SALT_API_SERVIC
|
|||||||
- https://docs.saltstack.com/en/latest/topics/tutorials/salt_bootstrap.html
|
- https://docs.saltstack.com/en/latest/topics/tutorials/salt_bootstrap.html
|
||||||
- https://github.com/saltstack/salt/releases
|
- https://github.com/saltstack/salt/releases
|
||||||
|
|
||||||
[saltstack_badge]: https://img.shields.io/badge/SaltStack-v3000.3-lightgrey.svg?style=flat-square&logo=Saltstack
|
[saltstack_badge]: https://img.shields.io/badge/SaltStack-v3000.3-lightgrey.svg?style=flat&logo=Saltstack
|
||||||
[saltstack_release_notes]: https://docs.saltstack.com/en/latest/topics/releases/3000.3.html "SaltStack Release Notes"
|
[saltstack_release_notes]: https://docs.saltstack.com/en/latest/topics/releases/3000.3.html "SaltStack Release Notes"
|
||||||
|
|
||||||
[ubuntu_badge]: https://img.shields.io/badge/ubuntu-bionic--20200403-E95420.svg?style=flat-square&logo=Ubuntu
|
[ubuntu_badge]: https://img.shields.io/badge/ubuntu-bionic--20200403-E95420.svg?style=flat&logo=Ubuntu
|
||||||
[ubuntu_hub_docker]: https://hub.docker.com/_/ubuntu/ "Ubuntu Image"
|
[ubuntu_hub_docker]: https://hub.docker.com/_/ubuntu/ "Ubuntu Image"
|
||||||
|
|
||||||
[docker_build_badge]: https://img.shields.io/docker/build/cdalvaro/saltstack-master?logo=docker&style=flat-square
|
[docker_build_badge]: https://img.shields.io/docker/build/cdalvaro/saltstack-master?logo=docker&style=flat
|
||||||
[docker_hub]: https://hub.docker.com/r/cdalvaro/saltstack-master/builds
|
[docker_hub_builds]: https://hub.docker.com/r/cdalvaro/saltstack-master/builds
|
||||||
|
|
||||||
[codefactor_badge]: https://www.codefactor.io/repository/github/cdalvaro/saltstack-master/badge?style=flat-square
|
[docker_size_badge]: https://img.shields.io/docker/image-size/cdalvaro/saltstack-master/latest?logo=docker&color=2496ED
|
||||||
|
[docker_hub_tags]: https://hub.docker.com/repository/docker/cdalvaro/saltstack-master/tags
|
||||||
|
|
||||||
|
[codefactor_badge]: https://img.shields.io/codefactor/grade/github/cdalvaro/saltstack-master?logo=CodeFactor
|
||||||
[codefactor_score]: https://www.codefactor.io/repository/github/cdalvaro/saltstack-master
|
[codefactor_score]: https://www.codefactor.io/repository/github/cdalvaro/saltstack-master
|
||||||
@@ -63,6 +63,8 @@ ssh_log_file: {{SALT_LOGS_DIR}}/salt/ssh
|
|||||||
file_roots:
|
file_roots:
|
||||||
base:
|
base:
|
||||||
- {{SALT_BASE_DIR}}/salt
|
- {{SALT_BASE_DIR}}/salt
|
||||||
|
## cdalvaro managed block - file_roots-base - begin
|
||||||
|
## cdalvaro managed block - file_roots-base - end
|
||||||
|
|
||||||
# The master_roots setting configures a master-only copy of the file_roots dictionary,
|
# The master_roots setting configures a master-only copy of the file_roots dictionary,
|
||||||
# used by the state compiler.
|
# used by the state compiler.
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
set -e
|
set -e
|
||||||
source "${SALT_RUNTIME_DIR}/env-defaults.sh"
|
source "${SALT_RUNTIME_DIR}/env-defaults.sh"
|
||||||
|
|
||||||
|
# cdalvaro managed block string
|
||||||
|
SELF_MANAGED_BLOCK_STRING="## cdalvaro managed block"
|
||||||
|
|
||||||
# Execute a command as SALT_USER
|
# Execute a command as SALT_USER
|
||||||
function exec_as_salt()
|
function exec_as_salt()
|
||||||
{
|
{
|
||||||
@@ -51,7 +54,7 @@ function update_template()
|
|||||||
|
|
||||||
local variables
|
local variables
|
||||||
for variable in "${VARIABLES[@]}"; do
|
for variable in "${VARIABLES[@]}"; do
|
||||||
sed -ri "s|[{}]{2}${variable}[}]{2}|\${${variable}}|g" "${tmp_file}"
|
sed -ri "s|[{]{2}${variable}[}]{2}|\${${variable}}|g" "${tmp_file}"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Replace placeholders
|
# Replace placeholders
|
||||||
@@ -229,6 +232,26 @@ EOF
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This function configures salt-formulas
|
||||||
|
function configure_salt_formulas()
|
||||||
|
{
|
||||||
|
echo "Configuring 3rd-party salt-formulas ..."
|
||||||
|
local master_yml_id="${SELF_MANAGED_BLOCK_STRING} - file_roots-base"
|
||||||
|
local begin_delim="${master_yml_id} - begin"
|
||||||
|
local end_delim="${master_yml_id} - end"
|
||||||
|
|
||||||
|
tmp_file="$(mktemp /tmp/file_roots-base.XXXXXX)"
|
||||||
|
{
|
||||||
|
while IFS= read -r -d '' directory
|
||||||
|
do
|
||||||
|
echo " - ${directory}"
|
||||||
|
done < <(find "${SALT_FORMULAS_DIR}/" -mindepth 1 -maxdepth 1 -type d -print0)
|
||||||
|
} > "${tmp_file}"
|
||||||
|
|
||||||
|
sed -i "/${begin_delim}/,/${end_delim}/!b;//!d;/${begin_delim}/r ${tmp_file}" "${SALT_ROOT_DIR}/master"
|
||||||
|
rm "${tmp_file}"
|
||||||
|
}
|
||||||
|
|
||||||
# Initializes main directories
|
# Initializes main directories
|
||||||
function initialize_datadir()
|
function initialize_datadir()
|
||||||
{
|
{
|
||||||
@@ -258,6 +281,9 @@ function initialize_datadir()
|
|||||||
chmod -R 0755 "${SALT_LOGS_DIR}/supervisor"
|
chmod -R 0755 "${SALT_LOGS_DIR}/supervisor"
|
||||||
chown -R root: "${SALT_LOGS_DIR}/supervisor"
|
chown -R root: "${SALT_LOGS_DIR}/supervisor"
|
||||||
|
|
||||||
|
# Salt formulas
|
||||||
|
chown -R "${SALT_USER}": "${SALT_FORMULAS_DIR}"
|
||||||
|
|
||||||
[[ -d /var/log/salt ]] && [[ ! -L /var/log/salt ]] && rm -rf /var/log/salt
|
[[ -d /var/log/salt ]] && [[ ! -L /var/log/salt ]] && rm -rf /var/log/salt
|
||||||
mkdir -p "${SALT_LOGS_DIR}/salt" /var/log
|
mkdir -p "${SALT_LOGS_DIR}/salt" /var/log
|
||||||
ln -sfnv "${SALT_LOGS_DIR}/salt" /var/log/salt
|
ln -sfnv "${SALT_LOGS_DIR}/salt" /var/log/salt
|
||||||
@@ -336,6 +362,7 @@ function initialize_system()
|
|||||||
configure_timezone
|
configure_timezone
|
||||||
configure_salt_master
|
configure_salt_master
|
||||||
configure_salt_api
|
configure_salt_api
|
||||||
|
configure_salt_formulas
|
||||||
setup_salt_keys
|
setup_salt_keys
|
||||||
setup_ssh_keys
|
setup_ssh_keys
|
||||||
rm -rf /var/run/supervisor.sock
|
rm -rf /var/run/supervisor.sock
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ version: '3'
|
|||||||
services:
|
services:
|
||||||
master:
|
master:
|
||||||
container_name: salt_master
|
container_name: salt_master
|
||||||
image: cdalvaro/saltstack-master:3000.3_1
|
image: cdalvaro/saltstack-master:3000.3_2
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- "roots/:/home/salt/data/srv"
|
- "roots/:/home/salt/data/srv"
|
||||||
|
|||||||
@@ -36,10 +36,15 @@ case "${1}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
app:reload-3rd-formulas)
|
||||||
|
configure_salt_formulas
|
||||||
|
exec "$0" app:restart salt-master
|
||||||
|
;;
|
||||||
app:help)
|
app:help)
|
||||||
echo "Available options:"
|
echo "Available options:"
|
||||||
echo " app:start - Start configured services. (default)"
|
echo " app:start - Start configured services. (default)"
|
||||||
echo " app:restart - Restart the specified service on a running container. Choices: salt-master, salt-api"
|
echo " app:restart - Restart the specified service on a running container. Choices: salt-master, salt-api"
|
||||||
|
echo " app:reload-3rd-formulas - Update master.yml with available 3rd-formulas and restart salt-master service"
|
||||||
echo " app:gen-signed-keys <key_name> - Create a master_sign key pair and its signature inside ${SALT_KEYS_DIR}/generated/"
|
echo " app:gen-signed-keys <key_name> - Create a master_sign key pair and its signature inside ${SALT_KEYS_DIR}/generated/"
|
||||||
echo " app:help - Displays this help."
|
echo " app:help - Displays this help."
|
||||||
echo " [command] - Execute the specified command, eg. bash."
|
echo " [command] - Execute the specified command, eg. bash."
|
||||||
|
|||||||
Reference in New Issue
Block a user