Initialise repository structure and placeholder files. Generic functionality works i guess, need to come up with a better solution for compose templates

This commit is contained in:
boris committed 2026-07-08 10:29:51 +01:00
commit 53695f4fff
411 files changed
+7817

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# base
Configures the operating system baseline: hostname, locale, timezone, packages,
Chrony, QEMU guest agent, persistent journald, sysctl, aliases, PKI directories,
and `/srv` layout.
Tags: `base`, `hostname`, `packages`, `locale`, `timezone`, `directories`,
`journald`, `sysctl`, `shell`, `services`, `pki`.
+13
View File
@@ -0,0 +1,13 @@
---
base_hostname: "{{ nbops_hostname }}"
base_fqdn: "{{ nbops_fqdn }}"
base_timezone: "{{ nbops_timezone }}"
base_locale: "{{ nbops_locale }}"
base_packages: "{{ nbops_base_packages }}"
base_standard_directories: "{{ nbops_standard_directories }}"
base_sysctl: "{{ nbops_sysctl }}"
base_aliases:
ll: "ls -alF"
la: "ls -A"
l: "ls -CF"
+1
View File
@@ -0,0 +1 @@
+16
View File
@@ -0,0 +1,16 @@
---
- name: restart chrony
ansible.builtin.service:
name: chrony
state: restarted
- name: restart qemu guest agent
ansible.builtin.service:
name: qemu-guest-agent
state: restarted
- name: restart systemd-journald
ansible.builtin.service:
name: systemd-journald
state: restarted
+104
View File
@@ -0,0 +1,104 @@
---
- name: Set hostname
ansible.builtin.hostname:
name: "{{ base_hostname }}"
tags: [base, hostname]
- name: Configure hosts file
ansible.builtin.template:
src: hosts.j2
dest: /etc/hosts
owner: root
group: root
mode: "0644"
tags: [base, hostname]
- name: Install base packages
ansible.builtin.apt:
name: "{{ base_packages }}"
state: present
update_cache: true
cache_valid_time: 3600
tags: [base, packages]
- name: Configure locale
community.general.locale_gen:
name: "{{ base_locale }}"
state: present
tags: [base, locale]
- name: Set system locale
ansible.builtin.copy:
dest: /etc/default/locale
owner: root
group: root
mode: "0644"
content: |
LANG={{ base_locale }}
LC_ALL={{ base_locale }}
tags: [base, locale]
- name: Configure timezone
community.general.timezone:
name: "{{ base_timezone }}"
notify: restart chrony
tags: [base, timezone]
- name: Ensure standard directories exist
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: "{{ '0700' if item.endswith('/private') else '0755' }}"
loop: "{{ base_standard_directories }}"
tags: [base, directories]
- name: Configure persistent journald storage
ansible.builtin.copy:
dest: /etc/systemd/journald.conf.d/10-nbops.conf
owner: root
group: root
mode: "0644"
content: |
[Journal]
Storage=persistent
Compress=yes
SystemMaxUse=1G
notify: restart systemd-journald
tags: [base, journald]
- name: Configure sysctl
ansible.posix.sysctl:
name: "{{ item.key }}"
value: "{{ item.value }}"
state: present
reload: true
loop: "{{ base_sysctl | dict2items }}"
tags: [base, sysctl]
- name: Configure shell aliases
ansible.builtin.template:
src: nbops-aliases.sh.j2
dest: /etc/profile.d/nbops-aliases.sh
owner: root
group: root
mode: "0644"
tags: [base, shell]
- name: Enable base services
ansible.builtin.service:
name: "{{ item }}"
enabled: true
state: started
loop:
- chrony
- qemu-guest-agent
tags: [base, services]
- name: Refresh CA certificate trust
ansible.builtin.command:
cmd: update-ca-certificates
changed_when: false
tags: [base, pki]
+7
View File
@@ -0,0 +1,7 @@
127.0.0.1 localhost
127.0.1.1 {{ base_fqdn }} {{ base_hostname }}
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
+4
View File
@@ -0,0 +1,4 @@
{% for name, command in base_aliases.items() %}
alias {{ name }}='{{ command }}'
{% endfor %}