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 VPS → User data, popř. Edit profile → User 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, vpsAdmin → VPS → User data → Upravit položku ze seznamu a poté formulář Deploy to VPS.
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
Spuštěný skript má k dispozici tyto proměnné prostředí:
VPSADMIN_VPS_ID
- ID VPSKonfigurace 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
.
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
.
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