GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Linode StackScripts per la distribuzione di server Linux preconfigurati

Ci sono sempre alcune cose da fare dopo aver distribuito un nuovo server Linux. Potrebbe essere la modifica della configurazione SSH, la creazione di utenti non root o l'installazione e la configurazione di Docker.

Queste sono tutte attività ripetitive che potrebbero essere particolarmente frustranti quando stai testando qualcosa e devi distribuire server con la stessa configurazione.

Ad esempio, utilizzo la configurazione del proxy inverso per testare diversi tipi di servizi Web e applicazioni. Rifare tutti quei passaggi ancora e ancora su tutti i nuovi server potrebbe essere una tale seccatura.

Per fortuna, Linode, il nostro fornitore di infrastrutture, ha una soluzione pratica sotto forma di StackScripts.

In questo tutorial, ti dirò le seguenti cose:

  • Cosa sono gli StackScript di Linode?
  • Come utilizzare gli StackScript durante la distribuzione di server con Linode?
  • Suggerimenti per creare il tuo StackScript
  • Distribuisci una configurazione del proxy inverso utilizzando StackScripts creato dal team di Linux Handbook (siamo noi)

Questo tutorial funziona solo con il provider di server cloud Linode. Se non lo stai utilizzando, puoi registrarti con questo link per ottenere $ 60 di crediti gratuiti per due mesi.

Cos'è uno StackScript?

È uno script che viene eseguito dopo che un server è stato distribuito correttamente. Questo script non deve essere necessariamente uno script di shell, può essere scritto in Python o Perl, purché l'interprete sia presente, tutto ciò di cui hai bisogno è assicurarti di usare lo shebang corretto!

Con StackScript, puoi automatizzare alcune delle attività più monotone delle necessità successive alla distribuzione. Alcuni di essi sono elencati di seguito:

  • Creazione di un utente non root.
  • Modifica della configurazione del server SSH (ad es. Disabilitazione dell'autenticazione della password).
  • Installazione di alcuni dei pacchetti desiderati come Python, Docker, Ruby ecc.
  • Aggiornamento e riavvio del server.

Sembra la funzionalità fornita da Dockerfile, giusto? È un concetto simile qui.

Tipi di StackScript

Beh, non sono esattamente "tipi". Dipende da come stai interpretando l'idea di un tipo. Se distingui due script in base alla lingua (cioè l'interprete) in cui è scritto, ci sono tanti tipi di StackScript quanti sono gli interpreti trovati in un'immagine di distribuzione specifica come Python, Perl, Bash, Csh, Fish, Ksh, ecc.

Qui sto distinguendo StackScripts per la loro disponibilità. A seconda della disponibilità, esistono due tipi di StackScript:

  1. StackScript per account
  2. StackScript della community

StackScript di account

Questi sono i tuoi script privati ​​che hai creato tu stesso e non hai ancora reso pubblici.

Se accedi al tuo account Linode, lo troverai nella scheda "Account StackScripts" sotto "StackScripts" sul pannello laterale sinistro.

Community StackScripts

Script che tu e altri avete reso pubblicamente disponibili tramite il portale Linode.

Puoi trovarlo nello stesso posto accanto a "Account StackScripts".

Hands-on-1:crea un semplice StackScript e distribuisci un nuovo server con esso

Per seguire, avrai prima bisogno di un paio di cose:

  • Un conto Linode. Se fai parte di un'organizzazione e uno degli amministratori ha creato un account per te, assicurati che il tuo account disponga delle autorizzazioni necessarie per operare con StackScripts.
  • Alcune conoscenze di riga di comando o script di shell. Puoi sempre seguire la nostra serie Bash per principianti.

Creazione di un semplice StackScript

In questo esempio, creerai uno script bash che creerà un utente non root e copierà i dettagli della chiave SSH su questo utente. Non fa molto ma basta per capire le basi.

Il nome utente e le password saranno codificati in questo esempio e non lo consiglio in nessun ambiente. Ho creato uno stackscript per ottenere funzionalità simili, che condividerò tra poco.

Vai alla finestra di StackScript e fai clic sul pulsante "Crea uno StackScript".

Ora vedrai un paio di campi di testo. Ecco cosa devi fare:-

  • Per prima cosa, dai un'etichetta al tuo script. Assicurati che sia univoco per l'elenco StackScript del tuo account.
  • Successivamente, descrivi lo scopo dello script. Questo è facoltativo.
  • "Immagini di destinazione" sono fondamentalmente le distribuzioni per cui stai creando questo StackScript. I comandi o l'interprete che utilizzerai potrebbero non essere presenti in una distribuzione per impostazione predefinita, ma presenti in un'altra. Assicurati di scegliere le immagini corrette qui. Per ora, seleziona Ubuntu 20.04

Infine, la parte della sceneggiatura. Qui copia e incolla il seguente codice

#!/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

