Added Terraform/Ansible configuration to include RustDesk deployment
This commit is contained in:
@@ -38,3 +38,4 @@ jobs:
|
||||
sectool exec ansible-playbook -u $ANSIBLE_USER playbook_wordpress.yml
|
||||
sectool exec ansible-playbook -u $ANSIBLE_USER playbook_m3uproxy.yml
|
||||
sectool exec ansible-playbook -u $ANSIBLE_USER playbook_monitoring.yml
|
||||
sectool exec ansible-playbook -u $ANSIBLE_USER playbook_rustdesk.yml
|
||||
|
||||
@@ -39,6 +39,10 @@ fw_allowed_ports:
|
||||
- { rule: "allow", port: "80", proto: "tcp" }
|
||||
- { rule: "allow", port: "443", proto: "tcp" }
|
||||
- { rule: "allow", port: "22", proto: "tcp" }
|
||||
- { rule: "allow", port: "21115", proto: "tcp" }
|
||||
- { rule: "allow", port: "21116", proto: "tcp" }
|
||||
- { rule: "allow", port: "21116", proto: "udp" }
|
||||
- { rule: "allow", port: "21117", proto: "tcp" }
|
||||
- { rule: "allow", port: "16443", proto: "tcp", from: "10.1.0.0/16" }
|
||||
- { rule: "allow", port: "10254", proto: "tcp", from: "10.1.0.0/16" }
|
||||
- { rule: "allow", port: "10254", proto: "tcp", from: "147.78.131.194" }
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: RustDesk Playbook (K8s)
|
||||
hosts: rustdesk
|
||||
gather_facts: true
|
||||
|
||||
# Specific tasks for this playbook
|
||||
tasks:
|
||||
- name: Set required facts
|
||||
ansible.builtin.set_fact:
|
||||
rustdesk_home: "{{ persistent_data | default('/var/lib') }}/rustdesk"
|
||||
rustdesk_user_id: 1000
|
||||
rustdesk_group_id: 1000
|
||||
tags: always
|
||||
|
||||
- name: Create required rustdesk data folder
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: "{{ item }}"
|
||||
mode: "0750"
|
||||
owner: "{{ rustdesk_user_id }}"
|
||||
group: "{{ rustdesk_group_id }}"
|
||||
with_items:
|
||||
- "{{ rustdesk_home }}"
|
||||
tags:
|
||||
- tasks
|
||||
- tasks::folders
|
||||
@@ -27,3 +27,6 @@ prod-01.alexpires.me
|
||||
|
||||
[monitoring]
|
||||
prod-01.alexpires.me
|
||||
|
||||
[rustdesk]
|
||||
prod-01.alexpires.me
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
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
|
||||
@@ -46,6 +46,14 @@ resource "cloudns_dns_record" "alexpires_me_www" {
|
||||
ttl = "3600"
|
||||
}
|
||||
|
||||
resource "cloudns_dns_record" "alexpires_me_rustdesk" {
|
||||
name = "rustdesk"
|
||||
zone = local.alexpires_me_zone
|
||||
type = "CNAME"
|
||||
value = "${cloudns_dns_record.alexpires_me_microk8s.name}.${local.alexpires_me_zone}"
|
||||
ttl = "3600"
|
||||
}
|
||||
|
||||
resource "cloudns_dns_record" "alexpires_me_prod_01" {
|
||||
name = "prod-01"
|
||||
zone = local.alexpires_me_zone
|
||||
|
||||
@@ -37,6 +37,9 @@ locals {
|
||||
"GeoLite2-ASN"
|
||||
]
|
||||
|
||||
# rustdesk
|
||||
rustdesk_version = "latest"
|
||||
|
||||
# backup
|
||||
local_backup_retention_days = 2
|
||||
cloud_backup_retention_days = 3
|
||||
|
||||
@@ -143,24 +143,6 @@ resource "kubernetes_service" "gitea_http" {
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_service" "gitea_ssh" {
|
||||
metadata {
|
||||
name = "ssh"
|
||||
namespace = kubernetes_namespace.gitea.metadata[0].name
|
||||
}
|
||||
spec {
|
||||
port {
|
||||
port = 22
|
||||
target_port = "ssh"
|
||||
node_port = 30036
|
||||
}
|
||||
selector = {
|
||||
app = "gitea"
|
||||
}
|
||||
type = "NodePort"
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_ingress_v1" "gitea_ingress" {
|
||||
metadata {
|
||||
name = "gitea-ingress"
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
locals {
|
||||
rustdesk_path = "${local.persistent_folder}/rustdesk"
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace" "rustdesk" {
|
||||
metadata {
|
||||
name = "rustdesk"
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_config_map" "rustdesk_config" {
|
||||
metadata {
|
||||
name = "rustdesk-config"
|
||||
namespace = kubernetes_namespace.rustdesk.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
RELAY = "rustdesk.alexpires.me"
|
||||
ENCRYPTED_ONLY = "1"
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_secret" "rustdesk_keys" {
|
||||
metadata {
|
||||
name = "rustdesk-keys"
|
||||
namespace = kubernetes_namespace.rustdesk.metadata[0].name
|
||||
}
|
||||
|
||||
data = {
|
||||
KEY_PRIV = var.rustdesk_private_key
|
||||
KEY_PUB = var.rustdesk_public_key
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "rustdesk_deploy" {
|
||||
metadata {
|
||||
name = "rustdesk-deploy"
|
||||
namespace = kubernetes_namespace.rustdesk.metadata[0].name
|
||||
labels = {
|
||||
app = "rustdesk-app"
|
||||
}
|
||||
}
|
||||
|
||||
spec {
|
||||
replicas = 1
|
||||
|
||||
selector {
|
||||
match_labels = {
|
||||
app = "rustdesk-app"
|
||||
}
|
||||
}
|
||||
|
||||
template {
|
||||
metadata {
|
||||
labels = {
|
||||
app = "rustdesk-app"
|
||||
}
|
||||
}
|
||||
|
||||
spec {
|
||||
container {
|
||||
name = "rustdesk-container"
|
||||
image = "rustdesk/rustdesk-server-s6:${local.rustdesk_version}"
|
||||
|
||||
env_from {
|
||||
config_map_ref {
|
||||
name = kubernetes_config_map.rustdesk_config.metadata[0].name
|
||||
}
|
||||
}
|
||||
|
||||
env {
|
||||
name = "KEY_PRIV"
|
||||
value = kubernetes_secret.rustdesk_keys.data["KEY_PRIV"]
|
||||
}
|
||||
|
||||
env {
|
||||
name = "KEY_PUB"
|
||||
value = kubernetes_secret.rustdesk_keys.data["KEY_PUB"]
|
||||
}
|
||||
|
||||
security_context {
|
||||
allow_privilege_escalation = false
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-1"
|
||||
container_port = 21115
|
||||
host_port = 21115
|
||||
protocol = "TCP"
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-2"
|
||||
container_port = 21116
|
||||
host_port = 21116
|
||||
protocol = "TCP"
|
||||
}
|
||||
|
||||
port {
|
||||
name = "udp-port-1"
|
||||
container_port = 21116
|
||||
host_port = 21116
|
||||
protocol = "UDP"
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-3"
|
||||
container_port = 21117
|
||||
host_port = 21117
|
||||
protocol = "TCP"
|
||||
}
|
||||
|
||||
volume_mount {
|
||||
name = "rustdesk-data"
|
||||
mount_path = "/data"
|
||||
}
|
||||
}
|
||||
|
||||
volume {
|
||||
name = "rustdesk-data"
|
||||
host_path {
|
||||
path = local.rustdesk_path
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_service" "rustdesk_tcp_ports" {
|
||||
metadata {
|
||||
name = "rustdesk-tcp-ports"
|
||||
namespace = kubernetes_namespace.rustdesk.metadata[0].name
|
||||
}
|
||||
|
||||
spec {
|
||||
selector = {
|
||||
app = "rustdesk-app"
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-1"
|
||||
port = 21115
|
||||
target_port = 21115
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-2"
|
||||
port = 21116
|
||||
target_port = 21116
|
||||
}
|
||||
|
||||
port {
|
||||
name = "tcp-port-3"
|
||||
port = 21117
|
||||
target_port = 21117
|
||||
}
|
||||
|
||||
type = "LoadBalancer"
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_service" "rustdesk_udp_ports" {
|
||||
metadata {
|
||||
name = "rustdesk-udp-ports"
|
||||
namespace = kubernetes_namespace.rustdesk.metadata[0].name
|
||||
}
|
||||
|
||||
spec {
|
||||
selector = {
|
||||
app = "rustdesk-app"
|
||||
}
|
||||
|
||||
port {
|
||||
name = "udp-port-1"
|
||||
port = 21116
|
||||
target_port = 21116
|
||||
protocol = "UDP"
|
||||
}
|
||||
|
||||
type = "LoadBalancer"
|
||||
}
|
||||
}
|
||||
@@ -17,3 +17,5 @@ TF_VAR_m3uproxy_admin_password=$M3UPROXY_ADMIN_PASSWORD
|
||||
TF_VAR_m3uproxy_secret=$M3UPROXY_SECRET
|
||||
TF_VAR_maxmind_account_id=$MAXMIND_ACCOUNT_ID
|
||||
TF_VAR_maxmind_license_key=$MAXMIND_LICENSE_KEY
|
||||
TF_VAR_rustdesk_private_key=$RUSTDESK_PRIVATE_KEY
|
||||
TF_VAR_rustdesk_public_key=$RUSTDESK_PUBLIC_KEY
|
||||
|
||||
@@ -79,3 +79,13 @@ variable "maxmind_license_key" {
|
||||
description = "Maxmind license key"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "rustdesk_private_key" {
|
||||
description = "Rustdesk private key"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "rustdesk_public_key" {
|
||||
description = "Rustdesk public key"
|
||||
type = string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user