83 lines
3.1 KiB
Bash
Executable file
83 lines
3.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# Debian Atomic Infrastructure Installation Script
|
|
# This script installs the missing OSTree infrastructure files to a Debian system
|
|
|
|
set -e
|
|
|
|
echo "🚀 Installing Debian Atomic Infrastructure Files"
|
|
echo "================================================"
|
|
|
|
# Check if running as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "❌ Please run as root (use sudo)"
|
|
exit 1
|
|
fi
|
|
|
|
# Create directories
|
|
echo "📁 Creating directories..."
|
|
mkdir -p /usr/lib/systemd/system
|
|
mkdir -p /usr/lib/ostree
|
|
mkdir -p /usr/lib/tmpfiles.d
|
|
mkdir -p /usr/lib/kernel/install.d
|
|
mkdir -p /usr/lib/dracut/modules.d/98ostree
|
|
mkdir -p /usr/lib/dracut.conf.d
|
|
mkdir -p /usr/share/dbus-1/system.d
|
|
|
|
# Install OSTree systemd services
|
|
echo "🔧 Installing OSTree systemd services..."
|
|
cp ostree-systemd/systemd/system/*.service /usr/lib/systemd/system/
|
|
cp ostree-systemd/ostree/prepare-root.conf /usr/lib/ostree/
|
|
cp ostree-systemd/tmpfiles.d/ostree-tmpfiles.conf /usr/lib/tmpfiles.d/
|
|
|
|
# Install bootc services
|
|
echo "🔧 Installing bootc services..."
|
|
cp bootc/systemd/system/*.service /usr/lib/systemd/system/
|
|
cp bootc-systemd/systemd/system/*.service /usr/lib/systemd/system/
|
|
cp bootc/systemd/system/*.timer /usr/lib/systemd/system/
|
|
cp bootc/systemd/system/*.target /usr/lib/systemd/system/
|
|
|
|
# Install bootc dracut configuration
|
|
echo "🔧 Installing bootc dracut configuration..."
|
|
cp bootc-dracut/usr/lib/dracut.conf.d/*.conf /usr/lib/dracut.conf.d/
|
|
|
|
# Install APT-OSTree services
|
|
echo "🔧 Installing APT-OSTree services..."
|
|
cp apt-ostree-systemd/systemd/system/*.service /usr/lib/systemd/system/
|
|
cp apt-ostree-systemd/systemd/system/*.timer /usr/lib/systemd/system/
|
|
cp apt-ostree-systemd/kernel/install.d/*.install /usr/lib/kernel/install.d/
|
|
cp apt-ostree-systemd/kernel/install.conf /usr/lib/kernel/
|
|
cp apt-ostree-systemd/tmpfiles.d/*.conf /usr/lib/tmpfiles.d/
|
|
cp apt-ostree-systemd/apt-ostreed.conf /etc/
|
|
cp apt-ostree-systemd/org.debian.aptostree1.conf /usr/share/dbus-1/system.d/
|
|
|
|
# Make kernel install hook executable
|
|
chmod +x /usr/lib/kernel/install.d/05-aptostree.install
|
|
|
|
# Install OSTree dracut module
|
|
echo "🔧 Installing OSTree dracut module..."
|
|
cp ostree-dracut/modules.d/98ostree/module-setup.sh /usr/lib/dracut/modules.d/98ostree/
|
|
chmod +x /usr/lib/dracut/modules.d/98ostree/module-setup.sh
|
|
|
|
# Reload systemd
|
|
echo "🔄 Reloading systemd..."
|
|
systemctl daemon-reload
|
|
|
|
echo "✅ Installation complete!"
|
|
echo ""
|
|
echo "📋 Installed components:"
|
|
echo " - OSTree systemd services (6 services)"
|
|
echo " - Bootc systemd services (8 services + timers + targets)"
|
|
echo " - APT-OSTree systemd services (4 services + timer)"
|
|
echo " - Kernel installation hooks (1 hook + config)"
|
|
echo " - OSTree dracut module (1 module)"
|
|
echo ""
|
|
echo "🎯 Next steps:"
|
|
echo " 1. Test with apt-ostree compose tree"
|
|
echo " 2. Test with apt-ostree compose container-encapsulate"
|
|
echo " 3. Test with bootc-image-builder"
|
|
echo " 4. Boot test the resulting image"
|
|
echo ""
|
|
echo "🔍 To verify installation:"
|
|
echo " systemctl list-units --type=service | grep -E '(ostree|bootc|apt-ostree)'"
|
|
echo " ls -la /usr/lib/kernel/install.d/05-aptostree.install"
|
|
echo " ls -la /usr/lib/dracut/modules.d/98ostree/module-setup.sh"
|