Terraform
This commit is contained in:
parent
acfae9044c
commit
eeeaeececf
BIN
Docker/.DS_Store
vendored
Normal file
BIN
Docker/.DS_Store
vendored
Normal file
Binary file not shown.
38
Docker/NPM/docker-compose.yaml
Normal file
38
Docker/NPM/docker-compose.yaml
Normal file
@ -0,0 +1,38 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
app:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# These ports are in format <host-port>:<container-port>
|
||||
- '80:80' # Public HTTP Port
|
||||
- '443:443' # Public HTTPS Port
|
||||
- '81:81' # Admin Web Port
|
||||
# Add any other Stream port you want to expose
|
||||
# - '21:21' # FTP
|
||||
environment:
|
||||
# Mysql/Maria connection parameters:
|
||||
DB_MYSQL_HOST: "db"
|
||||
DB_MYSQL_PORT: 3306
|
||||
DB_MYSQL_USER: "npm"
|
||||
DB_MYSQL_PASSWORD: "npm"
|
||||
DB_MYSQL_NAME: "npm"
|
||||
# Uncomment this if IPv6 is not enabled on your host
|
||||
# DISABLE_IPV6: 'true'
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: 'jc21/mariadb-aria:latest'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: 'npm'
|
||||
MYSQL_DATABASE: 'npm'
|
||||
MYSQL_USER: 'npm'
|
||||
MYSQL_PASSWORD: 'npm'
|
||||
MARIADB_AUTO_UPGRADE: '1'
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
51
Docker/gitea/docker-compose.yaml
Normal file
51
Docker/gitea/docker-compose.yaml
Normal file
@ -0,0 +1,51 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v2.9
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
command:
|
||||
- "--api.insecure=true" # Открытая панель управления Traefik, не рекомендуется для продакшена
|
||||
- "--providers.docker=true" # Включаем динамическое определение маршрутов на основе Docker контейнеров
|
||||
- "--entrypoints.web.address=:80" # HTTP (80 порт)
|
||||
- "--entrypoints.websecure.address=:443" # HTTPS (443 порт)
|
||||
- "--certificatesresolvers.myresolver.acme.httpchallenge=true" # Включаем HTTP challenge для Let's Encrypt
|
||||
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" # Указываем HTTP endpoint для ACME
|
||||
- "--certificatesresolvers.myresolver.acme.email=gba404@gmail.com" # Ваш email для регистрации с Let's Encrypt
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" # Файл для хранения сертификатов
|
||||
volumes:
|
||||
- ./letsencrypt:/letsencrypt # Хранение сертификатов
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # Доступ к Docker сокету
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- DB_TYPE=mysql
|
||||
- DB_HOST=db:3306
|
||||
- DB_NAME=gitea
|
||||
- DB_USER=gitea
|
||||
- DB_PASSWD=gitea_pass
|
||||
- ROOT_URL=https://git.playgba.ru
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.gitea.rule=Host(`git.playgba.ru`)" # Определение маршрута на основе домена
|
||||
- "traefik.http.routers.gitea.entrypoints=websecure" # Используем HTTPS
|
||||
- "traefik.http.routers.gitea.tls.certresolver=myresolver" # Указываем резолвер для получения сертификатов
|
||||
- "traefik.http.services.gitea.loadbalancer.server.port=3000" # Порт, на который проксируется запрос
|
||||
|
||||
db:
|
||||
image: mysql:8.0
|
||||
container_name: gitea_db
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=8148
|
||||
- MYSQL_DATABASE=gitea
|
||||
- MYSQL_USER=gitea
|
||||
- MYSQL_PASSWORD=1488
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
37
Docker/nextcloud/docker-compose.yaml
Normal file
37
Docker/nextcloud/docker-compose.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: nextcloud:latest
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:80
|
||||
volumes:
|
||||
- ./nextcloud:/var/www/html
|
||||
environment:
|
||||
- POSTGRES_HOST=db
|
||||
- POSTGRES_PASSWORD=8148
|
||||
- POSTGRES_USER=next
|
||||
- POSTGRES_DB=nextcloud
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
db:
|
||||
image: postgres:15
|
||||
restart: always
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_DB=nextcloud
|
||||
- POSTGRES_USER=next
|
||||
- POSTGRES_PASSWORD=8148
|
||||
|
||||
redis:
|
||||
image: redis:bookworm
|
||||
restart: always
|
||||
command: redis-server --requirepass 8148
|
||||
environment:
|
||||
- REDIS_PASSWORD=8148
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
52
NPM.tf
Normal file
52
NPM.tf
Normal file
@ -0,0 +1,52 @@
|
||||
resource "proxmox_vm_qemu" "NPM" {
|
||||
count = 1
|
||||
name = "NPM"
|
||||
target_node = var.proxmox_host
|
||||
clone = "ubuntu-2404-template"
|
||||
agent = 1
|
||||
os_type = "cloud-init"
|
||||
cores = 2
|
||||
sockets = 1
|
||||
cpu = "host"
|
||||
vmid = 101
|
||||
vcpus = 1
|
||||
memory = 2048
|
||||
scsihw = "virtio-scsi-pci"
|
||||
bootdisk = "scsi0"
|
||||
full_clone = true
|
||||
|
||||
# Основной диск
|
||||
disk {
|
||||
slot = "scsi0"
|
||||
size = "10G"
|
||||
type = "disk"
|
||||
storage = "local-lvm"
|
||||
iothread = true
|
||||
backup = true
|
||||
}
|
||||
|
||||
# Диск для cloud-init
|
||||
disk {
|
||||
slot = "scsi1"
|
||||
type = "cloudinit"
|
||||
storage = "local-lvm"
|
||||
}
|
||||
|
||||
# Сетевой интерфейс
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
|
||||
# Настройки сети для cloud-init
|
||||
ipconfig0 = "ip=192.168.0.101/24,gw=192.168.0.1"
|
||||
|
||||
ciuser = "root"
|
||||
cipassword = "8148"
|
||||
cicustom = "user=local:snippets/NPM.yml"
|
||||
|
||||
# Игнорирование изменений после создания виртуальной машины
|
||||
lifecycle {
|
||||
ignore_changes = [network, disk, bootdisk]
|
||||
}
|
||||
}
|
||||
BIN
cloud-init/.DS_Store
vendored
Normal file
BIN
cloud-init/.DS_Store
vendored
Normal file
Binary file not shown.
19
cloud-init/NPM.yml
Normal file
19
cloud-init/NPM.yml
Normal file
@ -0,0 +1,19 @@
|
||||
#cloud-config
|
||||
users:
|
||||
- name: root
|
||||
ssh-authorized-keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDItH73+vTvxxgMlv8vzpRt59KeKykYGhMhOCt+uWxbsuhjPvXRQC6dCwuDLy8heiYFO8bklOiLxLtz3GBOtp4OcjVRkgS7L4+qUn8QkAaJPQeEUuKADrCpxxLz0rYsgLo9WvQ9HS/WS15wmMHbSufGjXjhApZ3VODMyrtdaDOoyKm+YMahxY577TkX3yIdv3+yENPhP+rNdcWxFKYvEzOz2XACvq81fxfcYLN5opPbz+UILnQSyxI+TxZtzq3icPQAsVXPmZGBbryiSk3e5tFhE7ORkw1I2QG4CBEPZx+gAhbO0p3sCcdpLF7z4HxaGzJKpy6V8JxZHmLJCgQeSsgaeP3OvTU/lgsWw6xphEpQqJmb9dMjtJMyV8I/PxrLPP9ikh5tcqlXENLXSc6V4BkI1NUJZhYm0sYPcWW2ZeYy6gGzYiSgu3wqzqf0yG9j8NnMtdyvBLMhNKasqfd0CRK+CQ3apMghC68X7JK7CDA/edjfl2MA/QJ2ZoYBBzyXd9vUJgMlyZaxXG9NIA7rU88OZTmS+43y1BRNlkXh231EjtH7h25n+nYxYInFtFWbbi1liORxVO622Y4YnCdTJFoyiFGsuzSaDYfjRMzSHOjnUlUVsqYHPIfH6h/ZH5vVrAMihnIhqJDbi1rLtZVx0GsmpXMAWAee2oi4rEcEynydMQ== gba404@gmail.com
|
||||
lock_passwd: false
|
||||
passwd: 8148
|
||||
hostname: NPM
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
packages:
|
||||
- curl
|
||||
- docker.io
|
||||
- docker-compose
|
||||
- fish
|
||||
- htop
|
||||
runcmd:
|
||||
- systemctl start docker
|
||||
- systemctl enable docker
|
||||
19
cloud-init/gitea.yml
Normal file
19
cloud-init/gitea.yml
Normal file
@ -0,0 +1,19 @@
|
||||
#cloud-config
|
||||
users:
|
||||
- name: root
|
||||
ssh-authorized-keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDItH73+vTvxxgMlv8vzpRt59KeKykYGhMhOCt+uWxbsuhjPvXRQC6dCwuDLy8heiYFO8bklOiLxLtz3GBOtp4OcjVRkgS7L4+qUn8QkAaJPQeEUuKADrCpxxLz0rYsgLo9WvQ9HS/WS15wmMHbSufGjXjhApZ3VODMyrtdaDOoyKm+YMahxY577TkX3yIdv3+yENPhP+rNdcWxFKYvEzOz2XACvq81fxfcYLN5opPbz+UILnQSyxI+TxZtzq3icPQAsVXPmZGBbryiSk3e5tFhE7ORkw1I2QG4CBEPZx+gAhbO0p3sCcdpLF7z4HxaGzJKpy6V8JxZHmLJCgQeSsgaeP3OvTU/lgsWw6xphEpQqJmb9dMjtJMyV8I/PxrLPP9ikh5tcqlXENLXSc6V4BkI1NUJZhYm0sYPcWW2ZeYy6gGzYiSgu3wqzqf0yG9j8NnMtdyvBLMhNKasqfd0CRK+CQ3apMghC68X7JK7CDA/edjfl2MA/QJ2ZoYBBzyXd9vUJgMlyZaxXG9NIA7rU88OZTmS+43y1BRNlkXh231EjtH7h25n+nYxYInFtFWbbi1liORxVO622Y4YnCdTJFoyiFGsuzSaDYfjRMzSHOjnUlUVsqYHPIfH6h/ZH5vVrAMihnIhqJDbi1rLtZVx0GsmpXMAWAee2oi4rEcEynydMQ== gba404@gmail.com
|
||||
lock_passwd: false
|
||||
passwd: 8148
|
||||
hostname: gitea
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
packages:
|
||||
- curl
|
||||
- docker.io
|
||||
- docker-compose
|
||||
- fish
|
||||
- htop
|
||||
runcmd:
|
||||
- systemctl start docker
|
||||
- systemctl enable docker
|
||||
19
cloud-init/next-cloud.yml
Normal file
19
cloud-init/next-cloud.yml
Normal file
@ -0,0 +1,19 @@
|
||||
#cloud-config
|
||||
users:
|
||||
- name: root
|
||||
ssh-authorized-keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDItH73+vTvxxgMlv8vzpRt59KeKykYGhMhOCt+uWxbsuhjPvXRQC6dCwuDLy8heiYFO8bklOiLxLtz3GBOtp4OcjVRkgS7L4+qUn8QkAaJPQeEUuKADrCpxxLz0rYsgLo9WvQ9HS/WS15wmMHbSufGjXjhApZ3VODMyrtdaDOoyKm+YMahxY577TkX3yIdv3+yENPhP+rNdcWxFKYvEzOz2XACvq81fxfcYLN5opPbz+UILnQSyxI+TxZtzq3icPQAsVXPmZGBbryiSk3e5tFhE7ORkw1I2QG4CBEPZx+gAhbO0p3sCcdpLF7z4HxaGzJKpy6V8JxZHmLJCgQeSsgaeP3OvTU/lgsWw6xphEpQqJmb9dMjtJMyV8I/PxrLPP9ikh5tcqlXENLXSc6V4BkI1NUJZhYm0sYPcWW2ZeYy6gGzYiSgu3wqzqf0yG9j8NnMtdyvBLMhNKasqfd0CRK+CQ3apMghC68X7JK7CDA/edjfl2MA/QJ2ZoYBBzyXd9vUJgMlyZaxXG9NIA7rU88OZTmS+43y1BRNlkXh231EjtH7h25n+nYxYInFtFWbbi1liORxVO622Y4YnCdTJFoyiFGsuzSaDYfjRMzSHOjnUlUVsqYHPIfH6h/ZH5vVrAMihnIhqJDbi1rLtZVx0GsmpXMAWAee2oi4rEcEynydMQ== gba404@gmail.com
|
||||
lock_passwd: false
|
||||
passwd: 8148
|
||||
hostname: next-cloud
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
packages:
|
||||
- curl
|
||||
- docker.io
|
||||
- docker-compose
|
||||
- fish
|
||||
- htop
|
||||
runcmd:
|
||||
- systemctl start docker
|
||||
- systemctl enable docker
|
||||
84
cloud-init/planka.yml
Normal file
84
cloud-init/planka.yml
Normal file
@ -0,0 +1,84 @@
|
||||
#cloud-config
|
||||
users:
|
||||
- name: root
|
||||
ssh-authorized-keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDItH73+vTvxxgMlv8vzpRt59KeKykYGhMhOCt+uWxbsuhjPvXRQC6dCwuDLy8heiYFO8bklOiLxLtz3GBOtp4OcjVRkgS7L4+qUn8QkAaJPQeEUuKADrCpxxLz0rYsgLo9WvQ9HS/WS15wmMHbSufGjXjhApZ3VODMyrtdaDOoyKm+YMahxY577TkX3yIdv3+yENPhP+rNdcWxFKYvEzOz2XACvq81fxfcYLN5opPbz+UILnQSyxI+TxZtzq3icPQAsVXPmZGBbryiSk3e5tFhE7ORkw1I2QG4CBEPZx+gAhbO0p3sCcdpLF7z4HxaGzJKpy6V8JxZHmLJCgQeSsgaeP3OvTU/lgsWw6xphEpQqJmb9dMjtJMyV8I/PxrLPP9ikh5tcqlXENLXSc6V4BkI1NUJZhYm0sYPcWW2ZeYy6gGzYiSgu3wqzqf0yG9j8NnMtdyvBLMhNKasqfd0CRK+CQ3apMghC68X7JK7CDA/edjfl2MA/QJ2ZoYBBzyXd9vUJgMlyZaxXG9NIA7rU88OZTmS+43y1BRNlkXh231EjtH7h25n+nYxYInFtFWbbi1liORxVO622Y4YnCdTJFoyiFGsuzSaDYfjRMzSHOjnUlUVsqYHPIfH6h/ZH5vVrAMihnIhqJDbi1rLtZVx0GsmpXMAWAee2oi4rEcEynydMQ== gba404@gmail.com
|
||||
lock_passwd: false
|
||||
passwd: $1$/bB7Q1vR$Nz4PtA52uDdF6.pc.haec/
|
||||
hostname: planka
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
packages:
|
||||
- curl
|
||||
- docker.io
|
||||
- docker-compose
|
||||
- fish
|
||||
- htop
|
||||
write_files:
|
||||
- path: /root/docker-compose.yaml
|
||||
content: |
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
planka:
|
||||
image: ghcr.io/plankanban/planka:latest
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- user-avatars:/app/public/user-avatars
|
||||
- project-background-images:/app/public/project-background-images
|
||||
- attachments:/app/private/attachments
|
||||
ports:
|
||||
- 3001:1337
|
||||
environment:
|
||||
- BASE_URL=http://192.168.0.104:3001
|
||||
- DATABASE_URL=postgresql://postgres@postgres/planka
|
||||
- SECRET_KEY=0aa5a62d38f7733356c6bcd22e570837d98898863c7f9275df279ae35b1dc968da9cd936de23de397e6051a288fa73d12c056a8b9da4da7d37f2d8fcfe8a00b7
|
||||
- DEFAULT_ADMIN_EMAIL=gba404@gmail.com
|
||||
- DEFAULT_ADMIN_PASSWORD=8148
|
||||
- DEFAULT_ADMIN_NAME=Admin Admin
|
||||
- DEFAULT_ADMIN_USERNAME=root
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_DB=planka
|
||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres -d planka"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
user-avatars:
|
||||
project-background-images:
|
||||
attachments:
|
||||
db-data:
|
||||
|
||||
- path: /etc/systemd/system/docker-compose.service
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Docker Compose Application Service
|
||||
Requires=docker.service
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/root
|
||||
ExecStart=/usr/local/bin/docker-compose up -d
|
||||
ExecStop=/usr/local/bin/docker-compose down
|
||||
Restart=always
|
||||
TimeoutStartSec=0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
runcmd:
|
||||
- systemctl daemon-reload
|
||||
- systemctl enable docker-compose.service
|
||||
- systemctl start docker-compose.service
|
||||
52
gitea.tf
Normal file
52
gitea.tf
Normal file
@ -0,0 +1,52 @@
|
||||
resource "proxmox_vm_qemu" "gitea" {
|
||||
count = 1
|
||||
name = "gitea"
|
||||
target_node = var.proxmox_host
|
||||
clone = "ubuntu-2404-template"
|
||||
agent = 1
|
||||
os_type = "cloud-init"
|
||||
vmid = 103
|
||||
cores = 2
|
||||
sockets = 1
|
||||
cpu = "host"
|
||||
vcpus = 1
|
||||
memory = 4096
|
||||
scsihw = "virtio-scsi-pci"
|
||||
bootdisk = "scsi0"
|
||||
full_clone = true
|
||||
|
||||
# Основной диск
|
||||
disk {
|
||||
slot = "scsi0"
|
||||
size = "20G"
|
||||
type = "disk"
|
||||
storage = "local-lvm"
|
||||
iothread = true
|
||||
}
|
||||
|
||||
# Диск для cloud-init
|
||||
disk {
|
||||
slot = "scsi1"
|
||||
type = "cloudinit"
|
||||
storage = "local-lvm"
|
||||
backup = true
|
||||
}
|
||||
|
||||
# Сетевой интерфейс
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
|
||||
# Настройки сети для cloud-init
|
||||
ipconfig0 = "ip=192.168.0.103/24,gw=192.168.0.1"
|
||||
|
||||
ciuser = "root"
|
||||
cipassword = "8148"
|
||||
cicustom = "user=local:snippets/gitea.yml"
|
||||
|
||||
# Игнорирование изменений после создания виртуальной машины
|
||||
lifecycle {
|
||||
ignore_changes = [network, disk, bootdisk]
|
||||
}
|
||||
}
|
||||
16
main.tf
Normal file
16
main.tf
Normal file
@ -0,0 +1,16 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "registry.local/telmate/proxmox"
|
||||
version = "3.0.1-rc4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "proxmox" {
|
||||
pm_api_url = var.api_url
|
||||
pm_api_token_id = var.token_id
|
||||
pm_api_token_secret = var.token_secret
|
||||
pm_tls_insecure = true # Change to false if you have your
|
||||
pm_parallel = 1
|
||||
}
|
||||
52
nextcloud.tf
Normal file
52
nextcloud.tf
Normal file
@ -0,0 +1,52 @@
|
||||
resource "proxmox_vm_qemu" "next-cloud" {
|
||||
count = 1
|
||||
name = "next-cloud"
|
||||
target_node = var.proxmox_host
|
||||
clone = "ubuntu-2404-template"
|
||||
agent = 1
|
||||
os_type = "cloud-init"
|
||||
vmid = 102
|
||||
cores = 2
|
||||
sockets = 1
|
||||
cpu = "host"
|
||||
vcpus = 1
|
||||
memory = 4096
|
||||
scsihw = "virtio-scsi-pci"
|
||||
bootdisk = "scsi0"
|
||||
full_clone = true
|
||||
|
||||
# Основной диск
|
||||
disk {
|
||||
slot = "scsi0"
|
||||
size = "50G"
|
||||
type = "disk"
|
||||
storage = "local-lvm"
|
||||
iothread = true
|
||||
}
|
||||
|
||||
# Диск для cloud-init
|
||||
disk {
|
||||
slot = "scsi1"
|
||||
type = "cloudinit"
|
||||
storage = "local-lvm"
|
||||
backup = true
|
||||
}
|
||||
|
||||
# Сетевой интерфейс
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
|
||||
# Настройки сети для cloud-init
|
||||
ipconfig0 = "ip=192.168.0.102/24,gw=192.168.0.1"
|
||||
|
||||
ciuser = "root"
|
||||
cipassword = "8148"
|
||||
cicustom = "user=local:snippets/next-cloud.yml"
|
||||
|
||||
# Игнорирование изменений после создания виртуальной машины
|
||||
lifecycle {
|
||||
ignore_changes = [network, disk, bootdisk]
|
||||
}
|
||||
}
|
||||
52
planka.tf
Normal file
52
planka.tf
Normal file
@ -0,0 +1,52 @@
|
||||
resource "proxmox_vm_qemu" "planka" {
|
||||
count = 1
|
||||
name = "planka"
|
||||
target_node = var.proxmox_host
|
||||
clone = "ubuntu-2404-template"
|
||||
agent = 1
|
||||
os_type = "cloud-init"
|
||||
vmid = 104
|
||||
cores = 2
|
||||
sockets = 1
|
||||
cpu = "host"
|
||||
vcpus = 1
|
||||
memory = 4096
|
||||
scsihw = "virtio-scsi-pci"
|
||||
bootdisk = "scsi0"
|
||||
full_clone = true
|
||||
|
||||
# Основной диск
|
||||
disk {
|
||||
slot = "scsi0"
|
||||
size = "20G"
|
||||
type = "disk"
|
||||
storage = "local-lvm"
|
||||
iothread = true
|
||||
}
|
||||
|
||||
# Диск для cloud-init
|
||||
disk {
|
||||
slot = "scsi1"
|
||||
type = "cloudinit"
|
||||
storage = "local-lvm"
|
||||
backup = true
|
||||
}
|
||||
|
||||
# Сетевой интерфейс
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
|
||||
# Настройки сети для cloud-init
|
||||
ipconfig0 = "ip=192.168.0.104/24,gw=192.168.0.1"
|
||||
|
||||
ciuser = "root"
|
||||
cipassword = "8148"
|
||||
cicustom = "user=local:snippets/planka.yml"
|
||||
|
||||
# Игнорирование изменений после создания виртуальной машины
|
||||
lifecycle {
|
||||
ignore_changes = [network, disk, bootdisk]
|
||||
}
|
||||
}
|
||||
20
vars.tf
Normal file
20
vars.tf
Normal file
@ -0,0 +1,20 @@
|
||||
variable "ssh_key" {
|
||||
default = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDItH73+vTvxxgMlv8vzpRt59KeKykYGhMhOCt+uWxbsuhjPvXRQC6dCwuDLy8heiYFO8bklOiLxLtz3GBOtp4OcjVRkgS7L4+qUn8QkAaJPQeEUuKADrCpxxLz0rYsgLo9WvQ9HS/WS15wmMHbSufGjXjhApZ3VODMyrtdaDOoyKm+YMahxY577TkX3yIdv3+yENPhP+rNdcWxFKYvEzOz2XACvq81fxfcYLN5opPbz+UILnQSyxI+TxZtzq3icPQAsVXPmZGBbryiSk3e5tFhE7ORkw1I2QG4CBEPZx+gAhbO0p3sCcdpLF7z4HxaGzJKpy6V8JxZHmLJCgQeSsgaeP3OvTU/lgsWw6xphEpQqJmb9dMjtJMyV8I/PxrLPP9ikh5tcqlXENLXSc6V4BkI1NUJZhYm0sYPcWW2ZeYy6gGzYiSgu3wqzqf0yG9j8NnMtdyvBLMhNKasqfd0CRK+CQ3apMghC68X7JK7CDA/edjfl2MA/QJ2ZoYBBzyXd9vUJgMlyZaxXG9NIA7rU88OZTmS+43y1BRNlkXh231EjtH7h25n+nYxYInFtFWbbi1liORxVO622Y4YnCdTJFoyiFGsuzSaDYfjRMzSHOjnUlUVsqYHPIfH6h/ZH5vVrAMihnIhqJDbi1rLtZVx0GsmpXMAWAee2oi4rEcEynydMQ== gba404@gmail.com"
|
||||
}
|
||||
variable "api_url" {
|
||||
# The Proxmox Web UI address, with /api2/json added to it.
|
||||
default = "https://192.168.0.100:8006/api2/json"
|
||||
}
|
||||
variable "proxmox_host" {
|
||||
# The name of the Proxmox server listed under Datacenter
|
||||
default = "pve"
|
||||
}
|
||||
variable "template_name" {
|
||||
default = "ubuntu-2404-template"
|
||||
}
|
||||
variable "token_id" {
|
||||
default = "root@pam!terraform"
|
||||
}
|
||||
variable "token_secret" {
|
||||
default = "882ad9dc-6e4e-4d1d-87de-f4f48afc4b0d" # Enter your API Secret here
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user