fix scripts with sudo

This commit is contained in:
Tomas Mirchev 2025-02-24 15:57:20 +01:00
parent f2467ad75e
commit f814f5aa29
7 changed files with 30 additions and 40 deletions

View File

@ -53,16 +53,16 @@
"git", "git",
{ {
"package": "zsh", "package": "zsh",
"install": "sudo apt install zsh", "install": "sudo apt install -y zsh",
"post-link": "./scripts/linux-setup_zsh.sh" "post-link": "./scripts/linux-setup_zsh.sh"
}, },
{ {
"package": "tmux", "package": "tmux",
"install": "sudo apt install tmux" "install": "sudo apt install -y tmux"
}, },
{ {
"package": "htop", "package": "htop",
"install": "sudo apt install htop" "install": "sudo apt install -y htop"
} }
], ],
"linux-dev": [ "linux-dev": [

View File

@ -2,14 +2,9 @@
set -e set -e
if [ "$EUID" -ne 0 ]; then
echo "Please run this script as root: sudo $0"
exit 1
fi
echo "Removing old Docker versions..." echo "Removing old Docker versions..."
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
apt-get remove -y $pkg || true sudo apt-get remove -y $pkg || true
done done
# Detect OS # Detect OS
@ -23,24 +18,24 @@ else
fi fi
echo "Updating package list and installing dependencies..." echo "Updating package list and installing dependencies..."
apt-get update sudo apt-get update
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
echo "Setting up Docker repository..." echo "Setting up Docker repository..."
# Add Docker's official GPG key # Add Docker's official GPG key
install -m 0755 -d /etc/apt/keyrings sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/${DOCKER_OS}/gpg -o /etc/apt/keyrings/docker.asc sudo curl -fsSL https://download.docker.com/linux/${DOCKER_OS}/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources # Add the repository to Apt sources
echo \ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/${DOCKER_OS} \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/${DOCKER_OS} \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
echo "Installing Docker..." echo "Installing Docker..."
apt-get update sudo apt-get update
apt-get install -y \ sudo apt-get install -y \
docker-ce \ docker-ce \
docker-ce-cli \ docker-ce-cli \
containerd.io \ containerd.io \
@ -49,15 +44,15 @@ apt-get install -y \
# Verify installation # Verify installation
echo "Verifying Docker installation..." echo "Verifying Docker installation..."
docker --version sudo docker --version
containerd --version sudo containerd --version
echo "Configuring Docker permissions..." echo "Configuring Docker permissions..."
groupadd docker 2>/dev/null || true sudo groupadd docker 2>/dev/null || true
usermod -aG docker ${SUDO_USER:-$USER} sudo usermod -aG docker ${SUDO_USER:-$USER}
echo "Enabling and starting Docker services..." echo "Enabling and starting Docker services..."
systemctl enable --now docker.service sudo systemctl enable --now docker.service
systemctl enable --now containerd.service sudo systemctl enable --now containerd.service
echo "Docker setup completed. Please log out and log back in for group changes to take effect." echo "Docker setup completed. Please log out and log back in for group changes to take effect."

0
scripts/linux-setup_sudoers.sh Normal file → Executable file
View File

View File

@ -2,20 +2,15 @@
set -e set -e
if [ "$(id -u)" -ne 0 ]; then
echo "Please run this script as root: sudo $0"
exit 1
fi
# Check if Zsh is already installed # Check if Zsh is already installed
if command -v zsh &> /dev/null; then if command -v zsh &> /dev/null; then
echo "Zsh is already installed. Skipping installation." echo "Zsh is already installed. Skipping installation."
else else
echo "Updating package list..." echo "Updating package list..."
apt-get update sudo apt-get update
echo "Installing Zsh..." echo "Installing Zsh..."
apt-get install -y zsh sudo apt-get install -y zsh
if ! command -v zsh &> /dev/null; then if ! command -v zsh &> /dev/null; then
echo "Error: Zsh installation failed." echo "Error: Zsh installation failed."
@ -25,6 +20,6 @@ fi
echo "Changing default shell to Zsh for user ${SUDO_USER:-$USER}..." echo "Changing default shell to Zsh for user ${SUDO_USER:-$USER}..."
zsh_path=$(command -v zsh) zsh_path=$(command -v zsh)
chsh -s "$zsh_path" "${SUDO_USER:-$USER}" sudo chsh -s "$zsh_path" "${SUDO_USER:-$USER}"
echo "Zsh installation and setup complete. Please log out and log back in for changes to take effect." echo "Zsh installation and setup complete. Please log out and log back in for changes to take effect."

View File

@ -46,12 +46,12 @@ chmod 700 "$SSH_DIR"
# Generate SSH key # Generate SSH key
if [ -f "$KEY_PATH" ]; then if [ -f "$KEY_PATH" ]; then
echo "Error: Key file $KEY_PATH already exists." echo "Skipping: Key file $KEY_PATH already exists."
exit 1 exit 0
fi fi
ssh-keygen -t ed25519 -C "$COMMENT" -f "$KEY_PATH" -N "" ssh-keygen -t ed25519 -C "$COMMENT" -f "$KEY_PATH" -N ""
echo "SSH key created: $KEY_PATH" echo "SSH key created at: $KEY_PATH"
echo "Public key:" echo "Public key:"
cat "$KEY_PATH.pub" cat "$KEY_PATH.pub"

12
setups/linux-vm.sh Normal file → Executable file
View File

@ -19,25 +19,25 @@ if ! sudo -v; then
exit 1 exit 1
fi fi
# /bin/bash ../scripts/linux-setup_sudoers.sh # /bin/bash ./scripts/linux-setup_sudoers.sh
/bin/bash ../scripts/linux-change_hostname.sh "$NEW_HOSTNAME" /bin/bash ./scripts/linux-change_hostname.sh "$NEW_HOSTNAME"
echo "" echo ""
echo "Installing docker..." echo "Installing docker..."
/bin/bash ../scripts/linux-setup_docker.sh /bin/bash ./scripts/linux-setup_docker.sh
echo "" echo ""
echo "Creating internal SSH keys..." echo "Creating internal SSH keys..."
/bin/bash ../scripts/setup_ssh_keys.sh --comment "${USER}@${NEW_HOSTNAME}" /bin/bash ./scripts/setup_ssh_keys.sh --comment "${USER}@${NEW_HOSTNAME}"
echo "" echo ""
echo "Installing packages..." echo "Installing packages..."
python3 ../manage.py install linux-vm python3 ./manage.py install linux-vm
echo "" echo ""
echo "Linking config..." echo "Linking config..."
python3 ../manage.py link linux-vm --force python3 ./manage.py link linux-vm --force
echo "" echo ""
echo "Updating git remote origin url..." echo "Updating git remote origin url..."

0
setups/macos.sh Normal file → Executable file
View File