postinst 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/sh
  2. set -e
  3. [ -f /etc/sysconfig/grafana-server ] && . /etc/sysconfig/grafana-server
  4. startGrafana() {
  5. if [ -x /bin/systemctl ] ; then
  6. /bin/systemctl daemon-reload
  7. /bin/systemctl start grafana-server.service
  8. elif [ -x /etc/init.d/grafana-server ] ; then
  9. /etc/init.d/grafana-server start
  10. elif [ -x /etc/rc.d/init.d/grafana-server ] ; then
  11. /etc/rc.d/init.d/grafana-server start
  12. fi
  13. }
  14. stopGrafana() {
  15. if [ -x /bin/systemctl ] ; then
  16. /bin/systemctl stop grafana-server.service > /dev/null 2>&1 || :
  17. elif [ -x /etc/init.d/grafana-service ] ; then
  18. /etc/init.d/grafana-service stop
  19. elif [ -x /etc/rc.d/init.d/grafana-service ] ; then
  20. /etc/rc.d/init.d/grafana-service stop
  21. fi
  22. }
  23. # Initial installation: $1 == 1
  24. # Upgrade: $1 == 2, and configured to restart on upgrade
  25. if [ $1 -eq 1 ] ; then
  26. [ -z "$GRAFANA_USER" ] && GRAFANA_USER="grafana"
  27. [ -z "$GRAFANA_GROUP" ] && GRAFANA_GROUP="grafana"
  28. if ! getent group "$GRAFANA_GROUP" > /dev/null 2>&1 ; then
  29. groupadd -r "$GRAFANA_GROUP"
  30. fi
  31. if ! getent passwd "$GRAFANA_USER" > /dev/null 2>&1 ; then
  32. useradd -r -g grafana -d /usr/share/grafana -s /sbin/nologin \
  33. -c "grafana user" grafana
  34. fi
  35. # copy user config files
  36. if [ ! -f $CONF_FILE ]; then
  37. cp /usr/share/grafana/conf/sample.ini $CONF_FILE
  38. cp /usr/share/grafana/conf/ldap.toml /etc/grafana/ldap.toml
  39. mkdir -p /etc/grafana/dashboards /etc/grafana/datasources
  40. cp /usr/share/grafana/conf/dashboards/sample.yaml /etc/grafana/dashboards/sample.yaml
  41. cp /usr/share/grafana/conf/datasources/sample.yaml /etc/grafana/datasources/sample.yaml
  42. fi
  43. # Set user permissions on /var/log/grafana, /var/lib/grafana
  44. mkdir -p /var/log/grafana /var/lib/grafana
  45. chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /var/lib/grafana
  46. chmod 755 /var/log/grafana /var/lib/grafana
  47. # configuration files should not be modifiable by grafana user, as this can be a security issue
  48. chown -Rh root:$GRAFANA_GROUP /etc/grafana/*
  49. chmod 755 /etc/grafana
  50. find /etc/grafana -type f -exec chmod 640 {} ';'
  51. find /etc/grafana -type d -exec chmod 755 {} ';'
  52. if [ -x /bin/systemctl ] ; then
  53. echo "### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd"
  54. echo " sudo /bin/systemctl daemon-reload"
  55. echo " sudo /bin/systemctl enable grafana-server.service"
  56. echo "### You can start grafana-server by executing"
  57. echo " sudo /bin/systemctl start grafana-server.service"
  58. elif [ -x /sbin/chkconfig ] ; then
  59. echo "### NOT starting grafana-server by default on bootup, please execute"
  60. echo " sudo /sbin/chkconfig --add grafana-server"
  61. echo "### In order to start grafana-server, execute"
  62. echo " sudo service grafana-server start"
  63. fi
  64. elif [ $1 -ge 2 ] ; then
  65. if [ "$RESTART_ON_UPGRADE" == "true" ]; then
  66. stopGrafana
  67. startGrafana
  68. fi
  69. fi