Lo script esegue le seguenti operazioni

  • Crea un utente non root, chiamato noroot , con la stessa password dell'utente root.
  • Se hai aggiunto chiavi SSH al tuo Linode, lo script copierà il .ssh directory nella home dell'utente non root e configurare la proprietà e le autorizzazioni richieste.
  • Lo StackScripts è archiviato in /root sotto il nome StackScript , l'ultima riga elimina lo script dal disco.

Al termine, fai clic su "Salva".

Distribuisci il server utilizzando StackScript

Ora dovresti vedere StackScript nell'elenco StackScript del tuo account. In caso contrario, ricarica la pagina.

Qui, all'estrema destra, fai clic su "Distribuisci nuovo Linode".

Un altro metodo consiste nel selezionare StackScripts come metodo di distribuzione nella pagina di creazione di Linode come nell'immagine qui sotto.

Successivamente, continua con la creazione di Linode come sei abituato. Una volta che lo stato del tuo Linode è "in esecuzione" sulla dashboard, attendi un paio di secondi e usa SSH per accedere al server, ma non come root, come noroot utente.

ssh [email protected]

Dovresti essere in grado di accedere come nuovo utente.

Hands-on-2:distribuzione del server utilizzando StackScripts creato da Linux Handbook

In Linux Handbook, eseguiamo molti test e configurazioni. Puoi vederlo nei nostri tutorial sulla distribuzione. Per aiutare i nostri lettori come te, abbiamo recentemente iniziato a creare StackScripts.

Con i nostri StackScript, puoi distribuire server con configurazioni piuttosto complicate. Prendi ad esempio il proxy inverso Nginx configurato con Docker. Se vuoi usare quella fantastica configurazione, usa StackScript e risparmia un sacco di tempo.

Puoi trovare LHB StackScripts nel nostro repository GitHub.

Qui ti guiderò attraverso la distribuzione del proxy inverso utilizzando reverse-proxy-jwilder StackScript.

Questi script sono attualmente testati solo in diverse versioni di Ubuntu.

Per prima cosa vai alla sezione StackScript della community e cerca "reverse-proxy-jwilder". Dovresti vedere uno script chiamato come tale "another_debdut/reverse-proxy-jwilder".

Come prima, fai clic sul pulsante "Distribuisci nuovo Linode". Ora dovresti vedere un paio di campi di input in più rispetto a quelli a cui sei abituato.

Lascia che ti spieghi le opzioni:

Crea un utente non root

Usando la root l'utente sempre in un ambiente di produzione non è la migliore idea. Ma Linode non ha la possibilità di creare un utente non root durante la distribuzione di un server. Questo script si occupa di questo.

La creazione dell'utente è facoltativa perché ci sono momenti in cui è necessario eseguire un piccolo test ed è più facile usare la root utente per il momento.

Password utente non root

Anche questo è facoltativo. Se lasci questo campo vuoto, la password di root verrà riutilizzata per l'utente non root.

Aggiorna il sistema

A volte potresti non voler aggiornare il sistema, poiché potrebbe volerci un po' di tempo.

porta SSH

Innanzitutto, richiede un numero di porta per l'esecuzione del demone SSH, per impostazione predefinita la porta 22. Consiglio di impostarlo su qualcosa di diverso e ricorda che questa modifica non si rifletterà sulla tua dashboard .

Sulla base di altre informazioni, lo script configura anche altre parti di SSH. Ad esempio, se aggiungi un utente, root non sarà accessibile tramite SSH, se viene fornita almeno una chiave pubblica, l'accesso con password è disabilitato.

Blocca l'account root

Puoi anche bloccare la root utente direttamente dalla schermata di distribuzione. Questo è uno dei trucchi standard per l'indurimento SSH.

Gruppo Docker

Poiché la finestra mobile verrà installata, puoi aggiungere il tuo utente non root alla docker raggruppare automaticamente da qui.

Questo è tutto. Una volta terminato, segui come distribuisci normalmente un server.

Dovrai aspettare un po' per completare l'intero processo. Nel frattempo, dopo aver effettuato l'accesso, puoi controllare i log utilizzando il comando tail:

tail -f /var/log/stackscript.log

Se vedi qualche bug con questi StackScript o vuoi vedere alcuni script personalizzati creati, apri un problema sul repository GitHub di Linux Handbook. I contributi sono sempre ben accetti.

Per saperne di più su StackScripts, puoi leggere la loro documentazione ufficiale qui.


Linux
  1. Come usare BusyBox su Linux

  2. Come usare Unzip in Linux

  3. Come usare il comando Su in Linux

  4. Linux:come utilizzare lo spazio di scambio solo per le emergenze?

  5. Come usare kdump per l'analisi del crash del kernel Linux

Come utilizzare il comando SS di Linux

Come usare il comando nohup di Linux

Come usare traceroute su Kali Linux

Come utilizzare lo schermo Linux

Come controllare le porte di ascolto in Linux (porte in uso)

Come installare Grafana su server Linux