Advertisement
unlessme

lastupdate

Mar 26th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. #!/bin/bash
  2. # please run the first part in the as root or user with sudo
  3. # 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.
  4.  
  5.  
  6. USERID=$(uname -a | awk '{ print $2 }' | cut -d '.' -f 1 | sed 's/.$//')
  7.  
  8. set -e
  9. set -v
  10. set -x
  11. mkdir -p /srv/salt/lib/
  12. touch /srv/salt/lib/loggerlib.sls
  13. cat << VALUES >> /srv/salt/lib/loggerlib.sls
  14. {% macro loggerbundle(path2logfile,tag) -%}
  15. /opt/logger.local/{{ tag }}-logger.sh:
  16. file.managed:
  17. - makedirs: True
  18. - source: salt://files/rsyslog/logger.sh.jinja
  19. - user: root
  20. - group: root
  21. - mode: 755
  22. - template: jinja
  23. - defaults:
  24. path2logfile: {{ path2logfile }}
  25. tag: {{ tag }}
  26. {%- endmacro %}
  27.  
  28. VALUES
  29.  
  30. mkdir -p /srv/salt/files/rsyslog
  31. touch /srv/salt/files/rsyslog/rsyslog-listener.conf.jinja
  32. cat << VALUES >> /srv/salt/files/rsyslog/rsyslog-listener.conf.jinja
  33. $ModLoad imudp
  34. $UDPServerRun 514
  35. VALUES
  36.  
  37. touch /srv/salt/files/rsyslog/logsplitter.conf.jinja
  38. cat << VALUES >> /srv/salt/files/rsyslog/logsplitter.conf.jinja
  39. if $syslogtag contains 'handy-salt' then /var/log/notes/handy-salt.log
  40. VALUES
  41.  
  42. touch /srv/salt/files/rsyslog/logger.sh.jinja
  43. cat << VALUES >> /srv/salt/files/rsyslog/logger.sh.jinja
  44. {% set masterip = salt['cmd.run']('grep salt /etc/hosts | awk "{ print \$1; }"') -%}
  45. /usr/bin/tail -1 {{ path2logfile }} | /usr/bin/logger -n {{ masterip }} -P 514 -t {{ tag }}
  46. VALUES
  47.  
  48. touch /srv/salt/notelog.sls
  49. cat << VALUES >> /srv/salt/notelog.sls
  50. {% from 'lib/loggerlib.sls' import loggerbundle with context %}
  51. {{ loggerbundle('/tmp/salt-notes.txt','handy-salt') }}
  52.  
  53. /tmp/salt-notes.txt:
  54. file.touch
  55. VALUES
  56.  
  57. mkdir -p /srv/salt/files/minion.d
  58. touch /srv/salt/files/minion.d/beacon.conf.jinja
  59. cat << VALUES >> /srv/salt/files/minion.d/beacon.conf.jinja
  60. beacons:
  61. inotify:
  62. /tmp/salt-notes.txt:
  63. mask:
  64. - modify
  65. disable_during_state_run: True
  66. VALUES
  67.  
  68.  
  69. touch /srv/salt/rsyslog.sls
  70. cat << VALUES >> /srv/salt/rsyslog.sls
  71. /etc/rsyslog.d/rsyslog-splitter.conf:
  72. file.managed:
  73. - source: salt://files/rsyslog/logsplitter.conf.jinja
  74. - template: jinja
  75.  
  76. /etc/rsyslog.d/rsyslog-listener.conf:
  77. file.managed:
  78. - source: salt://files/rsyslog/rsyslog-listener.conf.jinja
  79. - template: jinja
  80. VALUES
  81.  
  82. touch /srv/salt/beacons.sls
  83. cat << VALUES >> /srv/salt/beacons.sls
  84. /etc/salt/minion.d/beacon.conf:
  85. file.managed:
  86. - source: salt://files/minion.d/beacon.conf.jinja
  87. - template: jinja
  88. - makedirs: True
  89.  
  90. VALUES
  91.  
  92.  
  93. salt "${USERID}".* state.sls rsyslog
  94. salt \* state.sls notelog
  95. salt \* service.get_all | grep rsyslog && echo "TRUE "2>&1
  96. salt \* service.restart rsyslog
  97. salt \* cmd.run 'echo 56789 >> /tmp/salt-notes.txt'
  98. salt \* cmd.run /opt/logger.local/handy-salt-logger.sh
  99.  
  100. bash timed-run 10 tail /var/log/notes/handy-salt.log
  101.  
  102. salt \* state.sls beacons
  103. salt-ssh minion[123] service.restart salt-minion
  104. salt-run state.event pretty=true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement