---
### wird in vielen Rollen verwendet
ansible_facts_parallel: true
ssh_public_key_mg: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKL8opSQ0rWVw9uCfbuiqmXq188OP4xh66MBTO3zV5jo heimserver_mg_v3
my_mail: michael.grote@posteo.de
file_header: |
  #----------------------------------------------------------------#
  #              This file is managed with ansible!                #
  #----------------------------------------------------------------#

### mgrote_user_setup
dotfiles:
  - user: mg
    home: /home/mg
  - user: root
    home: /root
dotfiles_repo_url: https://git.mgrote.net/mg/dotfiles
dotfiles_vim_vundle_repo_url: https://git.mgrote.net/mirrors/Vundle.vim.git

### mgrote_netplan
netplan_configure: true

### mgrote_user
users:
  - username: mg
    password: "{{ lookup('keepass', 'mg_linux_password_hash', 'password') }}"
    update_password: always
    groups: ssh, sudo
    state: present
    public_ssh_key: "{{ ssh_public_key_mg }}"
    allow_sudo: true
    allow_passwordless_sudo: true
  - username: ansible-user
    password: "{{ lookup('keepass', 'ansible_user_linux_password_hash', 'password') }}"
    update_password: always
    groups: ssh, sudo
    state: present
    public_ssh_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJcBwOjanQV6sFWaTetqpl20SVe3aRzGjKbsp7hKkDCE mg@irantu
    allow_sudo: true
    allow_passwordless_sudo: true

### jnv.unattended_upgrades
unattended_mail: "{{ my_mail }}"
unattended_mail_only_on_error: true
unattended_syslog_enable: true
unattended_origins_patterns:
  - 'origin=Ubuntu,archive=${distro_codename}-security'
  - 'o=Ubuntu,a=${distro_codename}-updates'

### mgrote_ntp_chrony_client
ntp_chrony_timezone: "Europe/Berlin" # Zeitzone in der sich der Computer befindet
ntp_chrony_driftfile_directory: "/var/lib/chrony" # Ordner für das driftfile
ntp_chrony_servers: # welche Server sollen befragt werden
  - address: 192.168.2.1
    options: iburst #optionaler parameter
ntp_chrony_user: _chrony # Nutzer + Gruppe für den Dienst
ntp_chrony_group: _chrony # Nutzer + Gruppe für den Dienst
ntp_chrony_logging: false

### mgrote_postfix
postfix_smtp_server: docker10.mgrote.net
postfix_smtp_server_port: 1025

### mgrote_fail2ban
f2b_bantime: 300
f2b_findtime: 300
f2b_maxretry: 5
f2b_destemail: "{{ my_mail }}"
f2b_sender: info@mgrote.net

### oefenweb.ufw
ufw_rules:
  - rule: allow
    to_port: 22
    protocol: tcp
    comment: 'ssh'
    from_ip: 0.0.0.0/0
  - rule: allow
    to_port: 4949
    protocol: tcp
    comment: 'munin'
    from_ip: 192.168.2.0/24
ufw_default_incoming_policy: deny
ufw_default_outgoing_policy: allow

### mgrote_apt_manage_packages
apt_packages_common:
  - locales
  - python3
  - build-essential
  - htop
  - git
  - dnsutils
  - mc
  - cifs-utils
  - haveged #https://www.linux-magazin.de/ausgaben/2011/09/einfuehrung2/
  - ca-certificates
  - netdiscover
  - tree
  - curl
  - whois
  - logrotate
  - ncdu
  - net-tools
  - apt-transport-https
  - neofetch
  - moreutils
  - acl
  - vim
  - rsync
  - at
  - ripgrep
  - iotop
  - pwgen
  - keychain
  - fwupd
  - bc
  - jq
apt_packages_physical:
  - s-tui
  - smartmontools
  - lm-sensors
  - ethtool
apt_packages_vm:
  - qemu-guest-agent
  - open-vm-tools
apt_packages_absent:
  - nano
  - snapd
  - ubuntu-advantage-tools

