Ako automatizujem základné úlohy na Linuxe pomocou bash skriptov - a prečo by ste to mali vyskúšať


Prestaňte plytvať časom na opakujúce sa úlohy a nechajte skripty bash, aby vykonali prácu za vás.

Bash skripty sú jednou oblasťou Linuxu, ktorá pomáha robiť ho zázrakom flexibility a efektívnosti, ktorým je. Používal som bash skripty na takmer všetko, od záloh po vytváranie užívateľov a mnoho ďalšieho, ale je tu jedna oblasť, v ktorej sa bash skripty naozaj predvádzajú - automatizácia.

Možno si myslíte, že je to pre vaše zručnosti príliš náročné, ale prekvapíte sa, ako jednoduché to môže v skutočnosti byť. Čo chcem urobiť, je ukázať vám, ako používať bash skripty a terminál Linuxu na súčasnú aktualizáciu viacerých linuxových strojov.

Si pripravený na toto? Poďme na to.

Ako používať bash skripty na automatizáciu úloh v systéme Linux

Čo budete potrebovať: Na to budete potrebovať aspoň dva alebo tri linuxové stroje (na tej istej LAN) a používateľa s sudo právami. To je všetko.

1. Napíš scenár

Otvorte terminálové okno a vytvorte skript pomocou príkazu:

nano updates.sh 

Vložte nasledujúce do súboru:

#!/bin/bash 

Define your remote servers with comma-separated IP addresses servers=("SERVER1", "SERVER2")

Define the update command (make sure to edit this to conform to your package manager) update_command="sudo apt-get update && sudo apt-get upgrade -y"

Loop through each server and execute the update command for server in "${servers[@]}"; do echo "Updating server $server..." ssh USER@$server "$update_command" done

echo "Updates completed on all servers."

Kde SERVER1 a SERVER2 sú IP adresy vzdialených počítačov a USER je vaše vzdialené používateľské meno.

Pridal som komentáre do skriptu, aby som pomohol vysvetliť, čo sa deje.

Uložte a zatvorte súbor.

2. Dajte skriptu vykonávacie oprávnenia

Aby ste mohli spustiť skript, musíte mu dať práva na spustenie príkazom:

chmod u+x update.sh 

3. Vytvorte pár SSH kľúčov

Ak ste to ešte neurobili, musíme vygenerovať pár kľúčov SSH, pretože budeme používať autentifikáciu pomocou SSH kľúčov. Na vytvorenie vášho kľúča zadajte nasledujúci príkaz:

ssh-keygen -t rsa 

Budeš vyzvaný, aby si napísal a overil heslo pre kľúč. Určite to urob.

4. Skopírujte svoj verejný kľúč na vzdialené stroje

Aby autentifikácia pomocou SSH kľúča fungovala, musíte skopírovať verejný kľúč na všetky servery, ktoré budú profitovať zo skriptu. Aby ste to dosiahli, zadajte príkaz:

ssh-copy-id USER@SERVER 

Kde USER je vaše vzdialené používateľské meno a SERVER je IP adresa prvého servera.

Urobte to isté pre všetky servery, na ktoré sa pripojíte v rámci skriptu.

5. Spustite ssh-agent

Aby to fungovalo úspešne, musíte spustiť reláciu ssh-agent, ktorá dočasne uloží heslo vášho SSH kľúča, aby ste ho nemuseli zadávať pre každý server na zozname. Na spustenie relácie zadajte príkaz

eval `ssh-agent` 

Ďalej pridajte heslo k svojmu SSH kľúču pomocou:

ssh-add ~/.ssh/id_rsa 

Budeš vyzvaný na heslo tvojej SSH kľúča.

6. Spustite skript

Teraz môžete spustiť skript pomocou príkazu:

./update.sh 

Nebudete požiadaní o vaše heslo k vzdialenému používateľovi, pretože ste v relácii ssh-agent, ktorá môže za vás vyjednať odovzdanie hesla. Nezáleží na tom, koľko serverov ste nakonfigurovali pre skript; pokiaľ sú si vedomé páru SSH kľúčov a pridali ste heslo do relácie ssh-agent, všetko prebehne bez problémov.

Teraz si môžete tento skript vziať a upraviť ho podľa svojich potrieb, alebo si môžete vytvoriť vlastné skripty a použiť autentifikáciu pomocou SSH kľúča a ssh-agent, aby ste zjednodušili proces automatizácie.