Sobre a preparação desta formação
Criar um outro servidor na mesma máquina
Criar um novo servidor Postgresql só para a formação:
sudo pg_createcluster --locale pt_PT.UTF-8 -p 5433 9.5 madeira
Alterar as regras de acesso ao servidor, para ficar disponível na rede (por razões de segurança um novo servidor não está acessível através da rede):
Alterar os ficheiros de configuração pg_hba.conf e postgresql.conf
pg_hba.conf
sudo vi /etc/postgresql/9.5/madeira/pg_hba.conf
Onde está:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
Acrescestar uma nova linha para ficar:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
postgresql.conf
sudo vi /etc/postgresql/9.5/madeira/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*' # what IP address(es) to listen on;
Arrancar com o servidor:
sudo pg_ctlcluster 9.5 madeira start
Verificar que o servidor está a correr (e que ainda só tem as bases de dados postgres, template0 e template1) e que ainda só tem o utilizador postgres:
sudo su postgres
psql -p 5433
\l
\du
\quit
Criar contas e bases de dados para todos os formandos
Criar contas, base de dados e acrescentar a extensão Postgis:
postgres@dusseldorf:~$ cat cria.sh
#!/bin/bash
for value in {1..30}
do
echo $value
echo psql -p 5433 postgres -c "CREATE ROLE madeira$value WITH PASSWORD 'ilovepostgres' LOGIN SUPERUSER CREATEROLE CREATEDB;"
echo psql -p 5433 postgres -c "CREATE DATABASE madeira$value WITH OWNER madeira$value;"
echo psql -p 5433 madeira$value -c "CREATE EXTENSION postgis;"
done
Após a formação
Remover o servidor (e tudo o que foi criado entretanto)
sudo pg_dropcluster --stop 9.5 madeira