Added tfvars

This commit is contained in:
djx_qlik
2020-09-17 21:52:45 -04:00
parent 7eb5b2618d
commit eaaecfa7cb
5 changed files with 65 additions and 116 deletions

View File

@@ -1,116 +0,0 @@
provider "google" {
version = "3.10.0"
credentials = file("esoteric-parsec-243510-a8f93bb5a906.json")
project = "esoteric-parsec-243510"
region = "us-central1"
zone = "us-central1-a"
}
# provider "postgresql" {
# host = "google_sql_database_instance.qseow-psql.public_ip_address"
# port = 5432
# database = "postgres"
# username = "postgres"
# password = "Qlik1234!"
# sslmode = "disable"
# connect_timeout = 15
# }
# Create random ID for DB suffix
resource "random_id" "db_name_suffix" {
byte_length = 4
}
# Create res for Cloud SQL DB config
resource "google_sql_database_instance" "qseow-psql" {
name = "qseow-psql-${random_id.db_name_suffix.hex}"
database_version = "POSTGRES_9_6"
settings{
tier = "db-g1-small"
availability_type = "REGIONAL"
backup_configuration {
enabled = "true"
}
# Enable ACL for Home IP
# Change-out for cloud-sql-proxy inside runner
ip_configuration {
ipv4_enabled = "true"
authorized_networks {
name = "Home"
value = "71.164.77.198"
}
}
}
}
# Configure return values from google_sql_database_instance
output "psql_ipv4" {
value = google_sql_database_instance.qseow-psql.public_ip_address
}
output "psql_name" {
value = google_sql_database_instance.qseow-psql.connection_name
}
# Configure postgres user
resource "google_sql_user" "users" {
name = "postgres"
instance = google_sql_database_instance.qseow-psql.name
password = "Qlik1234!"
}
# Prep SQL query
data "template_file" "psql_script" {
template = <<SQL
CREATE DATABASE "QSR" ENCODING = 'UTF8';
CREATE DATABASE "QSMQ" ENCODING = 'UTF8';
CREATE DATABASE "Licenses" ENCODING = 'UTF8';
CREATE DATABASE "SenseServices" ENCODING = 'UTF8';
CREATE DATABASE "QLogs" ENCODING = 'UTF8';
CREATE ROLE "qliksenserepository" WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
ALTER ROLE "qliksenserepository" WITH ENCRYPTED PASSWORD 'Qlik1234!';
GRANT qliksenserepository TO postgres;
ALTER DATABASE "QSR" OWNER TO "qliksenserepository";
ALTER DATABASE "SenseServices" OWNER TO "qliksenserepository";
ALTER DATABASE "QSMQ" OWNER TO "qliksenserepository";
ALTER DATABASE "Licenses" OWNER TO qliksenserepository;
GRANT TEMPORARY, CONNECT ON DATABASE "QSMQ" TO PUBLIC;
GRANT ALL ON DATABASE "QSMQ" TO postgres;
GRANT CREATE ON DATABASE "QSMQ" TO "qliksenserepository";
GRANT TEMPORARY, CONNECT ON DATABASE "SenseServices" TO PUBLIC;
GRANT ALL ON DATABASE "SenseServices" TO postgres;
GRANT CREATE ON DATABASE "SenseServices" TO "qliksenserepository";
GRANT TEMPORARY, CONNECT ON DATABASE "Licenses" TO PUBLIC;
GRANT ALL ON DATABASE "Licenses" TO postgres;
GRANT CREATE ON DATABASE "Licenses" TO qliksenserepository;
CREATE ROLE qlogs_users WITH NOLOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
CREATE ROLE qlogs_reader WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
CREATE ROLE qlogs_writer WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
ALTER ROLE qlogs_reader WITH ENCRYPTED PASSWORD 'Qlik1234!';
ALTER ROLE qlogs_writer WITH ENCRYPTED PASSWORD 'Qlik1234!';
GRANT qlogs_users TO qlogs_reader;
GRANT qlogs_users TO qlogs_writer;
ALTER DATABASE "QLogs" OWNER TO qlogs_writer;
SQL
}
# Proto-section for setting up DBs/executing .sql file
## Seems to be hanging? DB is created and this sits for MINUTES
# resource "null_resource" "db_setup" {
# provisioner "local-exec" {
# command = "psql -h ${google_sql_database_instance.qseow-psql.public_ip_address} -U postgres -d postgres -c ${data.template_file.psql_script.template}"
# # command = "psql 'sslmode=disable dbname=postgres user=postgres hostaddr=google_sql_database_instance.qseow-psql.public_ip_address' -f ./qseow-test.sql"
# }
# depends_on = [google_sql_database_instance.qseow-psql, google_sql_user.users]
# }

View File

@@ -0,0 +1,60 @@
provider "google" {
version = "3.10.0"
credentials = file("esoteric-parsec-243510-a8f93bb5a906.json")
project = ${var.project}
region = ${var.region}
zone = ${var.zone}
}
# Create random ID for DB suffix
resource "random_id" "db_suffix" {
byte_length = 4
}
# Create res for Cloud SQL DB config
resource "google_sql_database_instance" "qseow-psql" {
name = "qseow-psql-${random_id.db_suffix.hex}"
database_version = "POSTGRES_9_6"
settings{
tier = "db-g1-small"
availability_type = "REGIONAL"
backup_configuration {
enabled = "true"
}
# Enable ACL for Home IP
# Change-out for cloud-sql-proxy inside runner
ip_configuration {
ipv4_enabled = "true"
authorized_networks {
name = "Network ACL"
value = ${var.aclCIDR}
}
}
}
}
# Configure return values from google_sql_database_instance
output "psql_ipv4" {
value = google_sql_database_instance.qseow-psql.public_ip_address
}
output "psql_name" {
value = google_sql_database_instance.qseow-psql.connection_name
}
# Configure postgres user
resource "google_sql_user" "users" {
name = "postgres"
instance = google_sql_database_instance.qseow-psql.name
password = ${var.postgresPwd}
}
# Proto-section for setting up DBs/executing .sql file
## Seems to be hanging? DB is created and this sits for MINUTES
resource "null_resource" "db_setup" {
provisioner "local-exec" {
command = "psql -h ${google_sql_database_instance.qseow-psql.public_ip_address} -U postgres -d postgres -f qseow_db_setup.sql"
}
depends_on = [google_sql_database_instance.qseow-psql, google_sql_user.users]
}

View File

@@ -0,0 +1,5 @@
project = "esoteric-parsec-243510"
region = "us-central1"
zone = "us-central1-a"
aclCIDR = "71.164.77.198/32"
postgresPwd = "Qlik1234!"