applications moved

This commit is contained in:
Wolfgang Hottgenroth 2023-01-30 15:03:15 +01:00
commit 46bb051ba8
Signed by: wn
GPG Key ID: 836E9E1192A6B132
3 changed files with 138 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
ENV
terraform.tfstate
terraform.tfstate.backup
tf-key
tf-key.pub
.terraform.lock.hcl
.terraform/

115
main.tf Normal file
View File

@ -0,0 +1,115 @@
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "3.0.1"
}
postgresql = {
source = "cyrilgdn/postgresql"
version = "1.18.0"
}
time = {
source = "hashicorp/time"
version = "0.9.1"
}
}
backend "http" {
}
}
provider "docker" {
host = "ssh://root@${var.server_ip}:22"
ssh_opts = [
"-o", "StrictHostKeyChecking=no",
"-o", "UserKnownHostsFile=/dev/null",
"-i", "../infrastructure/tf-key"
]
}
resource "docker_network" "internal-network" {
name = "internal-network"
driver = "bridge"
internal = true
}
resource "docker_volume" "timescaledb-data" {
name = "timescaledb-data"
}
resource "docker_image" "timescaledb-image" {
name = "timescale/timescaledb:latest-pg12"
}
resource "docker_container" "timescaledb-server" {
name = "timescaledb-server"
image = docker_image.timescaledb-image.image_id
volumes {
container_path = "/var/lib/postgresql/data"
volume_name = docker_volume.timescaledb-data.name
}
restart = "always"
hostname = "timescaledb"
networks_advanced {
name = docker_network.internal-network.name
}
ports {
internal = 5432
external = 5432
}
env = [
"POSTGRES_USER=root",
"POSTGRES_PASSWORD=${var.postgres_password}"
]
}
resource "docker_image" "grafana-image" {
name = "grafana/grafana:9.3.6"
}
resource "docker_container" "grafana-server" {
name = "grafana-server"
image = docker_image.grafana-image.image_id
restart = "always"
hostname = "grafana"
networks_advanced {
name = docker_network.internal-network.name
}
ports {
internal = 3000
external = 3000
}
env = [
"GF_SECURITY_ADMIN_USER=admin",
"GF_SECURITY_ADMIN_PASSWORD=${var.grafana_password}"
]
}
resource "docker_volume" "gitlab-runner-data" {
name = "gitlab-runner-data"
}
resource "docker_image" "gitlab-runner-image" {
name = "gitlab/gitlab-runner:v15.5.2"
}
resource "docker_container" "gitlab-runner" {
name = "gitlab-runner"
image = docker_image.gitlab-runner-image.image_id
restart = "always"
volumes {
container_path = "/etc/gitlab-runner"
volume_name = docker_volume.gitlab-runner-data.name
}
volumes {
container_path = "/var/run/docker.sock"
host_path = "/var/run/docker.sock"
}
env = [
]
}

15
variables.tf Normal file
View File

@ -0,0 +1,15 @@
variable "server_ip" {
sensitive = true
type = string
}
variable "postgres_password" {
sensitive = true
type = string
}
variable "grafana_password" {
sensitive = true
type = string
}