Manage multiple server & client computers with SaltStack (finnish)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

74 lines
1.9 KiB

#!/bin/sh
# Author: Pekka Helenius (~Fincer), 2018
#
# - This script creates two different text strings for two minions: minion_1 & minion_2
# - This script is meant to be run on Salt master
#
# - This script creates the following files on master:
# /srv/pillar/top.sls
# /srv/pillar/minion-1.sls
# /srv/pillar/minion-2.sls
# /srv/salt/files/pillarfile
# /srv/salt/myfirstpillar.sls
if [ $(id -u) -eq 0 ]; then
mkdir -p /srv/pillar
tee /srv/pillar/top.sls <<PILLAR_TOP
base:
'minion_1':
- minion-1
'minion_2':
- minion-2
PILLAR_TOP
tee /srv/pillar/minion-1.sls <<MINION_1_DATA
test_variable: 'secret like coffee shop wants to say hello to the world'
MINION_1_DATA
tee /srv/pillar/minion-2.sls <<MINION_2_DATA
test_variable: 'hidden miniart: superman vs. hulk figures'
MINION_2_DATA
mkdir -p /srv/salt/files
tee /srv/salt/files/pillarfile << PILLARFILE_CONTENT
This is my pillarfile which has the following content:
{{ pillar['test_variable'] }}
PILLARFILE_CONTENT
tee /srv/salt/myfirstpillar.sls <<GENERIC_PILLAR
pillar_file:
file.managed:
- user: 1000
- group: 1000
- name: /tmp/pillarfile_for_{{ grains['id'] }}
- source: salt://files/pillarfile
- makedirs: True
- template: jinja
GENERIC_PILLAR
if [ ! -f /srv/salt/myfirstpillar.sls ] || \
[ ! -f /srv/salt/files/pillarfile ] || \
[ ! -f /srv/pillar/top.sls ]; then
echo "Salt files missing. Aborting."
exit 1
else
salt 'minion_*' test.ping
if [ $? -eq 0 ]; then
echo -e "\e[1m\n**Salt -- pillar.items output**\n\e[0m"
salt 'minion_*' pillar.items
echo -e "\e[1m\n**Salt -- state.apply output**\n\e[0m"
salt 'minion_*' state.apply myfirstpillar
echo -e "\e[1m\n**Salt -- get file output with head command**\n\e[0m"
salt 'minion_*' cmd.run 'head /tmp/pillarfile_for*'
fi
fi
else
echo "Run this script as root (or with sudo)"
fi