From c63fb6df1d7a87508ee0c7e5f96b142171952d57 Mon Sep 17 00:00:00 2001 From: MrMeeb Date: Sat, 7 Feb 2026 15:05:27 +0000 Subject: [PATCH] Add ignition files --- ignition/base-install-docker.bu | 45 +++++++++++++ ignition/base-install-docker.ign | 48 ++++++++++++++ ignition/base-install-supporting-services.bu | 56 ++++++++++++++++ ignition/base-install-supporting-services.ign | 65 +++++++++++++++++++ ignition/base.bu | 41 ++++++++++++ ignition/base.ign | 32 +++++++++ 6 files changed, 287 insertions(+) create mode 100644 ignition/base-install-docker.bu create mode 100644 ignition/base-install-docker.ign create mode 100644 ignition/base-install-supporting-services.bu create mode 100644 ignition/base-install-supporting-services.ign create mode 100644 ignition/base.bu create mode 100644 ignition/base.ign diff --git a/ignition/base-install-docker.bu b/ignition/base-install-docker.bu new file mode 100644 index 0000000..bb81750 --- /dev/null +++ b/ignition/base-install-docker.bu @@ -0,0 +1,45 @@ +variant: fcos +version: 1.6.0 +passwd: + users: + # Add user to docker group + - name: core + groups: + - docker + +storage: + files: + - path: /var/home/core/.bashrc + append: + - inline: "alias dc='docker compose -f /var/docker/docker-compose.yml'" + directories: + - path: /var/docker + user: + name: core + group: + name: docker + +systemd: + units: + # Install Docker CE + - name: rpm-ostree-install-docker-ce.service + enabled: true + contents: | + [Unit] + Description=Install Docker CE + Wants=network-online.target + After=network-online.target + Before=zincati.service + ConditionPathExists=!/var/lib/%N.stamp + + [Service] + Type=oneshot + RemainAfterExit=yes + ExecStart=/usr/bin/curl --output-dir "/etc/yum.repos.d" --remote-name https://download.docker.com/linux/fedora/docker-ce.repo + ExecStart=/usr/bin/rpm-ostree override remove moby-engine containerd runc docker-cli --install docker-ce + ExecStart=/usr/bin/touch /var/lib/%N.stamp + ExecStart=/usr/bin/systemctl enable docker.service + ExecStart=/usr/bin/systemctl --no-block reboot + + [Install] + WantedBy=multi-user.target \ No newline at end of file diff --git a/ignition/base-install-docker.ign b/ignition/base-install-docker.ign new file mode 100644 index 0000000..1b57003 --- /dev/null +++ b/ignition/base-install-docker.ign @@ -0,0 +1,48 @@ +{ + "ignition": { + "version": "3.5.0" + }, + "passwd": { + "users": [ + { + "groups": [ + "docker" + ], + "name": "core" + } + ] + }, + "storage": { + "directories": [ + { + "group": { + "name": "docker" + }, + "path": "/var/docker", + "user": { + "name": "core" + } + } + ], + "files": [ + { + "path": "/var/home/core/.bashrc", + "append": [ + { + "compression": "", + "source": "data:,alias%20dc%3D'docker%20compose%20-f%20%2Fvar%2Fdocker%2Fdocker-compose.yml'" + } + ] + } + ] + }, + "systemd": { + "units": [ + { + "contents": "[Unit]\nDescription=Install Docker CE\nWants=network-online.target\nAfter=network-online.target\nBefore=zincati.service\nConditionPathExists=!/var/lib/%N.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/curl --output-dir \"/etc/yum.repos.d\" --remote-name https://download.docker.com/linux/fedora/docker-ce.repo\nExecStart=/usr/bin/rpm-ostree override remove moby-engine containerd runc docker-cli --install docker-ce\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl enable docker.service\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target", + "enabled": true, + "name": "rpm-ostree-install-docker-ce.service" + } + ] + } +} diff --git a/ignition/base-install-supporting-services.bu b/ignition/base-install-supporting-services.bu new file mode 100644 index 0000000..3d42c1e --- /dev/null +++ b/ignition/base-install-supporting-services.bu @@ -0,0 +1,56 @@ +# Depends on base-install-docker +# Installs Komodo Periphery, Telegraf and Certbot +variant: fcos +version: 1.6.0 + +storage: + directories: + - path: /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services + user: + name: core + group: + name: docker + files: + - path: /var/docker/.supporting-services/telegraf/telegraf.conf + user: + name: core + group: + name: docker + contents: + source: https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/telegraf.conf + - path: /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/docker-compose.yml + user: + name: core + group: + name: docker + contents: + source: https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/raw/branch/main/docker-compose.yml + - path: /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/.env + user: + name: core + group: + name: docker + contents: + source: https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/raw/branch/main/.env + +systemd: + units: + # Install supporting services + - name: rpm-ostree-install-supporting-services.service + enabled: true + contents: | + [Unit] + Description=Install Supporting Services + Wants=network-online.target + After=rpm-ostree-install-docker-ce.service + Before=zincati.service + ConditionPathExists=!/var/lib/%N.stamp + + [Service] + Type=oneshot + RemainAfterExit=yes + ExecStart=/usr/bin/docker compose -p "supporting-services" --env-file /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/.env -f /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/docker-compose.yml up -d + ExecStart=/usr/bin/touch /var/lib/%N.stamp + + [Install] + WantedBy=multi-user.target \ No newline at end of file diff --git a/ignition/base-install-supporting-services.ign b/ignition/base-install-supporting-services.ign new file mode 100644 index 0000000..236cc26 --- /dev/null +++ b/ignition/base-install-supporting-services.ign @@ -0,0 +1,65 @@ +{ + "ignition": { + "version": "3.5.0" + }, + "storage": { + "directories": [ + { + "group": { + "name": "docker" + }, + "path": "/var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services", + "user": { + "name": "core" + } + } + ], + "files": [ + { + "group": { + "name": "docker" + }, + "path": "/var/docker/.supporting-services/telegraf/telegraf.conf", + "user": { + "name": "core" + }, + "contents": { + "source": "https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/telegraf.conf" + } + }, + { + "group": { + "name": "docker" + }, + "path": "/var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/docker-compose.yml", + "user": { + "name": "core" + }, + "contents": { + "source": "https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/raw/branch/main/docker-compose.yml" + } + }, + { + "group": { + "name": "docker" + }, + "path": "/var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/.env", + "user": { + "name": "core" + }, + "contents": { + "source": "https://git.mrmeeb.stream/mrmeeb-labs/supporting-services/raw/branch/main/.env" + } + } + ] + }, + "systemd": { + "units": [ + { + "contents": "[Unit]\nDescription=Install Supporting Services\nWants=network-online.target\nAfter=rpm-ostree-install-docker-ce.service\nBefore=zincati.service\nConditionPathExists=!/var/lib/%N.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/docker compose -p \"supporting-services\" --env-file /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/.env -f /var/docker/.supporting-services/komodo/repos/mrmeeb-labs/supporting-services/docker-compose.yml up -d\nExecStart=/usr/bin/touch /var/lib/%N.stamp\n\n[Install]\nWantedBy=multi-user.target", + "enabled": true, + "name": "rpm-ostree-install-supporting-services.service" + } + ] + } +} diff --git a/ignition/base.bu b/ignition/base.bu new file mode 100644 index 0000000..2f88576 --- /dev/null +++ b/ignition/base.bu @@ -0,0 +1,41 @@ +variant: fcos +version: 1.6.0 +storage: + files: + - path: /etc/zincati/config.d/51-rollout-wariness.toml + contents: + inline: | + [identity] + rollout_wariness = 0.8 + - path: /etc/zincati/config.d/55-updates-strategy.toml + contents: + inline: | + [updates] + strategy = "periodic" + [[updates.periodic.window]] + days = [ "Sat","Sun" ] + start_time = "06:00" + length_minutes = 60 + +systemd: + units: + # Install qemu-guest-agent + - name: rpm-ostree-install-qemu-guest-agent.service + enabled: true + contents: | + [Unit] + Description=Install QEMU Guest Agent + Wants=network-online.target + After=network-online.target + Before=zincati.service + ConditionPathExists=!/var/lib/%N.stamp + + [Service] + Type=oneshot + RemainAfterExit=yes + ExecStart=/usr/bin/rpm-ostree install qemu-guest-agent + ExecStart=/usr/bin/touch /var/lib/%N.stamp + ExecStart=/usr/bin/systemctl --no-block reboot + + [Install] + WantedBy=multi-user.target \ No newline at end of file diff --git a/ignition/base.ign b/ignition/base.ign new file mode 100644 index 0000000..98a0977 --- /dev/null +++ b/ignition/base.ign @@ -0,0 +1,32 @@ +{ + "ignition": { + "version": "3.5.0" + }, + "storage": { + "files": [ + { + "path": "/etc/zincati/config.d/51-rollout-wariness.toml", + "contents": { + "compression": "", + "source": "data:,%5Bidentity%5D%0Arollout_wariness%20%3D%200.8%0A" + } + }, + { + "path": "/etc/zincati/config.d/55-updates-strategy.toml", + "contents": { + "compression": "", + "source": "data:;base64,W3VwZGF0ZXNdCnN0cmF0ZWd5ID0gInBlcmlvZGljIgpbW3VwZGF0ZXMucGVyaW9kaWMud2luZG93XV0KZGF5cyA9IFsgIlNhdCIsIlN1biIgXQpzdGFydF90aW1lID0gIjA2OjAwIgpsZW5ndGhfbWludXRlcyA9IDYwCg==" + } + } + ] + }, + "systemd": { + "units": [ + { + "contents": "[Unit]\nDescription=Install QEMU Guest Agent\nWants=network-online.target\nAfter=network-online.target\nBefore=zincati.service\nConditionPathExists=!/var/lib/%N.stamp\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/bin/rpm-ostree install qemu-guest-agent\nExecStart=/usr/bin/touch /var/lib/%N.stamp\nExecStart=/usr/bin/systemctl --no-block reboot\n\n[Install]\nWantedBy=multi-user.target", + "enabled": true, + "name": "rpm-ostree-install-qemu-guest-agent.service" + } + ] + } +}