GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Linode StackScripts pro nasazení předem nakonfigurovaných linuxových serverů

Po nasazení nového linuxového serveru je vždy potřeba udělat několik věcí. Může to být změna konfigurace SSH, vytvoření uživatelů bez oprávnění root nebo instalace a konfigurace Dockeru.

Toto všechno jsou opakující se úkoly, které mohou být obzvláště frustrující, když něco testujete a musíte nasadit servery se stejnou konfigurací.

Například používám reverzní nastavení proxy k testování různých druhů webových služeb a aplikací. Dělat všechny ty kroky znovu a znovu na všech nových serverech může být taková bolest.

Naštěstí má Linode, náš poskytovatel infrastruktury, praktické řešení ve formě skriptů StackScripts.

V tomto tutoriálu vám řeknu následující věci:

  • Co jsou Linode StackScripts?
  • Jak používat tyto StackScripty při nasazování serverů s Linode?
  • Tipy pro vytvoření vlastního skriptu StackScript
  • Nasaďte reverzní nastavení proxy pomocí skriptů StackScripts vytvořených týmem Linux Handbook (to jsme my)

Tento kurz funguje pouze s poskytovatelem cloudového serveru Linode. Pokud jej nepoužíváte, můžete se zaregistrovat pomocí tohoto odkazu a získat kredity 60 $ zdarma na dva měsíce.

Co je StackScript?

Je to skript, který se spustí po úspěšném nasazení serveru. Tento skript nemusí být shell skript, může být napsán v Pythonu nebo Perlu, pokud existuje interpret, vše, co potřebujete, je ujistit se, že používáte správný shebang!

Pomocí StackScriptu můžete automatizovat některé z monotónnějších úkolů nezbytných po nasazení. Některé z nich jsou uvedeny níže:

  • Vytvoření uživatele bez oprávnění root.
  • Změna konfigurace serveru SSH (např. deaktivace ověřování heslem).
  • Instalace některých požadovaných balíčků, jako je Python, Docker, Ruby atd.
  • Aktualizace a restartování serveru.

Zní to jako funkce, kterou poskytuje Dockerfile, že? Tady je to podobný koncept.

Typy skriptů StackScript

No, nejsou to zrovna "typy". Záleží na tom, jak si myšlenku typu vykládáte. Pokud rozlišujete dva skripty podle jazyka (tj. interpretu), ve kterém jsou napsány, existuje tolik typů StackScriptů, kolik je interpretů nalezených v konkrétním distribučním obrazu, jako je Python, Perl, Bash, Csh, Fish, Ksh atd.

Zde rozlišuji StackScripty podle jejich dostupnosti. V závislosti na dostupnosti existují dva druhy skriptů StackScript:

  1. Account StackScripts
  2. Community StackScripts

Skripty sady účtů

Toto jsou vaše soukromé skripty, které jste sami vytvořili a ještě jste je nezveřejnili.

Pokud se přihlásíte ke svému účtu Linode, najdete jej na kartě "Account StackScripts" pod "StackScripts" na levém bočním panelu.

Community StackScripts

Skripty, které jste vy a ostatní zpřístupnili veřejnosti prostřednictvím portálu Linode.

Najdete jej na stejném místě vedle "Account StackScripts".

Hands-on 1:Vytvořte jednoduchý StackScript a nasaďte s ním nový server

Chcete-li pokračovat, budete nejprve potřebovat několik věcí:

  • Účet Linode. Pokud jste součástí organizace a jeden z administrátorů vám vytvořil účet, ujistěte se, že váš účet má potřebná oprávnění pro práci se StackScripts.
  • Některé znalosti příkazového řádku nebo skriptování v shellu. Vždy můžete sledovat naši Bash Beginner Series.

Vytvoření jednoduchého skriptu StackScript

V tomto příkladu vytvoříte bash skript, který vytvoří uživatele bez oprávnění root a zkopíruje podrobnosti klíče SSH tomuto uživateli. Nedělá toho mnoho, ale stačí k pochopení základů.

Uživatelské jméno a hesla budou v tomto příkladu pevně zakódována a nedoporučuji to v žádném prostředí. Pro dosažení podobné funkčnosti jsem vytvořil stackscript, o který se za chvíli podělím.

Přejděte do okna StackScript a klikněte na tlačítko "Vytvořit StackScript".

Nyní uvidíte několik textových polí. Zde je to, co musíte udělat:-

  • Nejprve skriptu pojmenujte. Ujistěte se, že je to jedinečné pro váš seznam StackScript účtu.
  • Dále popište účel skriptu. Toto je volitelné.
  • „Cílové obrázky“ jsou v podstatě distribuce, pro které vytváříte tento StackScript. Příkazy nebo interpret, který budete používat, nemusí být ve výchozím nastavení přítomny v jedné distribuci, ale v jiné. Ujistěte se, že jste zde vybrali správné obrázky. Prozatím vyberte Ubuntu 20.04

Konečně část scénáře. Zde zkopírujte a vložte následující kód

#!/bin/sh

useradd \
    -mG sudo \
    -s /bin/bash \
    -p $(awk -F: '$1 ~ /^root$/ {print $2}' /etc/shadow) \
    noroot

