mirror of
https://github.com/fscotto/infra.git
synced 2026-09-27 19:03:47 +00:00
148 lines
5.2 KiB
YAML
148 lines
5.2 KiB
YAML
---
|
|
# Atlas declares its intended steady state; set a feature flag false only for a deliberate suspension.
|
|
hostname: atlas
|
|
ansible_host: 192.168.178.55
|
|
ansible_user: "{{ atlas_connection_username }}"
|
|
ansible_port: 22
|
|
ansible_ssh_private_key_file: /home/fscotto/.ssh/id_ed25519
|
|
|
|
atlas_admin_username: admin
|
|
atlas_connection_username: "{{ atlas_admin_username }}"
|
|
atlas_admin_group: "{{ atlas_admin_username }}"
|
|
atlas_admin_home: "/home/{{ atlas_admin_username }}"
|
|
atlas_admin_uid: 1000
|
|
atlas_admin_gid: 1000
|
|
atlas_admin_ssh_keys:
|
|
- name: ikaros
|
|
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINrIxXjA3ffPwziKGR5gzc4gAoBehQPlnEMcXF4Wl0ZS ikaros"
|
|
- name: nymph
|
|
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEH/7GJfGt0ZVmKeEzceoFkFkeCXFryKK9vAbaip+HCx nymph"
|
|
- name: siren
|
|
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA95wYlzpfN3rjUhpMeP4KHn8I6ZrjQXoDTgwgRIa++b siren"
|
|
atlas_admin_password_hash: "{{ vault_atlas_admin_password_hash | default('!') }}"
|
|
atlas_ssh_allow_tcp_forwarding: local
|
|
|
|
atlas_lan_subnet: 192.168.178.0/24
|
|
atlas_aegis_ip: 192.168.178.54
|
|
atlas_manage_firewall: true
|
|
atlas_firewalld_zone: public
|
|
atlas_zfs_pool: zpool
|
|
# Populate only for the first pool bootstrap with four real persistent disk paths.
|
|
# Confirmed empty 4 TB IronWolf data disks; the NVMe system disk is intentionally excluded.
|
|
atlas_zpool_disks:
|
|
- /dev/disk/by-id/ata-ST4000VN006-3CW104_WW6AC1XM
|
|
- /dev/disk/by-id/ata-ST4000VN006-3CW104_WW6A73T2
|
|
- /dev/disk/by-id/ata-ST4000VN006-3CW104_WW6A6VJK
|
|
- /dev/disk/by-id/ata-ST4000VN006-3CW104_WW6AC1LM
|
|
atlas_create_pool: false
|
|
atlas_zfs_dataset_archive: archive
|
|
atlas_zfs_dataset_services: services
|
|
atlas_zfs_dataset_app_data: services/data
|
|
atlas_zfs_dataset_navidrome: services/data/navidrome
|
|
atlas_zfs_dataset_syncthing: services/data/syncthing
|
|
atlas_zfs_dataset_media: media
|
|
atlas_zfs_dataset_music: media/music
|
|
atlas_zfs_dataset_backup: backup
|
|
atlas_zfs_dataset_host_backups: backup/hosts
|
|
atlas_zfs_dataset_backup_prometheus: backup/hosts/prometheus
|
|
atlas_zfs_backup_reservation: 500G
|
|
atlas_zfs_dataset_photobook: media/photobook
|
|
atlas_mount_root: /zpool
|
|
atlas_manage_storage: true
|
|
atlas_manage_zfs_snapshots: true
|
|
atlas_zfs_snapshot_prefix: atlas-auto
|
|
atlas_zfs_snapshot_policies:
|
|
- name: hourly
|
|
calendar: "*-*-* *:05:00"
|
|
keep: 24
|
|
- name: daily
|
|
calendar: "*-*-* 00:15:00"
|
|
keep: 30
|
|
- name: weekly
|
|
calendar: "Sun *-*-* 01:00:00"
|
|
keep: 8
|
|
- name: monthly
|
|
calendar: "*-*-01 02:00:00"
|
|
keep: 12
|
|
atlas_manage_zfs_scrub: true
|
|
atlas_zfs_scrub_calendar: "Sun *-*-01..07 03:00:00"
|
|
atlas_manage_borg_backup: true
|
|
atlas_borg_repository_host: u660064-sub1.your-storagebox.de
|
|
atlas_borg_repository_user: u660064-sub1
|
|
atlas_borg_repository_port: 23
|
|
atlas_borg_repository_path: ./borg-data
|
|
atlas_borg_remote_path: borg-1.4
|
|
# Verified against Hetzner's published ED25519 fingerprint on 2026-09-17:
|
|
# SHA256:XqONwb1S0zuj5A1CDxpOSuD2hnAArV1A3wKY7Z3sdgM
|
|
atlas_borg_host_key: >-
|
|
[u660064-sub1.your-storagebox.de]:23 ssh-ed25519
|
|
AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs
|
|
atlas_borg_backup_calendar: "*-*-* 04:30:00"
|
|
atlas_borg_check_calendar: "*-*-15 06:00:00"
|
|
atlas_borg_randomized_delay: 30m
|
|
atlas_borg_keep_daily: 30
|
|
atlas_borg_keep_weekly: 8
|
|
atlas_borg_keep_monthly: 12
|
|
atlas_manage_sharing: true
|
|
atlas_manage_media_stack: false
|
|
|
|
# WireGuard is retired on Atlas. These rootless services are a temporary home
|
|
# until Uranus replaces them.
|
|
backend_phase1_enabled: true
|
|
backend_phase1_start_services: true
|
|
backend_phase1_bind_address: "{{ ansible_host }}"
|
|
backend_phase1_firewalld_zone: "{{ atlas_firewalld_zone }}"
|
|
backend_phase1_npm_source_ip: "{{ atlas_aegis_ip }}"
|
|
backend_phase1_syncthing_native_subnet: "{{ atlas_lan_subnet }}"
|
|
|
|
rocky_manage_openzfs_repo: true
|
|
rocky_manage_syncthing_binary: false
|
|
rocky_manage_podman: true
|
|
rocky_podman_packages:
|
|
- podman
|
|
|
|
host_packages:
|
|
- cockpit
|
|
- nfs-utils
|
|
- policycoreutils
|
|
- policycoreutils-python-utils
|
|
- python3-libselinux
|
|
- samba
|
|
- samba-client
|
|
- samba-common-tools
|
|
- borgbackup
|
|
- zfs
|
|
|
|
atlas_nfs_exports:
|
|
- path: "{{ atlas_photobook_mountpoint }}"
|
|
client: "{{ atlas_aegis_ip }}"
|
|
options:
|
|
- rw
|
|
- sync
|
|
- no_subtree_check
|
|
- all_squash
|
|
- "anonuid={{ atlas_immich_uid }}"
|
|
- "anongid={{ atlas_immich_gid }}"
|
|
|
|
atlas_samba_share_name: Archive
|
|
atlas_samba_workgroup: WORKGROUP
|
|
atlas_samba_encryption: required
|
|
# Append any pre-existing laptop Unix account here and keep its Samba password in Vault.
|
|
atlas_samba_accounts:
|
|
- username: "{{ atlas_admin_username }}"
|
|
password: "{{ vault_atlas_samba_password | default('') }}"
|
|
atlas_samba_valid_users: "{{ atlas_samba_accounts | map(attribute='username') | list }}"
|
|
|
|
atlas_immich_db_password: "{{ vault_atlas_immich_db_password | default('') }}"
|
|
|
|
atlas_firewalld_rich_rules:
|
|
- 'rule family="ipv4" source address="{{ atlas_lan_subnet }}" port port="22" protocol="tcp" accept'
|
|
- 'rule family="ipv4" source address="{{ atlas_lan_subnet }}" port port="9090" protocol="tcp" accept'
|
|
- 'rule family="ipv4" source address="{{ atlas_aegis_ip }}" port port="2049" protocol="tcp" accept'
|
|
- 'rule family="ipv4" source address="{{ atlas_lan_subnet }}" port port="445" protocol="tcp" accept'
|
|
|
|
host_enabled_services:
|
|
- sshd
|
|
- cockpit.socket
|
|
- zfs.target
|