rtnp.galaxie_clans.host¶
Note
This role is a prerequisites for any hosts.
It should be run by a playbook with
gather_facts: false, as it does not rely on existing python installation.Facts gathering is made as a task during the role, once the mandatory system package are installed by the role.
Responsibility¶
Installs mandatory packages to avoid troubles managing the system.
Installs a service account with correct sudo privileges and authorized keys.
Configures SSH daemon for security best-practices
Supports¶
Debian 12
Rocky Linux 9
Oracle Linux 9
glxclans_host_workspace: "{{ glxclans_workspace | default(inventory_dir) }}"
Host¶
Short name that will be enforced as hostname (should be RFC-1035 compliant).
glxclans_host_name: "{{ inventory_hostname | replace('_', '-') }}"
Set this to
trueif you want the role to generate:an ssh configuration block into the
{{ glxclans_host_workspace }}/ssh.cfglocal file.an insertion of the
{{ glxclans_host_name }}into the[glxclans]inventory group.
glxclans_host_genconfig: false
Service account¶
glxclans_host_service_user_name: "caretaker"
glxclans_host_service_user_shell: "/bin/bash"
glxclans_host_service_user_home: "/home/{{ glxclans_host_service_user_name }}"
glxclans_host_service_user_uid: "4200"
glxclans_host_service_user_gid: "4200"
glxclans_host_service_user_default_key_dir: "{{ glxclans_host_workspace }}/group_vars/glxclans/secrets"
glxclans_host_service_user_default_private_key_file: >-
{{ glxclans_host_service_user_default_key_dir }}/{{ glxclans_host_name }}.key
glxclans_host_service_user_default_public_key_file: >-
{{ glxclans_host_service_user_default_private_key_file }}.pub
glxclans_host_service_user_authorized_keys:
- "{{ lookup('file', __glxclans_host_service_user_default_public_key_path) }}"
SSH configuration¶
glxclans_host_ssh:
allow_tcp_forwarding: "yes"
authorized_keys_file: "%h/.ssh/authorized_keys"
challenge_response_authentication: "yes"
client_alive_count_max: "2"
client_alive_interval: "300"
compression: "delayed"
gssapi_authentication: "no"
hostbased_authentication: "no"
ignore_rhosts: "yes"
listen_address: "0.0.0.0"
log_level: "INFO"
login_grace_time: "60"
password_authentication: "yes"
permit_empty_passwords: "no"
permit_root_login: "no"
protocol: "2"
pubkey_authentication: "yes"
strict_modes: "yes"
syslog_facility: "AUTH"
tcp_keep_alive: "yes"
use_pam: "no"
glxclans_system_base_hostname: "{{ inventory_hostname | replace('_', '-') }}"
glxclans_system_base_domain: "{{ ansible_hostname | default('clans.galaxie.family') }}"
glxclans_system_base_language: 'fr_FR'
glxclans_system_base_timezone: "Europe/Paris"
glxclans_system_base_ntp_server_upper_stratum:
- "0.pool.ntp.org"
- "1.pool.ntp.org"
- "2.pool.ntp.org"
- "3.pool.ntp.org"
glxclans_system_base_ntp_restrict:
- "127.0.0.1"
- "::1"
glxclans_system_base_pip_packages:
- "ansible-core"
- "bcrypt"
- "bpytop"
- "cryptography"
- "dnspython"
- "passlib"
- "duplicity"
glxclans_system_base_sysctl_vm_swappiness: "10"
glxclans_system_base_sysctl_vm_vfs_cache_pressure: "50"
glxclans_system_base_sysctl_vm_overcommit_memory: "0"
glxclans_system_base_sysctl_vm_overcommit_ratio: "95"
glxclans_system_base_sysctl_net_core_wmem_max: "1048576"
glxclans_system_base_sysctl_net_core_rmem_max: "10485760"
glxclans_system_base_vimrc:
syntax: "on"
background: "dark"
tabstop: "4"
shiftwidth: "4"
expandtab: true
noautoindent: true
mouse: ""
ttymouse: ""
glxclans_system_base_banner_text: "Galaxie Clans"
glxclans_system_base_ssl_certs_dir: "/etc/ssl/private"