|
@ -0,0 +1,71 @@ |
|
|
|
|
|
#!/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 |
|
|
|
|
|
salt 'minion_*' pillar.items |
|
|
|
|
|
salt 'minion_*' state.apply myfirstpillar |
|
|
|
|
|
salt 'minion_*' cmd.run 'head /tmp/pillarfile_for*' |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
|
echo "Run this script as root (or with sudo)" |
|
|
|
|
|
fi |