Kaip įdiegsite programinę įrangą dideliam kiekiui mašinų, jei neturite Ansible ir Python?
sobes.tech AI
Atsakymas iš AI
Naudosiu vieną iš šių strategijų:
-
Bash scenarijai su SSH naudojimu. Sukursiu scenarijų, kuris paeiliui jungiasi prie kiekvieno serverio per SSH ir vykdo diegimo komandas:
#!/bin/bash SERVERS=("server1" "server2" "server3") # Serverių sąrašas for SERVER in "${SERVERS[@]}"; do echo "Jungiuosi prie ${SERVER}..." ssh ${SERVER} << EOF # Programinės įrangos diegimo komandos nuotoliniame serveryje sudo apt update sudo apt install -y package-name EOF echo "Diegimas ${SERVER} baigtas." donePrivalumai: paprasta pagrindinėms užduotims, nereikalauja papildomų įrankių. Trūkumai: mastelis, klaidų valdymas, idempotencija nėra.
-
Paketų platinimas. Sukursiu paketus (deb, rpm) su reikalingu programinės įrangos ir priklausomybių. Tada juos platinčiau serveriuose ir įdiečiau naudodamas standartinius paketų tvarkytuvus (apt, yum). Galima naudoti
scpkopijavimui paketų ir SSH vykdymui diegimo komandų:#!/bin/bash SERVERS=("server1" "server2" "server3") PACKAGE_PATH="/path/to/package.deb" for SERVER in "${SERVERS[@]}"; do echo "Kopijuoju paketą į ${SERVER}..." scp ${PACKAGE_PATH} ${SERVER}:/tmp/package.deb echo "Įdiegiu paketą ${SERVER}..." ssh ${SERVER} "sudo dpkg -i /tmp/package.deb" echo "Diegimas ${SERVER} baigtas." donePrivalumai: naudojama natūralių paketų tvarkytuvų funkcija, priklausomybių valdymas. Trūkumai: reikalingas paketų kūrimas ir palaikymas.
-
Specializuotos programinės įrangos naudojimas diegimui. Yra įrankių, skirtų programinės įrangos ir vaizdų platinimui, pavyzdžiui:
- PXE Boot (Preboot Execution Environment): operacinių sistemų ir pagrindinės programinės įrangos diegimas per tinklą.
- Clonezilla: diskų ar skaidinių klonavimas.
- Savo scenarijai su
rsync: failų ir katalogų sinchronizavimas.
Kiekvienas įrankis tinka savo scenarijui. PXE gerai tinka pradinio OS įdiegimui, Clonezilla greitam identiškų vaizdų diegimui,
rsync– konfigūracijos failų ir vykdomųjų failų sinchronizavimui.
Metodą pasirinkti priklauso nuo programinės įrangos specifikos, serverių skaičiaus, automatizacijos reikalavimų ir ekspertizės lygio. Pirmiausia apsvarstysiu bash scenarijus paprastiems atvejams ir paketų tvarkytuvus sudėtingesniems scenarijams su priklausomybėmis.