diff --git a/configuration/inventories/production/inventory.ini b/configuration/inventories/production/inventory.ini index ddfac77..763d615 100644 --- a/configuration/inventories/production/inventory.ini +++ b/configuration/inventories/production/inventory.ini @@ -54,6 +54,7 @@ semaphoressh ansible_host=localhost ansible_user=root ansible_become=yes ansible redis ansible_host=redis ansible_user=root ansible_become=yes ansible_become_pass=313131 authentik ansible_host=authentik ansible_user=root ansible_become=yes ansible_become_pass=313131 calibreweb ansible_host=calibreweb ansible_user=root ansible_become=yes ansible_become_pass=313131 +qdrant ansible_host=qdrant ansible_user=root ansible_become=yes [vm] kali ansible_host=kali ansible_user=ben ansible_become=yes ansible_become_pass=3131 diff --git a/tools/utilities/fix-alpine-cgroups-systemd.sh b/tools/utilities/fix-alpine-cgroups-systemd.sh new file mode 100644 index 0000000..0c2849f --- /dev/null +++ b/tools/utilities/fix-alpine-cgroups-systemd.sh @@ -0,0 +1,124 @@ +#!/bin/bash +# Alternative script to fix cgroup configuration using systemd approach + +echo "🔧 Fixing cgroup configuration using systemd approach..." + +# Check if running as root +if [ "$(id -u)" -ne 0 ]; then + echo "❌ This script must be run as root" + exit 1 +fi + +# Update package lists +echo "📦 Updating package lists..." +apk update + +# Install necessary packages +echo "📦 Installing necessary packages..." +apk add systemd openrc + +# Create systemd cgroup configuration +echo "🔧 Creating systemd cgroup configuration..." +mkdir -p /etc/systemd +cat > /etc/systemd/system.conf << 'EOF' +[Manager] +DefaultControllers=cpu cpuacct memory devices freezer net_cls blkio cpuset perf_event pids +EOF + +# Create systemd cgroup mount configuration +echo "🔧 Creating systemd cgroup mount configuration..." +mkdir -p /etc/systemd/system +cat > /etc/systemd/system/sys-fs-cgroup.mount << 'EOF' +[Unit] +Description=Control Group Hierarchy +DefaultDependencies=no +Before=sysinit.target +ConditionPathExists=/sys/fs/cgroup + +[Mount] +What=cgroup +Where=/sys/fs/cgroup +Type=cgroup +Options=nosuid,noexec,nodev + +[Install] +WantedBy=sysinit.target +EOF + +# Create systemd service to set up cgroups +echo "🔧 Creating systemd service to set up cgroups..." +cat > /etc/systemd/system/setup-cgroups.service << 'EOF' +[Unit] +Description=Set up cgroups +After=sys-fs-cgroup.mount +DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/bin/sh -c 'for subsystem in cpu cpuacct memory devices freezer net_cls blkio cpuset perf_event pids; do mkdir -p /sys/fs/cgroup/$subsystem; mount -t cgroup cgroup /sys/fs/cgroup/$subsystem; done' +RemainAfterExit=yes + +[Install] +WantedBy=sysinit.target +EOF + +# Enable systemd services +echo "🚀 Enabling systemd services..." +systemctl enable sys-fs-cgroup.mount +systemctl enable setup-cgroups.service + +# Create a script to manually set up cgroups +echo "🔧 Creating manual cgroup setup script..." +cat > /usr/local/bin/setup-cgroups-manual.sh << 'EOF' +#!/bin/bash +# Manual cgroup setup script + +# Mount cgroup filesystem if not already mounted +if ! mountpoint -q /sys/fs/cgroup; then + echo "Mounting cgroup filesystem..." + mount -t cgroup cgroup /sys/fs/cgroup +fi + +# Set up all cgroup subsystems +for subsystem in cpu cpuacct memory devices freezer net_cls blkio cpuset perf_event pids; do + if [ ! -d "/sys/fs/cgroup/$subsystem" ]; then + mkdir -p "/sys/fs/cgroup/$subsystem" + fi + if ! mountpoint -q "/sys/fs/cgroup/$subsystem"; then + echo "Mounting $subsystem subsystem..." + mount -t cgroup cgroup "/sys/fs/cgroup/$subsystem" + fi +done + +# Verify pids subsystem is available +if [ -d /sys/fs/cgroup/pids ]; then + echo "✅ PIDS cgroup subsystem is available" +else + echo "❌ PIDS cgroup subsystem is not available" +fi +EOF + +chmod +x /usr/local/bin/setup-cgroups-manual.sh + +# Create a script to start container with proper cgroup settings +echo "🔧 Creating container startup script..." +cat > /usr/local/bin/start-qdrant-container.sh << 'EOF' +#!/bin/bash +# Script to start Qdrant container with proper cgroup settings + +# Set up cgroups first +/usr/local/bin/setup-cgroups-manual.sh + +# Start the container +echo "Starting Qdrant container..." +podman run -p 6333:6333 \ + -v $(pwd)/data:/qdrant/storage \ + hub.git4ta.fun/qdrant/qdrant +EOF + +chmod +x /usr/local/bin/start-qdrant-container.sh + +echo "✅ Systemd cgroup configuration complete!" +echo "🔄 Please reboot the system to ensure all changes take effect" +echo "After reboot, you can use '/usr/local/bin/start-qdrant-container.sh' to start your container" +echo "Alternatively, you can run '/usr/local/bin/setup-cgroups-manual.sh' before starting the container manually" \ No newline at end of file diff --git a/tools/utilities/fix-alpine-cgroups.sh b/tools/utilities/fix-alpine-cgroups.sh new file mode 100644 index 0000000..cfcf228 --- /dev/null +++ b/tools/utilities/fix-alpine-cgroups.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# Script to fix cgroup configuration for container runtime in Alpine Linux + +echo "🔧 Fixing cgroup configuration for container runtime..." + +# Check if running as root +if [ "$(id -u)" -ne 0 ]; then + echo "❌ This script must be run as root" + exit 1 +fi + +# Update package lists +echo "📦 Updating package lists..." +apk update + +# Install necessary packages for cgroup management +echo "📦 Installing cgroup-related packages..." +apk add cgroup-tools cgroupfs-mount + +# Create cgroup mount points +echo "🔧 Creating cgroup mount points..." +mkdir -p /sys/fs/cgroup/{cpu,cpuacct,memory,devices,freezer,net_cls,blkio,cpuset,perf_event,pids} + +# Mount cgroup filesystems +echo "🔧 Mounting cgroup filesystems..." +mount -t cgroup cgroup /sys/fs/cgroup +mount -t cgroup cgroup /sys/fs/cgroup/cpu +mount -t cgroup cgroup /sys/fs/cgroup/cpuacct +mount -t cgroup cgroup /sys/fs/cgroup/memory +mount -t cgroup cgroup /sys/fs/cgroup/devices +mount -t cgroup cgroup /sys/fs/cgroup/freezer +mount -t cgroup cgroup /sys/fs/cgroup/net_cls +mount -t cgroup cgroup /sys/fs/cgroup/blkio +mount -t cgroup cgroup /sys/fs/cgroup/cpuset +mount -t cgroup cgroup /sys/fs/cgroup/perf_event +mount -t cgroup cgroup /sys/fs/cgroup/pids + +# Add cgroup mounts to /etc/fstab for persistence +echo "💾 Adding cgroup mounts to /etc/fstab..." +cat >> /etc/fstab << EOF +# Cgroup mounts for container runtime +cgroup /sys/fs/cgroup cgroup defaults 0 0 +cgroup /sys/fs/cgroup/cpu cgroup defaults 0 0 +cgroup /sys/fs/cgroup/cpuacct cgroup defaults 0 0 +cgroup /sys/fs/cgroup/memory cgroup defaults 0 0 +cgroup /sys/fs/cgroup/devices cgroup defaults 0 0 +cgroup /sys/fs/cgroup/freezer cgroup defaults 0 0 +cgroup /sys/fs/cgroup/net_cls cgroup defaults 0 0 +cgroup /sys/fs/cgroup/blkio cgroup defaults 0 0 +cgroup /sys/fs/cgroup/cpuset cgroup defaults 0 0 +cgroup /sys/fs/cgroup/perf_event cgroup defaults 0 0 +cgroup /sys/fs/cgroup/pids cgroup defaults 0 0 +EOF + +# Enable and start cgroup service if available +if [ -f /etc/init.d/cgroups ]; then + echo "🚀 Enabling and starting cgroups service..." + rc-update add cgroups boot + rc-service cgroups start +fi + +# Create a script to set up cgroups on boot +echo "🔧 Creating cgroup setup script..." +cat > /usr/local/bin/setup-cgroups.sh << 'EOF' +#!/bin/bash +# Script to set up cgroups on boot + +# Mount cgroup filesystems if not already mounted +if ! mountpoint -q /sys/fs/cgroup; then + mount -t cgroup cgroup /sys/fs/cgroup +fi + +# Ensure all cgroup subsystems are mounted +for subsystem in cpu cpuacct memory devices freezer net_cls blkio cpuset perf_event pids; do + if [ ! -d "/sys/fs/cgroup/$subsystem" ]; then + mkdir -p "/sys/fs/cgroup/$subsystem" + fi + if ! mountpoint -q "/sys/fs/cgroup/$subsystem"; then + mount -t cgroup cgroup "/sys/fs/cgroup/$subsystem" + fi +done +EOF + +chmod +x /usr/local/bin/setup-cgroups.sh + +# Add the script to local.d to run on boot +echo "🚀 Adding cgroup setup script to boot sequence..." +mkdir -p /etc/local.d +echo "/usr/local/bin/setup-cgroups.sh" > /etc/local.d/cgroups.start +chmod +x /etc/local.d/cgroups.start + +# Enable local.d service +rc-update add local default + +# Verify cgroup setup +echo "✅ Verifying cgroup setup..." +if mountpoint -q /sys/fs/cgroup; then + echo "✅ Cgroup filesystem is mounted" +else + echo "❌ Cgroup filesystem is not mounted" +fi + +# Check if pids subsystem is available +if [ -d /sys/fs/cgroup/pids ]; then + echo "✅ PIDS cgroup subsystem is available" +else + echo "❌ PIDS cgroup subsystem is not available" +fi + +echo "🎉 Cgroup configuration complete!" +echo "🔄 Please reboot the system to ensure all changes take effect" +echo "After reboot, you should be able to run your container successfully." \ No newline at end of file