working on tests
This commit is contained in:
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== Installing LXD on Debian Bookworm ==="
|
||||
|
||||
# Check if snapd is installed
|
||||
if ! command -v snap &> /dev/null; then
|
||||
echo "Installing snapd..."
|
||||
sudo apt update
|
||||
sudo apt install -y snapd
|
||||
echo "Enabling snapd service..."
|
||||
sudo systemctl enable --now snapd.socket
|
||||
# Wait for snapd to be ready
|
||||
sleep 5
|
||||
else
|
||||
echo "snapd already installed"
|
||||
fi
|
||||
|
||||
# Check if LXD is already installed
|
||||
if snap list lxd &> /dev/null; then
|
||||
echo "LXD already installed via snap"
|
||||
else
|
||||
echo "Installing LXD via snap..."
|
||||
sudo snap install lxd
|
||||
fi
|
||||
|
||||
# Check if LXD is initialized
|
||||
if sudo lxd init --dump &> /dev/null; then
|
||||
echo "LXD already initialized"
|
||||
else
|
||||
echo "Initializing LXD with default settings..."
|
||||
sudo lxd init --auto
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Configuring LXD network for Docker compatibility..."
|
||||
lxc network set lxdbr0 ipv4.firewall false 2>/dev/null || true
|
||||
lxc network set lxdbr0 ipv6.firewall false 2>/dev/null || true
|
||||
lxc network set lxdbr0 ipv4.nat true 2>/dev/null || true
|
||||
|
||||
LXD_SUBNET=$(lxc network get lxdbr0 ipv4.address)
|
||||
if ! sudo iptables -t nat -C POSTROUTING -s "$LXD_SUBNET" ! -d "$LXD_SUBNET" -j MASQUERADE 2>/dev/null; then
|
||||
sudo iptables -t nat -I POSTROUTING -s "$LXD_SUBNET" ! -d "$LXD_SUBNET" -j MASQUERADE
|
||||
fi
|
||||
|
||||
if command -v docker &>/dev/null; then
|
||||
if ! sudo iptables -C DOCKER-USER -i lxdbr0 -j ACCEPT 2>/dev/null; then
|
||||
sudo iptables -I DOCKER-USER -i lxdbr0 -j ACCEPT
|
||||
fi
|
||||
if ! sudo iptables -C DOCKER-USER -o lxdbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 2>/dev/null; then
|
||||
sudo iptables -I DOCKER-USER -o lxdbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "✓ LXD installation complete!"
|
||||
echo " Default network bridge (lxdbr0) configured for internet access"
|
||||
|
||||
# Add user to lxd group for passwordless access
|
||||
if groups "$USER" | grep -q "\blxd\b"; then
|
||||
echo " User '$USER' already in lxd group"
|
||||
else
|
||||
echo "Adding user '$USER' to lxd group..."
|
||||
sudo usermod -a -G lxd "$USER"
|
||||
echo "✓ User added to lxd group"
|
||||
echo ""
|
||||
echo "IMPORTANT: You need to log out and back in for group changes to take effect"
|
||||
echo "Or run: newgrp lxd"
|
||||
fi
|
||||
Reference in New Issue
Block a user