Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # please run the first part in the as root or user with sudo
- # define global variables, this script will work untill step 6) Configure the reactor quick and dirty :) You need to watch the event #bus to figure out what the tags are.
- USERID=$(uname -a | awk '{ print $2 }' | cut -d '.' -f 1 | sed 's/.$//')
- set -e
- set -v
- set -x
- mkdir -p /srv/salt/lib/
- touch /srv/salt/lib/loggerlib.sls
- cat << VALUES >> /srv/salt/lib/loggerlib.sls
- {% macro loggerbundle(path2logfile,tag) -%}
- /opt/logger.local/{{ tag }}-logger.sh:
- file.managed:
- - makedirs: True
- - source: salt://files/rsyslog/logger.sh.jinja
- - user: root
- - group: root
- - mode: 755
- - template: jinja
- - defaults:
- path2logfile: {{ path2logfile }}
- tag: {{ tag }}
- {%- endmacro %}
- VALUES
- mkdir -p /srv/salt/files/rsyslog
- touch /srv/salt/files/rsyslog/rsyslog-listener.conf.jinja
- cat << VALUES >> /srv/salt/files/rsyslog/rsyslog-listener.conf.jinja
- $ModLoad imudp
- $UDPServerRun 514
- VALUES
- touch /srv/salt/files/rsyslog/logsplitter.conf.jinja
- cat << VALUES >> /srv/salt/files/rsyslog/logsplitter.conf.jinja
- if $syslogtag contains 'handy-salt' then /var/log/notes/handy-salt.log
- VALUES
- touch /srv/salt/files/rsyslog/logger.sh.jinja
- cat << VALUES >> /srv/salt/files/rsyslog/logger.sh.jinja
- {% set masterip = salt['cmd.run']('grep salt /etc/hosts | awk "{ print \$1; }"') -%}
- /usr/bin/tail -1 {{ path2logfile }} | /usr/bin/logger -n {{ masterip }} -P 514 -t {{ tag }}
- VALUES
- touch /srv/salt/notelog.sls
- cat << VALUES >> /srv/salt/notelog.sls
- {% from 'lib/loggerlib.sls' import loggerbundle with context %}
- {{ loggerbundle('/tmp/salt-notes.txt','handy-salt') }}
- /tmp/salt-notes.txt:
- file.touch
- VALUES
- mkdir -p /srv/salt/files/minion.d
- touch /srv/salt/files/minion.d/beacon.conf.jinja
- cat << VALUES >> /srv/salt/files/minion.d/beacon.conf.jinja
- beacons:
- inotify:
- /tmp/salt-notes.txt:
- mask:
- - modify
- disable_during_state_run: True
- VALUES
- touch /srv/salt/rsyslog.sls
- cat << VALUES >> /srv/salt/rsyslog.sls
- /etc/rsyslog.d/rsyslog-splitter.conf:
- file.managed:
- - source: salt://files/rsyslog/logsplitter.conf.jinja
- - template: jinja
- /etc/rsyslog.d/rsyslog-listener.conf:
- file.managed:
- - source: salt://files/rsyslog/rsyslog-listener.conf.jinja
- - template: jinja
- VALUES
- touch /srv/salt/beacons.sls
- cat << VALUES >> /srv/salt/beacons.sls
- /etc/salt/minion.d/beacon.conf:
- file.managed:
- - source: salt://files/minion.d/beacon.conf.jinja
- - template: jinja
- - makedirs: True
- VALUES
- salt "${USERID}".* state.sls rsyslog
- salt \* state.sls notelog
- salt \* service.get_all | grep rsyslog && echo "TRUE "2>&1
- salt \* service.restart rsyslog
- salt \* cmd.run 'echo 56789 >> /tmp/salt-notes.txt'
- salt \* cmd.run /opt/logger.local/handy-salt-logger.sh
- bash timed-run 10 tail /var/log/notes/handy-salt.log
- salt \* state.sls beacons
- salt-ssh minion[123] service.restart salt-minion
- salt-run state.event pretty=true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement