74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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
 |