Uživatelské nástroje

Nástroje pro tento web


navody:vps:userdata

User data

Při vytvoření nebo reinstalaci VPS může vpsAdmin do VPS nahrát skript nebo konfiguraci pro cloud-init. Tento skript nebo konfigurace se aplikuje při prvním spuštění VPS. Podporujeme tři formáty prvotní konfigurace:

Skripty a konfigurace je možné si do vpsAdminu uložit a při vytvoření/reinstalaci VPS vyberete způsob konfigurace. Správu uložených konfigurací najdeme ve vpsAdminu menu VPSUser data, popř. Edit profileUser data. Při vytvoření/reinstalaci VPS lze konfiguraci vložit i přímo bez ukládání do vpsAdminu. Konfiguraci do vpsAdminu není nutné ukládat, jen vám to ulehčí opakované použítí konfigurací, které se nemění.

Pro vývoj a testování je možné uloženou konfiguraci nahrát do VPS kdykoliv, vpsAdminVPSUser data → Upravit položku ze seznamu a poté formulář Deploy to VPS.

Formáty konfigurace

Script

vpsAdmin do VPS nahraje zadaný skript a integruje jej do init systému VPS, tj. způsob záleží na použité distribuci. V distribucích se systemd je to služba vpsadmin-script.service. Výstup ze spuštěného skriptu je uložen v journalu, tj. journalctl -u vpsadmin-script.service, popř. v souboru /var/log/vpsadmin-script-output.log.

Příklad skriptu:

#!/bin/sh
 
apt install -y nginx
echo "Hello from VPS $VPSADMIN_VPS_ID" > /var/www/html/index.html

Služba i skript se po spuštění automaticky smaže.

Pokud skript přes vpsAdmin nahrajeme do existující VPS, spustíme ho následovně:

# systemd
systemctl daemon-reload
systemctl start vpsadmin-script.service
 
# OpenRC
service vpsadmin-script start

Proměnné prostředí

Spuštěný skript má k dispozici tyto proměnné prostředí:

  • VPSADMIN_VPS_ID - ID VPS

cloud-init config

Konfigurace pro cloud-init jako YAML, viz https://cloudinit.readthedocs.io/en/latest/explanation/format.html#cloud-config-data

Příklad konfigurace:

#cloud-config
users:
  - name: myuser
    ssh_authorized_keys:
      - "ssh-rsa AAAA..."
packages:
  - htop
  - curl
runcmd:
  - echo "Hello, world!" > /root/welcome.txt

Výstup cloud-init je vidět v kernel logu a je uložen v souboru /var/log/cloud-init-output.log.

cloud-init script

Skript spuštěný přes cloud-init, viz https://cloudinit.readthedocs.io/en/latest/explanation/format.html#user-data-script

Výstup cloud-init je vidět v kernel logu a je uložen v souboru /var/log/cloud-init-output.log.

Použítí s vpsfreectl

Prvotní konfiguraci je možné do VPS nahrát také pomocí vpsfreectl. Nejdříve si připravíme soubor se skriptem:

cat <<EOF > my-script.sh
#!/bin/sh
 
apt install -y nginx
echo "Hello from VPS $VPSADMIN_VPS_ID" > /var/www/html/index.html
EOF

Nyní vytvoříme novou VPS:

vpsfreectl vps create -- \
                      --hostname vps \
                      --os-template 168 \
                      --location 7 \
                      --user-data-format script \
                      --user-data-content @my-script.sh

Hodnota parametru –user-data-content začíná s @ a vpsfreectl tak pošle obsah souboru my-script.sh. OS template 168 je Ubuntu 24.04 (vpsfreectl os_template list), location 7 je Staging (vpsfreectl location list). Stejně tak můžeme skript nahrát při reinstalaci VPS:

vpsfreectl vps reinstall 123 -- --user-data-format script --user-data-content @my-script.sh
navody/vps/userdata.txt · Poslední úprava: 2025/03/13 13:50 autor: aither

Nástroje pro stránku