Guest User

Untitled

a guest
Jan 23rd, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #
  4. # This script installs and configures couchdb on a fresh Amazon Linux AMI instance.
  5. #
  6. # Must be run with root privileges
  7. # Tested with Amazon Linux AMI release 2011.02.1.1 (ami-8c1fece5)
  8. #
  9.  
  10. export BUILD_DIR="$PWD"
  11.  
  12. # install gem dependencies
  13. yum install gcc gcc-c++ libtool curl-devel ruby-rdoc zlib-devel openssl-devel make automake rubygems perl git-core
  14. gem install rake --no-ri --no-rdoc
  15.  
  16. if [ ! -e "/usr/local/bin/couchdb" ]
  17. then
  18.  
  19. if [ ! -d "$BUILD_DIR/build-couchdb" ]
  20. then
  21. # get build-couch code
  22. git clone git://github.com/iriscouch/build-couchdb
  23. cd $BUILD_DIR/build-couchdb/
  24. git submodule init
  25. git submodule update
  26. fi
  27.  
  28. # run build-couch
  29. cd $BUILD_DIR/build-couchdb/
  30. rake git="git://git.apache.org/couchdb.git tags/1.1.0" install=/usr/local
  31. fi
  32.  
  33. # install our .ini
  34. cat << 'EOF' > /usr/local/etc/couchdb/local.ini
  35. [couchdb]
  36. delayed_commits = false
  37.  
  38. [httpd]
  39. port = 80
  40. bind_address = 0.0.0.0
  41. socket_options = [{recbuf, 262144}, {sndbuf, 262144}, {nodelay, true}]
  42. WWW-Authenticate = Basic realm="administrator"
  43. ;WWW-Authenticate = bummer
  44.  
  45. [couch_httpd_auth]
  46. require_valid_user = true
  47.  
  48. [log]
  49. level = error
  50.  
  51. [admins]
  52. EOF
  53.  
  54. # generate & set the initial password
  55. export ADMIN_PASSWORD=`mkpasswd`
  56. echo "admin = ${ADMIN_PASSWORD}" >> /usr/local/etc/couchdb/local.ini
  57.  
  58. # allow beam to bind to port 80 (not necessary if you make httpd.port >=1024)
  59. setcap 'cap_net_bind_service=+ep' /usr/local/lib/erlang/erts-5.8.4/bin/beam
  60.  
  61. if [ ! -e "/etc/logrotate.d/couchdb" ]
  62. then
  63. # add couch.log to logrotate
  64. ln -s /usr/local/etc/logrotate.d/couchdb /etc/logrotate.d/
  65. # change to daily rotation
  66. sed -e s/weekly/daily/g -i /usr/local/etc/logrotate.d/couchdb
  67. #logrotate -v -f /etc/logrotate.d/couchdb
  68. fi
  69.  
  70. # add couchdb user
  71. adduser --system --home /usr/local/var/lib/couchdb -M --shell /bin/bash --comment "CouchDB" couchdb
  72.  
  73. # change file ownership
  74. chown -R couchdb:couchdb /usr/local/etc/couchdb /usr/local/var/lib/couchdb /usr/local/var/log/couchdb /usr/local/var/run/couchdb
  75.  
  76. # run couchdb on startup
  77. ln -s /usr/local/etc/rc.d/couchdb /etc/init.d/couchdb
  78. chkconfig --add couchdb
  79. chkconfig --level 345 couchdb on
  80.  
  81. # done!
  82. echo
  83. echo
  84. echo "Installation complete!"
  85. echo "Couchdb admin password was set to: ${ADMIN_PASSWORD}"
  86. echo
  87. echo "Couchdb is ready to start. Run:"
  88. echo " sudo service couchdb start"
Add Comment
Please, Sign In to add comment