Skip to main content

Almalinux LXC setup

Here is a simple review of what should be done in a newly created LXC using the image from Proxmox VE.
If you're installing a VM using the official .iso image, some packages might already be installed by default (eg. openssh-server and wget).

Step by step procedure

  1. Install important packages

    • update and upgrade

      sudo dnf update -y && dnf upgrade -y
      
    • install basic packages (git and net-tools might not be useful, depending on your usage)

      sudo dnf install -y vim git tar wget bind-utils net-tools openssh-server
      
    • Optional: Docker installation

      • Add Docker repository
        sudo dnf install -y dnf-plugins-core
        sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
        
      • Install Docker
        sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
        
      • Enable Docker
        sudo systemctl enable --now docker
        
      • Test Docker installation
        docker run hello-world
        
  2. Create a user with sudo privileges (replace thorgan by the username of your choice)

    sudo adduser thorgan
    sudo usermod -aG wheel thorgan
    sudo passwd thorgan
    

    If you installed Docker in step 1, you can give permission to your newly created user to use it:

    sudo usermod -aG docker thorgan
    

    Replace thorgan by the username you created before.

  3. Open the port 22 in the firewall

    sudo firewall-cmd --add-service=ssh --permanent
    sudo firewall-cmd --reload
    
  4. Start and enable sshd to accept SSH connections

    sudo service sshd start && systemctl enable sshd
    

Script procedure

#!/bin/bash

sudo dnf update -y && dnf upgrade -y
sudo dnf install -y vim git tar wget bind-utils net-tools openssh-server

read -p "Enter username: " user
sudo adduser "$user"
sudo usermod -aG wheel "$user"
sudo passwd "$user"

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

sudo service sshd start && systemctl enable sshd

Script with docker installation

#!/bin/bash

# Update & Upgrade
sudo dnf update -y && dnf upgrade -y
# Install necessary packages
sudo dnf install -y dnf-plugins-core vim git tar wget bind-utils net-tools openssh-server

# Adding docker repository
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
# Install docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Enable docker
sudo systemctl enable --now docker
# Test docker installation
docker run hello-world

# Create sudoer user
read -p "Enter username: " user
sudo adduser "$user"
sudo usermod -aG wheel "$user"
sudo usermod -aG docker "$user"
sudo passwd "$user"

# Open port 22 on the firewall
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

# Enable & Start SSH
sudo service sshd start && systemctl enable sshd