provision_vagrant.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/env bash
  2. sudo locale-gen "en_US.UTF-8"
  3. sudo dpkg-reconfigure --frontend=noninteractiv locales
  4. echo "LC_ALL=en_US.UTF-8" >> /etc/environment
  5. echo "LANG=en_US.UTF-8" >> /etc/environment
  6. PACKAGES="python-psycopg2 sqlite3 git \
  7. postgresql-server-dev-9.5 postgresql \
  8. postgresql-contrib \
  9. python-dev python3-dev libffi-dev \
  10. postgresql python3-psycopg2 build-essential \
  11. mysql-server-5.7
  12. "
  13. set -x
  14. apt-get update
  15. apt-get install -y ${PACKAGES}
  16. if [ ! -f /usr/local/bin/pip ]; then
  17. wget https://bootstrap.pypa.io/get-pip.py
  18. sudo python get-pip.py
  19. fi
  20. if [ ! -f /usr/local/bin/pip3 ]; then
  21. sudo python3 get-pip.py
  22. fi
  23. sudo mysqladmin -u root password toor
  24. PYTHON_PACKAGES="psycopg2 pymysql pymongo pexpect coverage pew"
  25. sudo pip3 install ${PYTHON_PACKAGES}
  26. # install mongodb
  27. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
  28. echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  29. sudo apt-get update
  30. sudo apt-get install -y mongodb-org
  31. sudo systemctl start mongod
  32. cd /home/vagrant
  33. if [ ! -d pwman3 ]; then
  34. git clone https://github.com/pwman3/pwman3.git
  35. chown vagrant:vagrant -R pwman3
  36. fi
  37. # setup mysql
  38. mysql -e 'CREATE DATABASE IF NOT EXISTS pwmantest' -uroot --password=toor
  39. mysql -e "create user 'pwman'@'localhost' IDENTIFIED BY '123456'" -uroot --password=toor
  40. mysql -e "grant all on pwmantest.* to 'pwman'@'localhost';" -uroot --password=toor
  41. # setup postgresql
  42. sudo -u postgres psql -c "CREATE USER tester WITH PASSWORD '123456';" -U postgres
  43. sudo -u postgres psql -c 'create database pwman;' -U postgres
  44. sudo -u postgres psql -c 'grant ALL ON DATABASE pwman to tester' -U postgres
  45. # setup mongodb
  46. mongo < /home/vagrant/pwman3/tests/init_mongo.js
  47. #mongo pwmantest --eval 'db.addUser("tester", "12345678");'