### mgrote_zfs_sanoid
sanoid_templates:
  - name: '31tage'
    keep_hourly: '24'                        # Aufheben (Stunde)
    keep_daily: '31'                         # Aufheben (Tage)
    keep_monthly: '3'                        # Aufheben (Monate)
    keep_yearly: '0'                         # Aufheben (Jahre)
    frequently: '16'                         # Aufheben (Minuten)
    frequent_period: '15'                    # Intervall (alle 5 Minuten)
    autosnap: 'yes'                          # Automatisches erstellen von Snapshots
    autoprune: 'yes'
  - name: '14tage'
    keep_hourly: '24'
    keep_daily: '14'
    keep_monthly: '0'
    keep_yearly: '0'
    frequently: '16'
    frequent_period: '15'
    autosnap: 'yes'
    autoprune: 'yes'
  - name: '3tage'
    keep_hourly: '24'
    keep_daily: '7'
    keep_monthly: '0'
    keep_yearly: '0'
    frequently: '16'
    frequent_period: '15'
    autosnap: 'yes'
    autoprune: 'yes'
  - name: '3monate'
    keep_hourly: '24'
    keep_daily: '7'
    keep_monthly: '3'
    keep_yearly: '0'
    frequently: '16'
    frequent_period: '15'
    autosnap: 'yes'
    autoprune: 'yes'
  - name: 'pve3tage'
    keep_hourly: '72'
    keep_daily: '5'
    keep_monthly: '0'
    keep_yearly: '0'
    frequently: '16'
    frequent_period: '15'
    autosnap: 'yes'
    autoprune: 'yes'

### mgrote_zfs_sanoid
sanoid_deb_url: http://docker10.mgrote.net:3344/sanoid_3.0.4.deb

### mgrote_munin_node
munin_node_bind_host: "0.0.0.0"
munin_node_bind_port: "4949"
munin_node_allowed_cidrs: [192.168.2.0/24]
munin_node_disabled_plugins:
  - name: meminfo # zu hohe last
  - name: hddtemp2 # ersetzt durch hddtemp_smartctl
  - name: ntp # verursacht zu viele dns ptr request
  - name: hddtempd # ersetzt durch hddtemp_smartctl
  - name: squid_cache # proxmox
  - name: squid_objectsize # proxmox
  - name: squid_requests # proxmox
  - name: squid_traffic # proxmox
  - name: timesync
munin_node_plugins:
  - name: chrony
    src: https://git.mgrote.net/Mirror/munin-contrib/raw/branch/master/plugins/chrony/chrony
  - name: systemd_status
    src: https://git.mgrote.net/mg/mirror-munin-contrib/raw/branch/master/plugins/systemd/systemd_status
  - name: systemd_mem
    src: https://git.mgrote.net/mg/mirror-munin-contrib/raw/branch/master/plugins/systemd/systemd_mem
    config: |
      [systemd_mem]
      env.all_services true
  - name: lvm_
    src: https://git.mgrote.net/mg/mirror-munin-contrib/raw/branch/master/plugins/disk/lvm_
    config: |
      [lvm_*]
      user root
  - name: fail2ban
    src: https://git.mgrote.net/mg/munin-plugins/raw/branch/master/extern/fail2ban
    config: |
      [fail2ban]
      env.client /usr/bin/fail2ban-client
      env.config_dir /etc/fail2ban
      user root

# Ansible Variablen
### User
ansible_user: "ansible-user"
### SSH
ansible_ssh_common_args: "'-o StrictHostKeyChecking=no'"
### python3
# https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html
ansible_python_interpreter: "/usr/bin/python3"

# Ansible Plugin Variablen
### Keepass
# https://github.com/viczem/ansible-keepass
keepass_dbx: "./keepass_db.kdbx"
keepass_psw: !vault |
        $ANSIBLE_VAULT;1.1;AES256
        62383737623066396239383336646164616537646630653964313532383130343533346561633039
        3437306134656535353438666165376332633064383135650a636537626662656130376537633164
        61613132326536666466636632363866393066656236303766333338356337396338376266346631
        6364336331623539300a313562303161373631613734313938346666376239613333333363376236
        38363035376662353135333332363431343833656666643036326234656166643531