Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.3 KiB
73 lines
2.3 KiB
#!/bin/bash |
|
|
|
set -eu |
|
|
|
client_configure() { |
|
sudo chmod 600 $PQSSLCERTTEST_PATH/postgresql.key |
|
} |
|
|
|
pgdg_repository() { |
|
local sourcelist='sources.list.d/postgresql.list' |
|
|
|
curl -sS 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' | sudo apt-key add - |
|
echo deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVERSION | sudo tee "/etc/apt/$sourcelist" |
|
sudo apt-get -o Dir::Etc::sourcelist="$sourcelist" -o Dir::Etc::sourceparts='-' -o APT::Get::List-Cleanup='0' update |
|
} |
|
|
|
postgresql_configure() { |
|
sudo tee /etc/postgresql/$PGVERSION/main/pg_hba.conf > /dev/null <<-config |
|
local all all trust |
|
hostnossl all pqgossltest 127.0.0.1/32 reject |
|
hostnossl all pqgosslcert 127.0.0.1/32 reject |
|
hostssl all pqgossltest 127.0.0.1/32 trust |
|
hostssl all pqgosslcert 127.0.0.1/32 cert |
|
host all all 127.0.0.1/32 trust |
|
hostnossl all pqgossltest ::1/128 reject |
|
hostnossl all pqgosslcert ::1/128 reject |
|
hostssl all pqgossltest ::1/128 trust |
|
hostssl all pqgosslcert ::1/128 cert |
|
host all all ::1/128 trust |
|
config |
|
|
|
xargs sudo install -o postgres -g postgres -m 600 -t /var/lib/postgresql/$PGVERSION/main/ <<-certificates |
|
certs/root.crt |
|
certs/server.crt |
|
certs/server.key |
|
certificates |
|
|
|
sort -VCu <<-versions || |
|
$PGVERSION |
|
9.2 |
|
versions |
|
sudo tee -a /etc/postgresql/$PGVERSION/main/postgresql.conf > /dev/null <<-config |
|
ssl_ca_file = 'root.crt' |
|
ssl_cert_file = 'server.crt' |
|
ssl_key_file = 'server.key' |
|
config |
|
|
|
echo 127.0.0.1 postgres | sudo tee -a /etc/hosts > /dev/null |
|
|
|
sudo service postgresql restart |
|
} |
|
|
|
postgresql_install() { |
|
xargs sudo apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confnew' install <<-packages |
|
postgresql-$PGVERSION |
|
postgresql-server-dev-$PGVERSION |
|
postgresql-contrib-$PGVERSION |
|
packages |
|
} |
|
|
|
postgresql_uninstall() { |
|
sudo service postgresql stop |
|
xargs sudo apt-get -y --purge remove <<-packages |
|
libpq-dev |
|
libpq5 |
|
postgresql |
|
postgresql-client-common |
|
postgresql-common |
|
packages |
|
sudo rm -rf /var/lib/postgresql |
|
} |
|
|
|
$1
|
|
|