summaryrefslogtreecommitdiff
path: root/inventory/host_vars/ch-http-proxy.yml
blob: 53c3cfce0eef1c369ea643f71bfc9473bdfaa47f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
install_jumphost: ch-jump

install:
  vm:
    memory: 2G
    numcpus: 2
    autostart: True
  disks:
    primary: /dev/sda
    scsi:
      sda:
        type: zfs
        name: root
        size: 10g
  interfaces:
  - bridge: br-svc
    name: svc0

network:
  nameservers: "{{ network_zones.svc.dns }}"
  domain: "{{ host_domain }}"
  systemd_link:
    interfaces: "{{ install.interfaces }}"
  primary: &_network_primary_
    name: svc0
    address: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets[inventory_hostname]) }}"
    gateway: "{{ network_zones.svc.gateway }}"
    static_routes:
    - destination: "{{ network_zones.lan.prefix }}"
      gateway: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets['ch-gw-lan']) | ansible.utils.ipaddr('address') }}"
  interfaces:
  - *_network_primary_


ntp_variant: systemd-timesyncd


acme_directory_server: "{{ acme_directory_server_le_live_v2 }}"


spreadspace_apt_repo_components:
  - main
  - prometheus


prometheus_exporters_extra:
  - ssl

prometheus_job_multitarget_blackbox__probe:
  ch-mon:
  - instance: "ssh-{{ inventory_hostname }}"
    target: "{{ network_zones.svc.prefix | ansible.utils.ipaddr(network_zones.svc.offsets[inventory_hostname]) | ansible.utils.ipaddr('address') }}:{{ ansible_port | default(22) }}"
    module: ssh_banner
  - instance: "https-login.chaos-at-home.org"
    target: "https://{{ network_services.http.addr }}/login"
    module: "http_tls_2xx"
    hostname: "login.chaos-at-home.org"

prometheus_job_multitarget_ssl__probe:
  ch-http-proxy:
  - instance: "sslcert-apps-publish-{{ inventory_hostname }}"
    target: "/etc/ssl/apps-publish-*/*.pem"
    module: file


whawty_auth_store_instances:
  chaos-at-home:
    config: "{{ whawty_auth_store__chaos_at_home | combine({'basedir': '/var/lib/whawty/auth/chaos-at-home'}) }}"
    permissions:
      file-mode: "0600"
      dir-mode: "0700"
    sync:
      type: client
      hostname: 192.168.32.1
      port: 3022
      user: sync
      prometheus: yes


whawty_nginx_sso_backends:
  chaos-at-home:
    port: 1234
    login_url: https://login.chaos-at-home.org/login

whawty_nginx_sso_logins:
  chaos-at-home:
    hostname: login.chaos-at-home.org
    tls:
      certificate_provider: acmetool
      certificate_config:
        request:
          challenge:
            http-self-test: false
    config:
      cookie:
        domain: ".chaos-at-home.org"
        name: __Secure-chaos-at-home-sso
        secure: yes
        expire: 167h
        keys:
        - name: 2023-11
          ed25519:
            private-key-data: "{{ vault_whawty_nginx_sso_login_keys['chaos-at-home']['2023-11'] }}"
        backend:
          bolt: {}
      auth:
        whawty:
          store: /etc/whawty/auth/store-chaos-at-home.yml
          autoreload: yes
          remote-upgrades:
            url: https://127.0.0.1/api/update
            http-host: passwd.chaos-at-home.org
            tls:
              server-name: passwd.chaos-at-home.org
      web:
        listen: 127.0.0.1:1234
        login:
          title: "chaoSSO login"
        revocations:
          tokens: "{{ vault_whawty_nginx_sso_sync_tokens['chaos-at-home'] | dict2items | map(attribute='value') }}"
      prometheus:
        listen: 127.0.0.1:1235

prometheus_job_multitarget_whawty_nginx_sso:
  ch-http-proxy:
  - instance: "whawty-nginx-sso-{{ inventory_hostname }}-chaos-at-home"
    instance_name: chaos-at-home