Added install software on VM guest feature
This commit is contained in:
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
sudo mv /home/user/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml
|
||||
sudo netplan apply
|
||||
@ -1,20 +1,36 @@
|
||||
#!/bin/sh
|
||||
#SOURCE: https://docs.docker.com/engine/install/debian/
|
||||
# https://docs.docker.com/engine/install/linux-postinstall/
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
||||
# Add Docker's official GPG key:
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install ca-certificates curl gnupg
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
# Add the repository to Apt sources:
|
||||
echo \
|
||||
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
||||
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
sudo usermod -aG docker $USER
|
||||
#!/usr/bin/env bash
|
||||
# SOURCE: https://docs.docker.com/engine/install/debian/
|
||||
# https://docs.docker.com/engine/install/linux-postinstall/
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Remove old conflicting packages
|
||||
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
|
||||
apt-get remove -y "$pkg" 2>/dev/null || true
|
||||
done
|
||||
|
||||
# Add Docker's official GPG key
|
||||
apt-get update
|
||||
apt-get -y install ca-certificates curl gnupg
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# Add the repository to Apt sources
|
||||
# shellcheck disable=SC2027,SC2046 # We handle word splitting safely here
|
||||
# shellcheck source=/dev/null
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# Update and install Docker
|
||||
apt-get update
|
||||
apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
# Add user to docker group
|
||||
usermod -aG docker "${USER}"
|
||||
|
||||
# Refresh group membership (optional, user may need to log out)
|
||||
newgrp docker
|
||||
24
vm_example_scripts/docker_fedora.sh
Executable file
24
vm_example_scripts/docker_fedora.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
#SOURCE: https://docs.docker.com/engine/install/fedora/
|
||||
# https://docs.docker.com/engine/install/linux-postinstall/
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
dnf -y remove docker \
|
||||
docker-client \
|
||||
docker-client-latest \
|
||||
docker-common \
|
||||
docker-latest \
|
||||
docker-latest-logrotate \
|
||||
docker-logrotate \
|
||||
docker-selinux \
|
||||
docker-engine-selinux \
|
||||
docker-engine
|
||||
dnf -y install dnf-plugins-core
|
||||
dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
|
||||
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
systemctl enable --now docker
|
||||
usermod -aG docker "$USER"
|
||||
echo "To use docker execute :"
|
||||
echo "newgrp docker"
|
||||
@ -1,18 +1,50 @@
|
||||
#!/bin/bash
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
||||
# Add Docker's official GPG key:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
# Add the repository to Apt sources:
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
#!/usr/bin/env bash
|
||||
# SOURCE: https://docs.docker.com/engine/install/ubuntu/
|
||||
# https://docs.docker.com/engine/install/linux-postinstall/
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Remove old or conflicting packages
|
||||
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
|
||||
apt-get remove -y "$pkg" 2>/dev/null || true
|
||||
done
|
||||
|
||||
# Install prerequisites
|
||||
apt-get update
|
||||
apt-get install -y ca-certificates curl gnupg
|
||||
|
||||
# Create keyrings directory and add Docker GPG key
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
|
||||
gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# Add Docker repository
|
||||
# shellcheck source=/dev/null
|
||||
. /etc/os-release
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
CODENAME="$VERSION_CODENAME"
|
||||
|
||||
echo "deb [arch=$ARCH signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $CODENAME stable" | \
|
||||
tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# Update and install Docker
|
||||
apt-get update
|
||||
apt-get install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
|
||||
# Add user to docker group
|
||||
usermod -aG docker "$USER"
|
||||
|
||||
# Refresh group membership
|
||||
echo "Docker installation completed."
|
||||
echo "To use Docker without sudo, run:"
|
||||
echo " newgrp docker"
|
||||
echo "Or log out and back"
|
||||
@ -1,13 +1,17 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
#SOURCE: https://about.gitlab.com/install/#debian
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
NET_DEVICE='enp1s0'
|
||||
GITLAB_URL=$(ip -o -4 addr list ${NET_DEVICE} | awk '{print $4}' | cut -d/ -f1)
|
||||
#Base dependencies
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y curl openssh-server ca-certificates perl
|
||||
apt-get update
|
||||
apt-get install -y curl openssh-server ca-certificates perl
|
||||
#OPTIONAL: postfix
|
||||
#sudo apt-get install -y postfix
|
||||
#apt-get install -y postfix
|
||||
#Add gitlab repo
|
||||
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
|
||||
sudo EXTERNAL_URL="${GITLAB_URL}" apt-get install gitlab-ee
|
||||
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
|
||||
EXTERNAL_URL="${GITLAB_URL}" apt-get install gitlab-ee
|
||||
20
vm_example_scripts/gitlab_ce_fedora.sh
Executable file
20
vm_example_scripts/gitlab_ce_fedora.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
#Source: https://docs.gitlab.com/install/package/almalinux/?tab=Community+Edition
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
NET_DEVICE='enp1s0'
|
||||
GITLAB_URL=$(ip -o -4 addr list ${NET_DEVICE} | awk '{print $4}' | cut -d/ -f1)
|
||||
|
||||
#Enable sshd. enabled on cloud-image by default
|
||||
#systemctl enable --now sshd
|
||||
#Set firewall rules
|
||||
firewall-cmd --permanent --add-service=http
|
||||
firewall-cmd --permanent --add-service=https
|
||||
firewall-cmd --permanent --add-service=ssh
|
||||
systemctl reload firewalld
|
||||
#Add repo
|
||||
curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh" | bash
|
||||
#Install Gitlab CE
|
||||
EXTERNAL_URL="${GITLAB_URL}" dnf install gitlab-ce
|
||||
@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
#SOURCE: https://about.gitlab.com/install/#debian
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-gitlab-runner.pref
|
||||
Explanation: Prefer GitLab provided packages over the Debian native ones
|
||||
Package: gitlab-runner
|
||||
Pin: origin packages.gitlab.com
|
||||
Pin-Priority: 1001
|
||||
EOF
|
||||
sudo apt-get update
|
||||
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
|
||||
sudo apt-get -y install gitlab-runner
|
||||
16
vm_example_scripts/gitlab_runner_deb.sh
Executable file
16
vm_example_scripts/gitlab_runner_deb.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
#SOURCE: https://about.gitlab.com/install/#debian
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
# cat <<EOF | tee /etc/apt/preferences.d/pin-gitlab-runner.pref
|
||||
# Explanation: Prefer GitLab provided packages over the Debian native ones
|
||||
# Package: gitlab-runner
|
||||
# Pin: origin packages.gitlab.com
|
||||
# Pin-Priority: 1001
|
||||
# EOF
|
||||
apt-get update
|
||||
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | bash
|
||||
apt-get -y install gitlab-runner
|
||||
8
vm_example_scripts/gitlab_runner_fedora.sh
Executable file
8
vm_example_scripts/gitlab_runner_fedora.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
#SOURCE: https://docs.gitlab.com/runner/install/
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
|
||||
sudo dnf -Y install gitlab-runner
|
||||
60
vm_example_scripts/gitlab_runner_freebsd.sh
Executable file
60
vm_example_scripts/gitlab_runner_freebsd.sh
Executable file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env sh
|
||||
#SOURCE: https://docs.gitlab.com/runner/install/
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
#Creating gitlab user
|
||||
sudo pw group add -n gitlab-runner
|
||||
sudo pw user add -n gitlab-runner -g gitlab-runner -s /bin/sh
|
||||
sudo mkdir /home/gitlab-runner
|
||||
sudo chown gitlab-runner:gitlab-runner /home/gitlab-runner
|
||||
|
||||
#Downloading binary and giving permissions
|
||||
sudo fetch -o /usr/local/bin/gitlab-runner https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-freebsd-amd64
|
||||
sudo chmod +x /usr/local/bin/gitlab-runner
|
||||
|
||||
#Creating logfile and giving permissions
|
||||
sudo touch /var/log/gitlab_runner.log && sudo chown gitlab-runner:gitlab-runner /var/log/gitlab_runner.log
|
||||
|
||||
#Creating rc service
|
||||
mkdir -p /usr/local/etc/rc.d
|
||||
sudo sh -c 'cat > /usr/local/etc/rc.d/gitlab_runner' << "EOF"
|
||||
#!/bin/sh
|
||||
# PROVIDE: gitlab_runner
|
||||
# REQUIRE: DAEMON NETWORKING
|
||||
# BEFORE:
|
||||
# KEYWORD:
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="gitlab_runner"
|
||||
rcvar="gitlab_runner_enable"
|
||||
|
||||
user="gitlab-runner"
|
||||
user_home="/home/gitlab-runner"
|
||||
command="/usr/local/bin/gitlab-runner"
|
||||
command_args="run"
|
||||
pidfile="/var/run/${name}.pid"
|
||||
|
||||
start_cmd="gitlab_runner_start"
|
||||
|
||||
gitlab_runner_start()
|
||||
{
|
||||
export USER=${user}
|
||||
export HOME=${user_home}
|
||||
if checkyesno ${rcvar}; then
|
||||
cd ${user_home}
|
||||
/usr/sbin/daemon -u ${user} -p ${pidfile} ${command} ${command_args} > /var/log/gitlab_runner.log 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
load_rc_config $name
|
||||
run_rc_command $1
|
||||
EOF
|
||||
|
||||
sudo chmod +x /usr/local/etc/rc.d/gitlab_runner
|
||||
|
||||
echo "Now register a runner and then:"
|
||||
echo "sudo sysrc gitlab_runner_enable=YES"
|
||||
echo "sudo service gitlab_runner start"
|
||||
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
HAPROXY_URL="https://github.com/haproxytech/kubernetes-ingress/releases/download/v1.10.11/haproxy-ingress-controller_1.10.11_Linux_x86_64.tar.gz"
|
||||
# Install HAProxy
|
||||
apt update
|
||||
|
||||
0
vm_example_scripts/init_freebsd.sh
Normal file → Executable file
0
vm_example_scripts/init_freebsd.sh
Normal file → Executable file
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
helm repo add jenkins https://charts.jenkins.io
|
||||
helm repo update
|
||||
kubectl create namespace jenkins
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
VM_BASE_DIR=${VM_BASE_DIR:-"${HOME}/vms"}
|
||||
VM_USER="user"
|
||||
VM=$1
|
||||
|
||||
7
vm_example_scripts/podman_deb.sh
Executable file
7
vm_example_scripts/podman_deb.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
apt-get update
|
||||
apt-get -y install podman buildah
|
||||
7
vm_example_scripts/podman_fedora.sh
Executable file
7
vm_example_scripts/podman_fedora.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Exit on error, undefined vars, and pipe failures
|
||||
set -euo pipefail
|
||||
|
||||
dnf update
|
||||
dnf -y install podman buildah
|
||||
62
vm_example_scripts/podman_freebsd.sh
Normal file
62
vm_example_scripts/podman_freebsd.sh
Normal file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env sh
|
||||
# Source: https://podman.io/docs/installation#installing-on-freebsd-140
|
||||
|
||||
# Variables
|
||||
LINE='fdesc /dev/fd fdescfs rw 0 0'
|
||||
FSTAB="/etc/fstab"
|
||||
FD_MOUNTPOINT="/dev/fd"
|
||||
FSTYPE="fdescfs"
|
||||
SERVICE_NAME='linux'
|
||||
|
||||
# Enable Linux compatibility
|
||||
sysrc linux_enable=YES
|
||||
|
||||
# Start the service if not running
|
||||
if ! service "${SERVICE_NAME}" status >/dev/null 2>&1; then
|
||||
if ! service "${SERVICE_NAME}" start; then
|
||||
echo "Error: Cannot start ${SERVICE_NAME}." >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Service ${SERVICE_NAME} started"
|
||||
fi
|
||||
|
||||
# Add fdescfs to /etc/fstab if not present
|
||||
if ! grep -q 'fdesc[[:space:]]\+/dev/fd[[:space:]]\+fdescfs[[:space:]]\+rw[[:space:]]\+0[[:space:]]\+0' "$FSTAB"; then
|
||||
printf '%s\n' "$LINE" | tee -a "$FSTAB" > /dev/null
|
||||
fi
|
||||
|
||||
# Install and enable Podman
|
||||
pkg install -y podman-suite
|
||||
service podman enable
|
||||
|
||||
# Mount fdescfs if not already mounted
|
||||
if ! mount | grep -w "${FD_MOUNTPOINT}" | grep -q "$FSTYPE"; then
|
||||
mount -t fdescfs fdesc /dev/fd
|
||||
fi
|
||||
|
||||
# Configure pf firewall
|
||||
cp /usr/local/etc/containers/pf.conf.sample /etc/pf.conf
|
||||
sed -i '' 's/ix0/vtnet0/g' /etc/pf.conf
|
||||
|
||||
# Enable pf at boot
|
||||
if ! grep -q 'pf_load="YES"' "/boot/loader.conf"; then
|
||||
echo 'pf_load="YES"' | tee -a /boot/loader.conf > /dev/null
|
||||
fi
|
||||
|
||||
# Load pf module and enable local filtering
|
||||
kldload pf
|
||||
sysctl net.pf.filter_local=1
|
||||
|
||||
if ! grep -q 'net.pf.filter_local=1' "/etc/sysctl.conf.local"; then
|
||||
echo 'net.pf.filter_local=1' | tee -a /etc/sysctl.conf.local > /dev/null
|
||||
fi
|
||||
|
||||
service pf enable
|
||||
service pf restart
|
||||
|
||||
# Configure storage backend
|
||||
if pgrep -x zfskern >/dev/null 2>&1; then
|
||||
zfs create -o mountpoint=/var/db/containers zroot/containers
|
||||
else
|
||||
sed -I .bak -e 's/driver = "zfs"/driver = "vfs"/' /usr/local/etc/containers/storage.conf
|
||||
fi
|
||||
Reference in New Issue
Block a user