diff options
64 files changed, 95 insertions, 42 deletions
diff --git a/.gitignore b/.gitignore index c55d3b2..c55d3b2 100644..100755 --- a/.gitignore +++ b/.gitignore diff --git a/README.md b/README.md index 57c469a..57c469a 100644..100755 --- a/README.md +++ b/README.md diff --git a/ansible/.envrc b/ansible/.envrc index a7accf5..a7accf5 100644..100755 --- a/ansible/.envrc +++ b/ansible/.envrc diff --git a/ansible/README.md b/ansible/README.md index 4c67f24..5b971b3 100644..100755 --- a/ansible/README.md +++ b/ansible/README.md @@ -8,13 +8,14 @@ to our reverse proxy (Caddy) configuration.  # TODOs (in-progress) -1. reverse-proxy init +1. reverse-proxy (Caddy) init 1. minio user,bucket init 1. static sites using minio bucket # Done 1. Adding service to reverse-proxy (Caddy) via api -1. Media Downloader with Transmission, and `*arr` services +1. Media Downloader for `*arr` services +1. Torrent server 1. Plex 1. Password Manager 1. Nextcloud @@ -39,11 +40,11 @@ git checkout group_vars/all/vault.example ```bash ansible-vault view/edit group_vars/all/vault ``` -1. (FTO) Run the `init.yaml` playbook with a `limit` to install a service +1. (FTO) Run the `init.yaml` playbook with a `limit` and `tag` to install a service ```bash ansible-playbook playbooks/init.yaml --limit=[app name] --tags=install ``` -1. Use another playbook to modify a service +1. Run the playbook with a `limit` and `tag` to modify a service ```bash ansible-playbook playbooks/... --limit=[app name] --tags=config ``` diff --git a/ansible/ansible-lint.yaml b/ansible/ansible-lint.yaml index ce3d0bd..ce3d0bd 100644..100755 --- a/ansible/ansible-lint.yaml +++ b/ansible/ansible-lint.yaml diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg index 4b2fc3e..4b2fc3e 100644..100755 --- a/ansible/ansible.cfg +++ b/ansible/ansible.cfg diff --git a/ansible/archi.png b/ansible/archi.png Binary files differindex 8dc645a..8dc645a 100644..100755 --- a/ansible/archi.png +++ b/ansible/archi.png diff --git a/ansible/group_vars/all/vault b/ansible/group_vars/all/vault index 92db89e..92db89e 100644..100755 --- a/ansible/group_vars/all/vault +++ b/ansible/group_vars/all/vault diff --git a/ansible/group_vars/all/vault.example b/ansible/group_vars/all/vault.example index 3a21a43..3a21a43 100644..100755 --- a/ansible/group_vars/all/vault.example +++ b/ansible/group_vars/all/vault.example diff --git a/ansible/hosts b/ansible/hosts index 27dbb3d..27dbb3d 100644..100755 --- a/ansible/hosts +++ b/ansible/hosts diff --git a/ansible/playbooks/init.yaml b/ansible/playbooks/init.yaml index 0b22716..0b22716 100644..100755 --- a/ansible/playbooks/init.yaml +++ b/ansible/playbooks/init.yaml diff --git a/ansible/poetry.lock b/ansible/poetry.lock index 479fecc..479fecc 100644..100755 --- a/ansible/poetry.lock +++ b/ansible/poetry.lock diff --git a/ansible/pyproject.toml b/ansible/pyproject.toml index c5d4373..c5d4373 100644..100755 --- a/ansible/pyproject.toml +++ b/ansible/pyproject.toml diff --git a/ansible/roles/base/tasks/main.yaml b/ansible/roles/base/tasks/main.yaml index 5252ced..5252ced 100644..100755 --- a/ansible/roles/base/tasks/main.yaml +++ b/ansible/roles/base/tasks/main.yaml diff --git a/ansible/roles/caddy_add/meta/argument_specs.yaml b/ansible/roles/caddy_add/meta/argument_specs.yaml index 3c40bd6..3c40bd6 100644..100755 --- a/ansible/roles/caddy_add/meta/argument_specs.yaml +++ b/ansible/roles/caddy_add/meta/argument_specs.yaml diff --git a/ansible/roles/caddy_add/meta/main.yaml b/ansible/roles/caddy_add/meta/main.yaml index 0f50759..0f50759 100644..100755 --- a/ansible/roles/caddy_add/meta/main.yaml +++ b/ansible/roles/caddy_add/meta/main.yaml diff --git a/ansible/roles/caddy_add/tasks/main.yaml b/ansible/roles/caddy_add/tasks/main.yaml index 8177f6a..8177f6a 100644..100755 --- a/ansible/roles/caddy_add/tasks/main.yaml +++ b/ansible/roles/caddy_add/tasks/main.yaml diff --git a/ansible/roles/docker/tasks/main.yaml b/ansible/roles/docker/tasks/main.yaml index 7a0d753..7a0d753 100644..100755 --- a/ansible/roles/docker/tasks/main.yaml +++ b/ansible/roles/docker/tasks/main.yaml diff --git a/ansible/roles/med_dl/defaults/main.yaml b/ansible/roles/med_dl/defaults/main.yaml index 4e58323..4e58323 100644..100755 --- a/ansible/roles/med_dl/defaults/main.yaml +++ b/ansible/roles/med_dl/defaults/main.yaml diff --git a/ansible/roles/med_dl/meta/argument_specs.yaml b/ansible/roles/med_dl/meta/argument_specs.yaml index 6718b94..6718b94 100644..100755 --- a/ansible/roles/med_dl/meta/argument_specs.yaml +++ b/ansible/roles/med_dl/meta/argument_specs.yaml diff --git a/ansible/roles/med_dl/meta/main.yaml b/ansible/roles/med_dl/meta/main.yaml index bd4979e..bd4979e 100644..100755 --- a/ansible/roles/med_dl/meta/main.yaml +++ b/ansible/roles/med_dl/meta/main.yaml diff --git a/ansible/roles/med_dl/tasks/config.yaml b/ansible/roles/med_dl/tasks/config.yaml index 367e7d5..367e7d5 100644..100755 --- a/ansible/roles/med_dl/tasks/config.yaml +++ b/ansible/roles/med_dl/tasks/config.yaml diff --git a/ansible/roles/med_dl/tasks/main.yaml b/ansible/roles/med_dl/tasks/main.yaml index 62d9b46..62d9b46 100644..100755 --- a/ansible/roles/med_dl/tasks/main.yaml +++ b/ansible/roles/med_dl/tasks/main.yaml diff --git a/ansible/roles/med_dl/tasks/setup.yaml b/ansible/roles/med_dl/tasks/setup.yaml index c3053e8..c3053e8 100644..100755 --- a/ansible/roles/med_dl/tasks/setup.yaml +++ b/ansible/roles/med_dl/tasks/setup.yaml diff --git a/ansible/roles/med_dl/templates/docker-compose.yaml.j2 b/ansible/roles/med_dl/templates/docker-compose.yaml.j2 index e33c838..e33c838 100644..100755 --- a/ansible/roles/med_dl/templates/docker-compose.yaml.j2 +++ b/ansible/roles/med_dl/templates/docker-compose.yaml.j2 diff --git a/ansible/roles/monitoring/meta/argument_specs.yaml b/ansible/roles/monitoring/meta/argument_specs.yaml index 54b59c3..54b59c3 100644..100755 --- a/ansible/roles/monitoring/meta/argument_specs.yaml +++ b/ansible/roles/monitoring/meta/argument_specs.yaml diff --git a/ansible/roles/monitoring/meta/main.yaml b/ansible/roles/monitoring/meta/main.yaml index 93c21f6..93c21f6 100644..100755 --- a/ansible/roles/monitoring/meta/main.yaml +++ b/ansible/roles/monitoring/meta/main.yaml diff --git a/ansible/roles/monitoring/tasks/config.yaml b/ansible/roles/monitoring/tasks/config.yaml index 20e64db..20e64db 100644..100755 --- a/ansible/roles/monitoring/tasks/config.yaml +++ b/ansible/roles/monitoring/tasks/config.yaml diff --git a/ansible/roles/monitoring/tasks/main.yaml b/ansible/roles/monitoring/tasks/main.yaml index 62d9b46..62d9b46 100644..100755 --- a/ansible/roles/monitoring/tasks/main.yaml +++ b/ansible/roles/monitoring/tasks/main.yaml diff --git a/ansible/roles/monitoring/tasks/setup.yaml b/ansible/roles/monitoring/tasks/setup.yaml index 63ab962..63ab962 100644..100755 --- a/ansible/roles/monitoring/tasks/setup.yaml +++ b/ansible/roles/monitoring/tasks/setup.yaml diff --git a/ansible/roles/monitoring/templates/prometheus.yml.j2 b/ansible/roles/monitoring/templates/prometheus.yml.j2 index a5f3b46..a5f3b46 100644..100755 --- a/ansible/roles/monitoring/templates/prometheus.yml.j2 +++ b/ansible/roles/monitoring/templates/prometheus.yml.j2 diff --git a/ansible/roles/nextcloud/defaults/main.yaml b/ansible/roles/nextcloud/defaults/main.yaml index 138231f..138231f 100644..100755 --- a/ansible/roles/nextcloud/defaults/main.yaml +++ b/ansible/roles/nextcloud/defaults/main.yaml diff --git a/ansible/roles/nextcloud/meta/argument_specs.yaml b/ansible/roles/nextcloud/meta/argument_specs.yaml index 60a7f85..60a7f85 100644..100755 --- a/ansible/roles/nextcloud/meta/argument_specs.yaml +++ b/ansible/roles/nextcloud/meta/argument_specs.yaml diff --git a/ansible/roles/nextcloud/meta/main.yaml b/ansible/roles/nextcloud/meta/main.yaml index bd4979e..bd4979e 100644..100755 --- a/ansible/roles/nextcloud/meta/main.yaml +++ b/ansible/roles/nextcloud/meta/main.yaml diff --git a/ansible/roles/nextcloud/tasks/config.yaml b/ansible/roles/nextcloud/tasks/config.yaml index 367e7d5..367e7d5 100644..100755 --- a/ansible/roles/nextcloud/tasks/config.yaml +++ b/ansible/roles/nextcloud/tasks/config.yaml diff --git a/ansible/roles/nextcloud/tasks/main.yaml b/ansible/roles/nextcloud/tasks/main.yaml index 62d9b46..62d9b46 100644..100755 --- a/ansible/roles/nextcloud/tasks/main.yaml +++ b/ansible/roles/nextcloud/tasks/main.yaml diff --git a/ansible/roles/nextcloud/tasks/setup.yaml b/ansible/roles/nextcloud/tasks/setup.yaml index ae3bff9..ae3bff9 100644..100755 --- a/ansible/roles/nextcloud/tasks/setup.yaml +++ b/ansible/roles/nextcloud/tasks/setup.yaml diff --git a/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 b/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 index 4f73e82..4f73e82 100644..100755 --- a/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 +++ b/ansible/roles/nextcloud/templates/docker-compose.yaml.j2 diff --git a/ansible/roles/plex/defaults/main.yaml b/ansible/roles/plex/defaults/main.yaml index 94c410b..94c410b 100644..100755 --- a/ansible/roles/plex/defaults/main.yaml +++ b/ansible/roles/plex/defaults/main.yaml diff --git a/ansible/roles/plex/meta/argument_specs.yaml b/ansible/roles/plex/meta/argument_specs.yaml index 7c49c67..7c49c67 100644..100755 --- a/ansible/roles/plex/meta/argument_specs.yaml +++ b/ansible/roles/plex/meta/argument_specs.yaml diff --git a/ansible/roles/plex/meta/main.yaml b/ansible/roles/plex/meta/main.yaml index 93c21f6..93c21f6 100644..100755 --- a/ansible/roles/plex/meta/main.yaml +++ b/ansible/roles/plex/meta/main.yaml diff --git a/ansible/roles/plex/tasks/main.yaml b/ansible/roles/plex/tasks/main.yaml index 506eb4c..506eb4c 100644..100755 --- a/ansible/roles/plex/tasks/main.yaml +++ b/ansible/roles/plex/tasks/main.yaml diff --git a/ansible/roles/plex/tasks/setup.yaml b/ansible/roles/plex/tasks/setup.yaml index de0eb69..de0eb69 100644..100755 --- a/ansible/roles/plex/tasks/setup.yaml +++ b/ansible/roles/plex/tasks/setup.yaml diff --git a/ansible/roles/torrents/defaults/main.yaml b/ansible/roles/torrents/defaults/main.yaml index 45c9780..45c9780 100644..100755 --- a/ansible/roles/torrents/defaults/main.yaml +++ b/ansible/roles/torrents/defaults/main.yaml diff --git a/ansible/roles/torrents/meta/argument_specs.yaml b/ansible/roles/torrents/meta/argument_specs.yaml index 21691c7..21691c7 100644..100755 --- a/ansible/roles/torrents/meta/argument_specs.yaml +++ b/ansible/roles/torrents/meta/argument_specs.yaml diff --git a/ansible/roles/torrents/meta/main.yaml b/ansible/roles/torrents/meta/main.yaml index 93c21f6..93c21f6 100644..100755 --- a/ansible/roles/torrents/meta/main.yaml +++ b/ansible/roles/torrents/meta/main.yaml diff --git a/ansible/roles/torrents/tasks/config.yaml b/ansible/roles/torrents/tasks/config.yaml index d375645..d375645 100644..100755 --- a/ansible/roles/torrents/tasks/config.yaml +++ b/ansible/roles/torrents/tasks/config.yaml diff --git a/ansible/roles/torrents/tasks/main.yaml b/ansible/roles/torrents/tasks/main.yaml index 62d9b46..62d9b46 100644..100755 --- a/ansible/roles/torrents/tasks/main.yaml +++ b/ansible/roles/torrents/tasks/main.yaml diff --git a/ansible/roles/torrents/tasks/setup.yaml b/ansible/roles/torrents/tasks/setup.yaml index 1aaaa83..1aaaa83 100644..100755 --- a/ansible/roles/torrents/tasks/setup.yaml +++ b/ansible/roles/torrents/tasks/setup.yaml diff --git a/ansible/roles/torrents/templates/settings.json.j2 b/ansible/roles/torrents/templates/settings.json.j2 index cf5ea4b..cf5ea4b 100644..100755 --- a/ansible/roles/torrents/templates/settings.json.j2 +++ b/ansible/roles/torrents/templates/settings.json.j2 diff --git a/ansible/roles/vault/meta/argument_specs.yaml b/ansible/roles/vault/meta/argument_specs.yaml index 9e8ccd6..9e8ccd6 100644..100755 --- a/ansible/roles/vault/meta/argument_specs.yaml +++ b/ansible/roles/vault/meta/argument_specs.yaml diff --git a/ansible/roles/vault/meta/main.yaml b/ansible/roles/vault/meta/main.yaml index bd4979e..bd4979e 100644..100755 --- a/ansible/roles/vault/meta/main.yaml +++ b/ansible/roles/vault/meta/main.yaml diff --git a/ansible/roles/vault/tasks/main.yaml b/ansible/roles/vault/tasks/main.yaml index 506eb4c..506eb4c 100644..100755 --- a/ansible/roles/vault/tasks/main.yaml +++ b/ansible/roles/vault/tasks/main.yaml diff --git a/ansible/roles/vault/tasks/setup.yaml b/ansible/roles/vault/tasks/setup.yaml index f05aeee..f05aeee 100644..100755 --- a/ansible/roles/vault/tasks/setup.yaml +++ b/ansible/roles/vault/tasks/setup.yaml diff --git a/ansible/roles/vault/templates/docker-compose.yaml.j2 b/ansible/roles/vault/templates/docker-compose.yaml.j2 index 7c9d74c..7c9d74c 100644..100755 --- a/ansible/roles/vault/templates/docker-compose.yaml.j2 +++ b/ansible/roles/vault/templates/docker-compose.yaml.j2 diff --git a/flake.lock b/flake.lock index 659946c..659946c 100644..100755 --- a/flake.lock +++ b/flake.lock diff --git a/flake.nix b/flake.nix index 6285b65..6285b65 100644..100755 --- a/flake.nix +++ b/flake.nix diff --git a/terraform/.envrc b/terraform/.envrc index 07b3715..07b3715 100644..100755 --- a/terraform/.envrc +++ b/terraform/.envrc diff --git a/terraform/README.md b/terraform/README.md index 11c1762..11c1762 100644..100755 --- a/terraform/README.md +++ b/terraform/README.md diff --git a/terraform/con.env.example b/terraform/con.env.example index a1ddc29..a1ddc29 100644..100755 --- a/terraform/con.env.example +++ b/terraform/con.env.example diff --git a/terraform/main.tf b/terraform/main.tf index 599d61d..76d5b7a 100644..100755 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -9,6 +9,7 @@ resource "proxmox_lxc" "minio" { memory = 2048 start = true onboot = true + startup = "order=2,up=30" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -43,6 +44,7 @@ resource "proxmox_lxc" "sites" { memory = 1024 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -66,36 +68,6 @@ resource "proxmox_lxc" "sites" { } } -resource "proxmox_lxc" "rproxy" { - target_node = "hesh" - hostname = "rproxy" - ostemplate = "local:vztmpl/alpine-3.18-default_20230607_amd64.tar.xz" - password = "${var.rproxy_password}" - unprivileged = true - cores = 1 - cpulimit = 1 - memory = 1024 - start = true - onboot = true - - ssh_public_keys = <<-EOT - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr - EOT - - rootfs { - storage = "local-lvm" - size = "2G" - } - - network { - name = "eth0" - bridge = "vmbr1" - tag = 30 - ip = "dhcp" - mtu = "1420" - } -} - resource "proxmox_lxc" "monitoring" { target_node = "hesh" hostname = "monitoring" @@ -107,6 +79,7 @@ resource "proxmox_lxc" "monitoring" { memory = 1024 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -137,10 +110,11 @@ resource "proxmox_lxc" "nc_kumar" { password = "${var.nc_kumar_password}" unprivileged = false cores = 8 - cpulimit = 8 + cpulimit = 0 memory = 12288 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -172,11 +146,12 @@ resource "proxmox_lxc" "plex" { ostemplate = "local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst" password = "${var.plex_password}" unprivileged = false - cores = 8 - cpulimit = 8 + cores = 4 + cpulimit = 0 memory = 4096 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -196,7 +171,7 @@ resource "proxmox_lxc" "plex" { network { name = "eth0" bridge = "vmbr1" - tag = 30 + tag = 0 ip = "dhcp" mtu = "1420" } @@ -213,6 +188,7 @@ resource "proxmox_lxc" "vault" { memory = 1024 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -243,10 +219,11 @@ resource "proxmox_lxc" "torrents" { password = "${var.torrents_password}" unprivileged = false cores = 2 - cpulimit = 2 - memory = 2048 + cpulimit = 0 + memory = 4096 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -283,6 +260,7 @@ resource "proxmox_lxc" "med_dl" { memory = 2048 start = true onboot = true + startup = "order=3" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9ONfhaHpY0bSk3o81H/eEp+UxQ9RCszJ7p3f+rvcpH kdam0@art-sr @@ -307,3 +285,76 @@ resource "proxmox_lxc" "med_dl" { mtu = "1420" } } + +resource "proxmox_vm_qemu" "torrents_2" { + target_node = "hesh" + name = "torrents-2" + memory = 4096 + start_at_node_boot = true + boot = "order=virtio0;net0" + clone_id = 104 + full_clone = true + scsihw = "virtio-scsi-single" + + startup_shutdown { + order = 3 + } + + cpu { + cores = 2 + } + + disk { + type = "disk" + slot = "virtio0" + size = "100G" + storage = "local-lvm" + } + + network { + id = 0 + model = "virtio" + bridge = "vmbr1" + tag = 30 + mtu = 1420 + } +} + +resource "proxmox_vm_qemu" "rproxy_2" { + target_node = "hesh" + name = "rproxy-2" + memory = 1024 + start_at_node_boot = true + boot = "order=virtio0;net0" + clone_id = 104 + full_clone = true + scsihw = "virtio-scsi-single" + + startup_shutdown { + order = 3 + } + + cpu { + cores = 1 + } + + disk { + type = "disk" + slot = "virtio0" + size = "10G" + storage = "local-lvm" + } + + network { + id = 0 + model = "virtio" + bridge = "vmbr1" + tag = 30 + mtu = 1420 + } +} + +moved { + from = proxmox_lxc.nckumar + to = proxmox_lxc.nc_kumar +} diff --git a/terraform/terraform.tf b/terraform/terraform.tf index 64842b0..a9463ab 100644..100755 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -1,12 +1,13 @@ terraform { required_providers { proxmox = { - source = "telmate/proxmox" - version = ">=1.0.0" + source = "Telmate/proxmox" + version = "3.0.2-rc07" } } } provider "proxmox" { # Configuration options + pm_tls_insecure = true } diff --git a/terraform/variables.tf b/terraform/variables.tf index 00b96c8..00b96c8 100644..100755 --- a/terraform/variables.tf +++ b/terraform/variables.tf |
