feat(repo): IaaS baseline

This commit is contained in:
il
2026-06-17 13:17:24 +09:00
parent a6bba986a5
commit 927b5b4934
250 changed files with 1074 additions and 28750 deletions
+27 -32
View File
@@ -1,15 +1,14 @@
---
# Global vars
ansible_ssh_private_key_file: "/etc/secrets/{{ hostvars['console']['node']['uid'] }}/id_console"
timezone: "Asia/Seoul"
ansible_ssh_private_key_file: "/etc/secrets/{{ hostvars['console']['node']['uid'] }}/id_console"
# CA
root_cert_filename: "ilnmors_root_ca.crt"
intermediate_cert_filename: "ilnmors_intermediate_ca.crt"
intermediate_key_filename: "ilnmors_intermediate_ca.key"
# local SAN and SSH SAN should be updated manually on host_vars
# Domains
domain:
public: "ilnmors.com"
internal: "ilnmors.internal"
@@ -67,7 +66,7 @@ services:
grafana:
domain: "grafana"
ports:
http: "3000" # Infra server: Internal ports
http: "3000"
subuid: "100471"
caddy:
ports:
@@ -98,7 +97,7 @@ services:
public: "gitea"
internal: "gitea.app"
ports:
http: "3000" # App server: Public ports
http: "3001"
subuid: "100999"
immich:
domain:
@@ -118,16 +117,6 @@ services:
http: "8001"
redis: "6380"
subuid: "100999"
manticore:
subuid: "100998"
affine:
domain:
public: "affine"
internal: "affine.app"
ports:
http: "3010"
redis: "6381"
manticore: "9308"
nextcloud:
domain:
public: "nextcloud"
@@ -148,7 +137,7 @@ services:
public: "sure"
internal: "sure.app"
ports:
http: "3001"
http: "3002"
redis: "6383"
subuid: "100999"
outline:
@@ -156,7 +145,7 @@ services:
public: "outline"
internal: "outline.app"
ports:
http: "3002"
http: "3004"
redis: "6384"
subuid: "101000"
memos:
@@ -164,43 +153,49 @@ services:
public: "memos"
internal: "memos.app"
ports:
http: "3004"
http: "3005"
subuid: "110000"
mealie:
domain:
public: "mealie"
internal: "mealie.app"
ports:
http: "9001"
subuid: "100910"
version:
packages:
sops: "3.12.1"
sops: "3.13.1"
step: "0.30.2"
kopia: "0.22.3"
kopia: "0.23.0"
blocky: "0.29.0"
alloy: "1.16.1"
containers:
# common
caddy: "2.11.2"
caddy: "2.11.4"
# infra
step: "0.30.2"
ldap: "v0.6.3"
x509-exporter: "4.1.0"
prometheus: "v3.11.3"
prometheus: "v3.12.0"
loki: "3.7.1"
grafana: "13.0.1"
## Postgresql
postgresql: "18.3"
postgresql: "18.4"
# For immich - https://github.com/immich-app/base-images/blob/main/postgres/versions.yaml
# pgvector: "v0.8.1"
vectorchord: "1.1.1"
# Auth
authelia: "4.39.19"
authelia: "4.39.20"
# App
vaultwarden: "1.36.0"
gitea: "1.26.1"
redis: "8.6.3"
redis: "8.8.0"
immich: "v2.7.5"
paperless: "2.20.15"
manticore: "25.0.0"
affine: "0.26.3"
nextcloud: "33.0.3"
collabora: "25.04.9.4.1"
sure: "0.7.0-hotfix.2"
outline: "1.7.1"
memos: "0.28.0"
nextcloud: "33.0.5"
collabora: "25.04.10.3.1"
sure: "0.7.1"
outline: "1.8.1"
memos: "0.29.1"
mealie: "v3.19.2"
+28 -2
View File
@@ -1,7 +1,33 @@
---
node:
name: "vmm"
group: "svadmins"
uid: 2000
home_path: "/home/vmm"
ssh_san: "vmm,vmm_init,vmm.ilnmors.internal,init.vmm.ilnmors.internal"
local_san: "localhost vmm.ilnmors.internal"
libvirt_path: "/var/lib/libvirt"
ssh_san: "{{ node['name'] }},{{ node['name'] }}_init,{{ node['name'] }}.{{ domain['internal'] }},init.{{ node['name'] }}.{{ domain['internal'] }}"
local_san: "localhost {{ node['name'] }}.{{ domain['internal'] }}"
hardware:
mac:
nic0: "c8:ff:bf:07:02:34"
nic1: "c8:ff:bf:07:02:33"
sfpp0: "c8:ff:bf:07:02:31"
sfpp1: "c8:ff:bf:07:02:32"
igpu:
id: "8086:4628"
address: "0000:00:02.0"
domain: "0x0000"
bus: "0x00"
slot: "0x02"
function: "0x0"
hdd:
data:
hdd0: "WMC6N0E617S8"
hdd1: "P6HVTL0W"
hdd2: "P2GH354H"
hdd3: "P6GJKSMP"
btrfs:
label: "DATA"
level: "raid10"
mount_point: "{{ node['libvirt_path'] }}/data"
+15 -16
View File
@@ -2,17 +2,29 @@
# Node Factors
node:
name: "app"
group: "svadmins"
uid: 2004
home_path: "/home/app"
ssh_san: "app,app.ilnmors.internal"
local_san: "localhost app.ilnmors.internal"
ssh_san: "{{ node['name'] }},{{ node['name'] }}.{{ domain['internal'] }}"
local_san: "localhost {{ node['name'] }}.{{ domain['internal'] }}"
# VM Factors
vm:
name: "app"
cpu: 4
cpu: 6
cpu_pin: |
<vcpupin vcpu='0' cpuset='0'/>
<vcpupin vcpu='1' cpuset='1'/>
<vcpupin vcpu='2' cpuset='2'/>
<vcpupin vcpu='3' cpuset='3'/>
<vcpupin vcpu='4' cpuset='10'/>
<vcpupin vcpu='5' cpuset='11'/>
<emulatorpin cpuset='10-11'/>
shares: 1024
memory: 16
storage: 256
data_storage:
name: "vdb"
size: 3.5
lan_mac: "0a:49:6e:4d:03:00"
lan_net: "lan-net"
lan_group: "vlan10-access"
@@ -26,16 +38,3 @@ vm:
bus: "0x00"
slot: "0x02"
function: "0x0"
sata_controller: # Additional SATA Controller
address: "0000:04:00.0"
domain: "0x0000"
bus: "0x04"
slot: "0x00"
function: "0x0"
# BTRFS configuration for hdd which is passthroughed
storage:
btrfs:
label: "APP_DATA"
level: "raid10"
mount_point: "/home/app/data"
+8 -3
View File
@@ -2,15 +2,20 @@
# Node Factors
node:
name: "auth"
group: "svadmins"
uid: 2003
home_path: "/home/auth"
ssh_san: "auth,auth.ilnmors.internal"
local_san: "localhost auth.ilnmors.internal"
ssh_san: "{{ node['name'] }},{{ node['name'] }}.{{ domain['internal'] }}"
local_san: "localhost {{ node['name'] }}.{{ domain['internal'] }}"
# VM Factors
vm:
name: "auth"
cpu: 2
shares: 512
cpu_pin: |
<vcpupin vcpu='0' cpuset='8'/>
<vcpupin vcpu='1' cpuset='9'/>
<emulatorpin cpuset='8-9'/>
shares: 1024
memory: 2
storage: 64
lan_mac: "0a:49:6e:4d:02:00"
+8 -8
View File
@@ -10,17 +10,17 @@ age_key: !vault |
33653638373537323363316363646534323362353836373665636265663939353862663532313230
30643038313138626464626161373835646665326334393834616234643931656536343130316238
61656264643830616639
# Node Factors
node:
name: "console"
group: "svadmins"
uid: 2999
home_path: "/home/console"
workspace_path: "{{ node.home_path }}/workspace"
homelab_path: "{{ node.home_path }}/workspace/homelab"
data_path: "{{ node.homelab_path }}/data"
config_path: "{{ node.homelab_path }}/config"
ssh_san: "console,console.ilnmors.internal"
workspace_path: "{{ node['home_path'] }}/workspace"
homelab_path: "{{ node['home_path'] }}/workspace/homelab"
data_path: "{{ node['homelab_path'] }}/data"
config_path: "{{ node['homelab_path'] }}/config"
ssh_san: "{{ node['name'] }},{{ node['name'] }}.{{ domain['internal'] }}"
ssh_users: "vmm,fw,infra,auth,app"
# add the hostname of wsl, it is needed to improve the sudo problem
local_san: "localhost console.ilnmors.internal surface"
# ansible_python_interpreter: "{{ ansible_playbook_python }}"
local_san: "localhost {{ node['name'] }} {{ node['name'] }}.{{ domain['internal'] }}"
+11 -4
View File
@@ -2,15 +2,22 @@
# Node Factors
node:
name: "fw"
group: "svadmins"
uid: 2001
home_path: "/home/fw"
ssh_san: "fw,fw.ilnmors.internal"
local_san: "localhost fw.ilnmors.internal"
ssh_san: "{{ node['name'] }},{{ node['name'] }}.{{ domain['internal'] }}"
local_san: "localhost {{ node['name'] }}.{{ domain['internal'] }}"
# VM Factors
vm:
name: "fw"
cpu: 2
cpu: 4
cpu_pin: |
<vcpupin vcpu='0' cpuset='0'/>
<vcpupin vcpu='1' cpuset='1'/>
<vcpupin vcpu='2' cpuset='4'/>
<vcpupin vcpu='3' cpuset='5'/>
<emulatorpin cpuset='4-5'/>
shares: 2048
memory: 4
storage: 64
@@ -21,7 +28,7 @@ vm:
lan_group: "vlan-trunk"
# Network Factors
# LLA is like MAC address for L3 (Network layer). Usually, subnet is used to seperate network.
# LLA is like MAC address for L3 (Network layer). Usually, subnet is used to separate network.
network4:
subnet:
client: "192.168.1.0/24"
+11 -4
View File
@@ -2,16 +2,23 @@
# Node Factors
node:
name: "infra"
group: "svadmins"
uid: 2002
home_path: "/home/infra"
ssh_san: "infra,infra.ilnmors.internal"
local_san: "localhost infra.ilnmors.internal"
ssh_san: "{{ node['name'] }},{{ node['name'] }}.{{ domain['internal'] }}"
local_san: "localhost {{ node['name'] }}.{{ domain['internal'] }}"
# VM Factors
vm:
name: "infra"
cpu: 2
shares: 1024
cpu: 4
cpu_pin: |
<vcpupin vcpu='0' cpuset='2'/>
<vcpupin vcpu='1' cpuset='3'/>
<vcpupin vcpu='2' cpuset='6'/>
<vcpupin vcpu='3' cpuset='7'/>
<emulatorpin cpuset='6-7'/>
shares: 2048
memory: 6
storage: 256
lan_mac: "0a:49:6e:4d:01:00"
+1 -1
View File
@@ -11,4 +11,4 @@ vmm ansible_host=vmm.ilnmors.internal ansible_user=vmm
fw ansible_host=fw.ilnmors.internal ansible_user=fw
infra ansible_host=infra.ilnmors.internal ansible_user=infra
auth ansible_host=auth.ilnmors.internal ansible_user=auth
app ansible_host=app.ilnmors.internal ansible_user=app
app ansible_host=app.ilnmors.internal ansible_user=app