if test -d /root/.ssh; then
    cp -r /root/.ssh /home/noroot && \
        chown -R noroot:noroot /home/noroot/.ssh && \
        chmod 700 /home/noroot/.ssh
fi

rm -f /root/StackScript

Skript dělá následující

  • Vytvoří uživatele bez oprávnění root s názvem noroot , se stejným heslem jako uživatel root.
  • Pokud jste do svého Linode přidali klíče SSH, skript zkopíruje soubor .ssh do domovského adresáře uživatele bez oprávnění root a nakonfigurujte požadované vlastnictví a oprávnění.
  • StackScripts je uložen v /root pod názvem StackScript , poslední řádek smaže skript z disku.

Jakmile je vše hotovo, klikněte na „Uložit“.

Nasazení serveru pomocí skriptu StackScript

Nyní byste měli vidět StackScript v seznamu StackScript vašeho účtu. Pokud tak neučiníte, načtěte stránku znovu.

Zde na pravé straně klikněte na "Deploy New Linode".

Další metodou je vybrat StackScripts jako metodu nasazení na stránce vytvoření Linode, jako na obrázku níže.

Poté pokračujte ve vytváření Linode, jak jste zvyklí. Jakmile je stav vašeho Linode "běžící" na vašem dashboardu, počkejte několik sekund a pomocí SSH se přihlaste k serveru, ale ne jako root, jako noroot uživatel.

ssh [email protected]

Měli byste být schopni se přihlásit jako tento nový uživatel.

Handbook 2:Nasazení serveru pomocí StackScripts vytvořených Linux Handbook

V Linux Handbook hodně testujeme a konfigurujeme. Můžete to vidět v našich návodech k nasazení. Abychom pomohli našim čtenářům, jako jste vy, začali jsme v poslední době vytvářet StackScripty.

S našimi StackScripty můžete nasadit servery s poměrně komplikovanými konfiguracemi. Vezměte si například reverzní proxy server Nginx nastavený pomocí Dockeru. Pokud chcete použít toto úžasné nastavení, použijte StackScript a ušetřete spoustu času.

LHB StackScripts můžete najít v našem úložišti GitHub.

Zde vás provedu reverzním nasazením proxy pomocí reverse-proxy-jwilder StackScript.

Tyto skripty jsou v současné době testovány pouze v různých verzích Ubuntu.

Nejprve přejděte do komunitní sekce StackScript a vyhledejte „reverse-proxy-jwilder“. Měli byste vidět skript pojmenovaný jako "another_debdut/reverse-proxy-jwilder".

Stejně jako předtím klikněte na tlačítko "Nasadit nový Linode". Nyní byste měli vidět o několik vstupních polí více, než na jaké jste zvyklí.

Dovolte mi vysvětlit možnosti:

Vytvořit uživatele bez oprávnění root

Pomocí root uživatel vždy v produkčním prostředí není nejlepší nápad. Linode však nemá možnost vytvořit uživatele bez oprávnění root při nasazování serveru. Tento skript se o to postará.

Vytvoření uživatele je volitelné, protože jsou chvíle, kdy je potřeba provést malý test, a je jednodušší použít root prozatím uživatele.

Heslo uživatele jiného než root

Toto je opět volitelné. Pokud toto necháte prázdné, heslo root bude znovu použito pro uživatele bez tohoto oprávnění.

Upgradujte systém

Někdy možná nebudete chtít upgradovat systém, protože to může chvíli trvat.

Port SSH

Nejprve požaduje číslo portu pro spuštění démona SSH, výchozí je port 22. Doporučuji jej nastavit na něco jiného a pamatujte, že tato změna se neprojeví na vašem řídicím panelu silný> .

Na základě dalších informací skript konfiguruje i další části SSH. Pokud například přidáte uživatele, root nebude přístupný přes SSH, pokud je zadán alespoň jeden veřejný klíč, přihlášení heslem je zakázáno.

Zamkněte účet root

Můžete také zamknout root uživatel přímo z obrazovky nasazení. Toto je jeden ze standardních triků pro zpevnění SSH.

Skupina Docker

Protože bude nainstalován docker, můžete do docker přidat uživatele, který není root seskupit automaticky odtud.

To je asi tak všechno. Po dokončení postupujte podle toho, jak normálně nasazujete server.

Na dokončení celého procesu budete muset chvíli počkat. Mezitím po přihlášení můžete zkontrolovat protokoly pomocí příkazu tail:

tail -f /var/log/stackscript.log

Pokud vidíte nějakou chybu v těchto StackScriptech nebo chcete vidět vytváření nějakého vlastního skriptu, otevřete problém v úložišti Linux Handbook GitHub. Příspěvky jsou vždy vítány.

Chcete-li se dozvědět více o StackScriptech, můžete si přečíst jejich oficiální dokumentaci zde.


Linux
  1. Jak používat pokročilý rsync pro velké zálohy Linuxu

  2. Jak používat systemd-nspawn pro obnovu systému Linux

  3. Jak používat Unzip v Linuxu

  1. Jak používám cron v Linuxu

  2. Jak používat FIND v Linuxu

  3. Jak používat kdump pro analýzu pádů jádra Linuxu

  1. Jak používat BusyBox na Linuxu

  2. Jak používat Su Command v Linuxu

  3. Linux – Jak používat swapovací prostor pouze v případě nouze?