Guest User

Untitled

a guest
May 25th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. #!/bin/bash -e
  2.  
  3. . /usr/share/debconf/confmodule
  4. . /etc/default/chef-solr
  5.  
  6. export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin
  7.  
  8. TEMPLATE=/usr/share/chef-solr/solr.rb
  9. TMPDIR=`mktemp -d` # used for holding temp files
  10. TMPFILE=`mktemp -p ${TMPDIR}` # used for holding rendered template
  11. CONFIGFILE=/etc/chef/solr.rb
  12.  
  13. rabbitmq_has_vhost() {
  14. rabbitmqctl list_vhosts | grep -qx "^/chef$"
  15. }
  16.  
  17. rabbitmq_has_user() {
  18. # using -q for grep causes rabbit to terminate on do_boot, redirect
  19. # STDOUT to /dev/null instead.
  20. rabbitmqctl list_users | grep -x "^chef$" 1>/dev/null
  21. }
  22.  
  23. rabbitmq_has_perms() {
  24. rabbitmqctl list_permissions -p /chef | egrep -qx "chef[[:space:]]+.*{3}"
  25. }
  26.  
  27. case "$1" in
  28. configure)
  29. if [ ! -f $CONFIGFILE ]; then
  30. db_get chef-solr/amqp_password && amqp_pass="$RET"
  31. tsed=`mktemp -p ${TMPDIR}`
  32. cat << EOF > $tsed
  33. s/amqp_pass \".*\"/amqp_pass \"${amqp_pass}\"/g
  34. EOF
  35. if ! rabbitmq_has_vhost; then
  36. rabbitmqctl add_vhost /chef
  37. fi
  38. if ! rabbitmq_has_user; then
  39. # TODO: Bug filed with upstream to allow password from a file.
  40. rabbitmqctl add_user chef $amqp_pass
  41. fi
  42. if ! rabbitmq_has_perms; then
  43. rabbitmqctl set_permissions -p /chef chef ".*" ".*" ".*"
  44. fi
  45. if [ -n $amqp_pass ]; then
  46. sed -f $tsed $TEMPLATE > $TMPFILE
  47. fi
  48. ucf --debconf-ok $TMPFILE $CONFIGFILE
  49. test -f $CONFIGFILE && chmod 0640 $CONFIGFILE
  50. rm -rf $TMPDIR
  51. if ! getent passwd chef > /dev/null; then
  52. adduser --system --quiet \
  53. --home /var/lib/chef --no-create-home \
  54. --shell /bin/bash --group --gecos "Chef Daemon" chef
  55. fi
  56. chown -R $USER:$GROUP /etc/chef
  57. chown -R $USER:$GROUP /var/lib/chef
  58. chown -R $USER:$GROUP /var/log/chef
  59. chown -R $USER:$GROUP /var/cache/chef
  60. chown -R $USER:$GROUP /var/run/chef
  61. fi
  62. ;;
  63.  
  64. abort-upgrade|abort-remove|abort-deconfigure)
  65. ;;
  66.  
  67. *)
  68. echo "postinst called with unknown argument \`$1'" >&2
  69. exit 1
  70. ;;
  71. esac
  72.  
  73. db_stop
  74.  
  75. # dh_installdeb will replace this with shell code automatically
  76. # generated by other debhelper scripts.
  77.  
  78. #DEBHELPER#
  79.  
  80. exit 0
Add Comment
Please, Sign In to add comment