1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/bin/sh
- #move to script directory so all relative paths work
- cd "$(dirname "$0")"
- #includes
- . ./config.sh
- . ./colors.sh
- #send a message
- verbose "Installing PostgreSQL"
- #generate a random password
- password=$(dd if=/dev/urandom bs=1 count=20 2>/dev/null | base64)
- # Install the repository
- sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- # Install PostgreSQL:
- sudo yum install -y postgresql14-server postgresql14-contrib postgresql14 postgresql14-libs
- #send a message
- verbose "Initalize PostgreSQL database"
- #initialize the database
- sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
- sudo systemctl enable postgresql-14
- sudo systemctl start postgresql-14
- #allow loopback
- sed -i 's/\(host *all *all *127.0.0.1\/32 *\)ident/\1md5/' /var/lib/pgsql/14/data/pg_hba.conf
- sed -i 's/\(host *all *all *::1\/128 *\)ident/\1md5/' /var/lib/pgsql/14/data/pg_hba.conf
- #systemd
- systemctl daemon-reload
- systemctl restart postgresql-14
- #move to /tmp to prevent a red herring error when running sudo with psql
- cwd=$(pwd)
- cd /tmp
- #add the databases, users and grant permissions to them
- sudo -u postgres /usr/bin/psql -d fusionpbx -c "DROP SCHEMA public cascade;";
- sudo -u postgres /usr/bin/psql -d fusionpbx -c "CREATE SCHEMA public;";
- sudo -u postgres /usr/bin/psql -c "CREATE DATABASE fusionpbx";
- sudo -u postgres /usr/bin/psql -c "CREATE DATABASE freeswitch";
- sudo -u postgres /usr/bin/psql -c "CREATE ROLE fusionpbx WITH SUPERUSER LOGIN PASSWORD '$password';"
- sudo -u postgres /usr/bin/psql -c "CREATE ROLE freeswitch WITH SUPERUSER LOGIN PASSWORD '$password';"
- sudo -u postgres /usr/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE fusionpbx to fusionpbx;"
- sudo -u postgres /usr/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE freeswitch to fusionpbx;"
- sudo -u postgres /usr/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE freeswitch to freeswitch;"
- #ALTER USER fusionpbx WITH PASSWORD 'newpassword';
- cd $cwd
- #send a message
- verbose "PostgreSQL installed"
|