|
<< Click to Display Table of Contents >> Navigation: KVM - Gemstone "Carrier" > Vorbereitungen > Beispiel - "user-data.tpl" |
Hier ein Beispiel aus dem mitgelieferten Template. So wird eine Maschine konfiguriert. Neben Java, .Net Runtime werden vor allem die Dateisysteme des HOSTS an bestimmten Stellen eingebunden bzw. die Installation so abgeändert, das Daten im externen Dateisystem abgelegt werden. In diesem Beispiel werden alle Datenbank-Dateien der stones ins HOST-Dateisystem geschrieben. Die zweite Einbindung dient dazu, um externe Daten der VM zur Verfügung zu stellen. Das als exemplarische Nutzung der Möglichkeiten.
#cloud-config
hostname: ${VM_NAME}
fqdn: ${VM_NAME}.local
package_update: true
package_upgrade: true
# Temporaeres Root-Passwort fuer Debugging (danach aendern!)
chpasswd:
list: |
root:TempPass123!
expire: false
users:
- name: pas
gecos: Allgemeiner Benutzer zur Verwaltung der GemStone/S Anwendung
groups: sudo
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
lock_passwd: false
passwd: $6$GMWhV831t/TRbUcb$h456/wEvGlr2E3TpEuk/ChIlaItrlF8GXlEO3zB5690euK7PnHH3gIQgWJbiQXjP1LkvKA2F3OFohJBRlqlwE0
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO5GzyIsgaUapbyzHj/pUeuYzGDDf+0wqIgCy6qIwvn1 m@feldtmann.online
packages:
- subversion
- git
- curl
- wget
- ufw
- qrencode
- qemu-guest-agent
- libpq-dev
- librabbitmq-dev
- openjdk-21-jre-headless
- ansible
- virtiofsd
runcmd:
- sed -i 's/^# *\(de_DE.UTF-8 UTF-8\)/\1/' /etc/locale.gen
- grep -q '^de_DE.UTF-8 UTF-8' /etc/locale.gen || echo 'de_DE.UTF-8 UTF-8' >> /etc/locale.gen
- locale-gen
- update-locale LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8
- systemctl enable --now qemu-guest-agent
# VirtIO FS konfigurieren
- mkdir -p /mnt/host_db_data
- mount -t virtiofs db_data /mnt/host_db_data || true
- echo "db_data /mnt/host_db_data virtiofs rw,nofail 0 0" >> /etc/fstab
- mkdir -p /mnt/esv5
- mount -t virtiofs esv5 /mnt/esv5 || true
- echo "esv5 /mnt/esv5 virtiofs rw,nofail 0 0" >> /etc/fstab
# Den Nutzer pas ls linger setzen
- loginctl enable-linger pas
# Firewall
- ufw --force disable
# Installationsskript holen und ausfuehren
- su - pas -c "wget -O /home/pas/pas_install_env.sh https://feldtmann.ddns.net/pas-project/pas_install_env.sh"
- su - pas -c "chmod +x /home/pas/pas_install_env.sh"
- su - pas -c "cd /home/pas && ./pas_install_env.sh"
# Installation von Zusatzpaketen
- su - pas -c "git clone https://github.com/feldti/GemConnect-for-Postgres.git"
- su - pas -c "git clone https://github.com/feldti/GemConnectForRabbitMQ.git"
- su - pas -c "git clone https://github.com/feldti/PDFtalk-for-Gemstone.git"
# Wir verlegen einige Strukturen in das shared filesystem: stones und lizenzen
- su - pas -c "rmdir /home/pas/pas/work/stones"
- su - pas -c "rmdir /home/pas/pas/work/licenses"
- su - pas -c "mkdir /mnt/host_db_data/stones"
- su - pas -c "mkdir /mnt/host_db_data/licenses"
- su - pas -c "ln -s /mnt/host_db_data/stones /home/pas/pas/work/stones"
- su - pas -c "ln -s /mnt/host_db_data/licenses /home/pas/pas/work/licenses"
# Entwicklungsroutinen für .NetCore
- |
. /etc/os-release
case "${ID}" in
debian)
wget https://packages.microsoft.com/config/debian/${VERSION_ID}/packages-microsoft-prod.deb -O /tmp/ms-prod.deb
dpkg -i /tmp/ms-prod.deb
;;
ubuntu)
wget https://packages.microsoft.com/config/ubuntu/${VERSION_ID}/packages-microsoft-prod.deb -O /tmp/ms-prod.deb
dpkg -i /tmp/ms-prod.deb
;;
*)
echo "Unbekannte Distribution: ${ID}"
exit 1
;;
esac
- apt update
- apt install -y aspnetcore-runtime-8.0
- apt install -y aspnetcore-runtime-10.0
# Shared Memory auf 2GB für die kleinen Lizenzen setzen
- echo 'kernel.shmmax = 2147483648' >> /etc/sysctl.conf
- echo 'kernel.shmall = 524288' >> /etc/sysctl.conf
- sysctl -p