postgresql.sh 4.36 KB
#!/bin/bash

# Pré-requisitos

sudo yum update -y
# Todas as máquinas devem ter o usuário colab
# O usuário colab das maquinas devem estar no arquivo ``sudoers``

# Instalação do Postgres 9.3

# Siga todas as instruções a seguir na máquina destinada ao banco de dados Postgres
# *NOTE:*
# 1. Libere a porta 5432 desta máquina para que máquina do colab possa ouvi-la

# 2. Instale o pacote postgresql

sudo yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm -y
sudo yum install postgresql93 postgresql93-devel postgresql93-libs postgresql93-server vim -y

# 3. Inicie o banco de dados

sudo service postgresql-9.3 initdb

# 4. Adicione o Postgres para iniciar com o sistema

sudo chkconfig postgresql-9.3 on

# 5. Inicie o postgresql

sudo service postgresql-9.3 start

# 6. Coloque os binários do postgres na variável PATH
echo "export PATH=$PATH:/usr/pgsql-9.3/bin/" >> ~/.bashrc
source ~/.bashrc
sudo sh -c "echo 'export PATH=$PATH:/usr/pgsql-9.3/bin/' >> ~/.bashrc"
sudo sh -c "source /root/.bashrc"

# 7. Edite o arquivo sudoers

sudo sed -i 's/\/sbin:\/bin:\/usr\/sbin:\/usr\/bin/\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/usr\/pgsql-9.3\/bin/' /etc/sudoers

# sudo vim /etc/sudoers
# Dentro do arquivo mude a seguinte linha
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
# para
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.3/bin/
# Salve e feche o arquivo
# [ESC]:wq!

# 8. Crie todos os usuários e banco de dados necessários para o funcionamento correto do colab.

sudo -u postgres psql -c "CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';"
sudo -u postgres psql -c "CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;"

#sudo -u postgres psql
#
#    CREATE USER colab SUPERUSER INHERIT CREATEDB CREATEROLE;
#    ALTER USER colab PASSWORD 'colab';
#    CREATE USER git;
#    CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';
#
#    CREATE DATABASE gitlabhq_production OWNER git;
#    CREATE DATABASE "colab" WITH OWNER "colab" ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
#    CREATE DATABASE "trac_colab" WITH OWNER "colab" ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
#    CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
# \q

# 9. Altere o pg_hba.conf para conceder as permissões corretas aos usuários

sudo wget https://gitlab.com/softwarepublico/colabdocumentation/raw/master/Arquivos/postgres/pg_hba.conf -O /var/lib/pgsql/9.3/data/pg_hba.conf

# sudo vi /var/lib/pgsql/9.3/data/pg_hba.conf

# As permissõe devem ser as que estão abaixo, que serão encontradas no final do arquivo, ou seja, as linhas do fim do arquivo devem ser substituidas.

    # TYPE  DATABASE                        USER            ADDRESS                 METHOD

    # "local" is for Unix domain socket connections only
#    local   all                             postgres                                peer
#    local   redmine                         redmine                                 md5
#    local   trac_colab                      colab                                   md5
#    local   colab                           colab                                   md5
#    local   gitlabhq_production             git                                     trust
    # IPv4 local connections:
#    host    all                             postgres        127.0.0.1/32            ident
#    host    redmine                         redmine         127.0.0.1/32            md5
#    host    trac_colab                      colab           127.0.0.1/32            md5
#    host    colab                           colab           127.0.0.1/32            md5
#    host    gitlabhq_production             git             127.0.0.1/32            trust
    # IPv6 local connections:
#    host    all                             postgres        ::1/128                 ident
#    host    redmine                         redmine         ::1/128                 md5
#    host    trac_colab                      colab           ::1/128                 md5
#    host    colab                           colab           ::1/128                 md5
#    host    gitlabhq_production             git             ::1/128                 trust
#    [ESC]:wq!

# 10. Reinicie o postgresql

sudo service postgresql-9.3 restart