Skip to content

Commit

Permalink
Merge pull request #67 from ChristianLempa:7-migrate-promox-project
Browse files Browse the repository at this point in the history
testing proxmox terraform 2
  • Loading branch information
ChristianLempa authored Sep 4, 2023
2 parents d9fda5c + c0e8ec1 commit acca25d
Show file tree
Hide file tree
Showing 3 changed files with 195 additions and 0 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/proxmox-update-vms.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: "Update VMS"

on:
push:
branches:
- main
- test
- dev
paths:
- 'proxmox/prx-prod-2/terraform/*.tf'
pull_request:
branches:
- main
- test
- dev
paths:
- 'proxmox/prx-prod-2/terraform/*.tf'
workflow_dispatch:

defaults:
run:
working-directory: proxmox/prx-prod-2/terraform

env:
TF_VAR_PRX_PROD_2_URL: ${{ secrets.PRX_PROD_2_URL }}
TF_VAR_PRX_PROD_2_USER: ${{ secrets.PRX_PROD_2_USER }}
TF_VAR_PRX_PROD_2_TOKEN: ${{ secrets.PRX_PROD_2_TOKEN }}

jobs:
terraform:
runs-on: "self-hosted"
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
# terraform_version: 0.13.0:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}

- name: Terraform Format
id: fmt
run: terraform fmt -check

- name: Terraform Init
id: init
run: terraform init

- name: Terraform Validate
id: validate
run: terraform validate -no-color

- name: Terraform Plan
id: plan
if: github.event_name == 'pull_request'
run: terraform plan -no-color -input=false
continue-on-error: true

- name: Terraform Plan Status
if: steps.plan.outcome == 'failure'
run: exit 1

- name: Terraform Apply
if: github.event_name == 'push'
run: terraform apply -auto-approve -input=false
38 changes: 38 additions & 0 deletions proxmox/prx-prod-2/terraform/_provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
terraform {

required_version = ">= 0.13.0"

required_providers {
proxmox = {
source = "telmate/proxmox"
version = "=2.9.14"
}
}

cloud {
organization = "clcreative"
workspaces {
name = "prx-prod-2"
}
}
}

variable "PRX_PROD_2_URL" {
type = string
}

variable "PRX_PROD_2_USER" {
type = string
}

variable "PRX_PROD_2_TOKEN" {
type = string
sensitive = true
}

provider "proxmox" {
pm_api_url = var.PRX_PROD_2_URL
pm_api_token_id = var.PRX_PROD_2_USER
pm_api_token_secret = var.PRX_PROD_2_TOKEN
pm_tls_insecure = false
}
90 changes: 90 additions & 0 deletions proxmox/prx-prod-2/terraform/server/server.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
resource "proxmox_vm_qemu" "srv-demo-5" {
name = "srv-demo-5"
desc = "Demo Server 5"
agent = 1
target_node = "prx-prod-1"

tags = "test"

onboot = true
automatic_reboot = true
qemu_os = "other"

vmid = 307
clone = "ubuntu-server-test-1"
full_clone = true
define_connection_info = true

cores = 1
sockets = 1
cpu = "host"
memory = 2048

network {
bridge = "vmbr0"
model = "virtio"
}

scsihw = "virtio-scsi-pci"

disk {
storage = "local-ssd"
type = "virtio"
size = "40G"
}

# Cloud Init Settings
os_type = "cloud-init"
ipconfig0 = "ip=10.20.3.7/16,gw=10.20.0.1"
nameserver = "10.20.0.1"
ciuser = "xcad"
cipassword = "testtest"
sshkeys = <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCsYvxYCpI90al2rJiyccPYNrvjHKLhvgTJVDssAL29jAPhl46gQctL98yZ+Rx9E3dLiHhs8SP14X2m50XbxX+QnjEjq2ywCqu359YMiitvaOgWMzKIaeiwnDngHc5NY+eC8t88bhhKmQPjejmdLSApLu7ObJ/9by2fjWptmqrkkhc1WQs58oYwNDenOd9UNaWcXtyPf2AGIIze2r1cFaEwAPyNtTlzCeqj41jKHLYorvU0CU5KUqgcgswXSgOC+moYac4WIUJCZCCU/s354NpKcJMYN/eiEpK1nZR/jhIe/pEsG4oIbCHy7f+PZruNhF6hi8UvhT+MHS0wwID/gj+UQPyg9GVieiQ1hv+NpLImkTdVJKemMf02548jEPhcrgLowuBemvtf4NHJE0FUH3chTu/Ioi66XKiedWdHMGLTBlWIUMuIYzHeFWLzCg8BqpQK0D7H48W7aku6JgWfhBdy5COvaglpRxlTAac8KURNtR1FRjxX9Lh1hHU+i5nLhIc= WSL2/XWIN
EOF
}

resource "proxmox_vm_qemu" "srv-demo-6" {
name = "srv-demo-6"
desc = "Demo Server 6"
agent = 1
target_node = "prx-prod-1"

tags = "test"

onboot = true
automatic_reboot = true
qemu_os = "other"

vmid = 308
clone = "ubuntu-server-test-1"
full_clone = true
define_connection_info = true

cores = 1
sockets = 1
cpu = "host"
memory = 2048

network {
bridge = "vmbr0"
model = "virtio"
}

scsihw = "virtio-scsi-pci"

disk {
storage = "local-ssd"
type = "virtio"
size = "40G"
}

# Cloud Init Settings
os_type = "cloud-init"
ipconfig0 = "ip=10.20.3.8/16,gw=10.20.0.1"
nameserver = "10.20.0.1"
ciuser = "xcad"
sshkeys = <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCsYvxYCpI90al2rJiyccPYNrvjHKLhvgTJVDssAL29jAPhl46gQctL98yZ+Rx9E3dLiHhs8SP14X2m50XbxX+QnjEjq2ywCqu359YMiitvaOgWMzKIaeiwnDngHc5NY+eC8t88bhhKmQPjejmdLSApLu7ObJ/9by2fjWptmqrkkhc1WQs58oYwNDenOd9UNaWcXtyPf2AGIIze2r1cFaEwAPyNtTlzCeqj41jKHLYorvU0CU5KUqgcgswXSgOC+moYac4WIUJCZCCU/s354NpKcJMYN/eiEpK1nZR/jhIe/pEsG4oIbCHy7f+PZruNhF6hi8UvhT+MHS0wwID/gj+UQPyg9GVieiQ1hv+NpLImkTdVJKemMf02548jEPhcrgLowuBemvtf4NHJE0FUH3chTu/Ioi66XKiedWdHMGLTBlWIUMuIYzHeFWLzCg8BqpQK0D7H48W7aku6JgWfhBdy5COvaglpRxlTAac8KURNtR1FRjxX9Lh1hHU+i5nLhIc= WSL2/XWIN
EOF
}

0 comments on commit acca25d

Please sign in to comment.