mongodb.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. fw_depends databases
  3. fw_installed mongodb && return 0
  4. # send over the required files
  5. scp $FWROOT/toolset/setup/linux/databases/mongodb/mongodb.conf $DBHOST:~/
  6. scp $FWROOT/toolset/setup/linux/databases/mongodb/create.js $DBHOST:~/
  7. # install mongo on database machine
  8. ssh $DBHOST 'bash' <<"EOF"
  9. echo "Setting up MongoDB database"
  10. if service --status-all | grep -Fq 'mongod'; then
  11. sudo service mongod stop
  12. fi
  13. sudo apt-get -y remove --purge mongodb-org
  14. sudo apt-get -y autoremove
  15. sudo find /etc/apt/sources.list.d -type f -name 'mongodb-org-*.list' -delete -maxdepth 1
  16. sudo find /etc -type f -name 'mongo*.conf*' -delete -maxdepth 1
  17. sudo rm -rf /var/lib/mongodb
  18. sudo rm -rf /var/log/mongodb
  19. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  20. echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  21. sudo apt-get -y update
  22. sudo apt-get -y install mongodb-org
  23. sudo service mongod stop
  24. sudo mv mongodb.conf /etc/mongod.conf
  25. sudo rm -rf /ssd/mongodb
  26. sudo rm -rf /ssd/log/mongodb
  27. sudo mkdir -p /ssd/mongodb
  28. sudo mkdir -p /ssd/log/mongodb
  29. sudo chown -R mongodb:mongodb /ssd/mongodb
  30. sudo chown -R mongodb:mongodb /ssd/log/mongodb
  31. sudo service mongod start
  32. for i in {1..15}; do
  33. nc -z localhost 27017 && break || sleep 1;
  34. echo "Waiting for MongoDB ($i/15)"
  35. done
  36. nc -z localhost 27017
  37. if [ $? -eq 0 ]; then
  38. mongo < create.js
  39. mongod --version
  40. else
  41. >&2 echo "MongoDB did not start, skipping"
  42. fi
  43. EOF
  44. echo -e "ssh \$DBHOST 'bash' <<\"EOF\"" > $IROOT/mongodb.installed
  45. echo -e "sudo service mongod start || echo 'mongod service already started'" >> $IROOT/mongodb.installed
  46. echo -e "for i in {1..15}; do" >> $IROOT/mongodb.installed
  47. echo -e " nc -z localhost 27017 && break || sleep 1;" >> $IROOT/mongodb.installed
  48. echo -e " echo \"Waiting for MongoDB (\$i/15)\"" >> $IROOT/mongodb.installed
  49. echo -e "done" >> $IROOT/mongodb.installed
  50. echo -e "mongo < create.js" >> $IROOT/mongodb.installed
  51. echo -e "EOF" >> $IROOT/mongodb.installed
  52. source $IROOT/mongodb.installed