Fórum Root.cz
Hlavní témata => Server => Téma založeno: Miloš 21. 03. 2016, 14:20:22
-
Zdravím, nějak mi přibývá serverů a přemýšlím, jak je efektivně aktualizovat. Ručně to jde, ale je to otrava. Jak to řešíte vy? Cronem? Nebo nějakým pokročilým systémem? Díky za tipy.
-
Mám skript, který se na všechny naSSHčkuje, zkontroluje stav RAIDu a spustí apt-get update && apt-get upgrade (případně yum update). Skript spouštím podle nálady když mám čas, případně když do debian-security přijde oznámení o nějaké bezpečnostní chybě, která se mě týká.
-
Jak to řešíte vy? Cronem?
No, to snad může dělat jedině šílenec, sebevrah nebo nějaký domácí matlal.
-
Pokud chceš fakt jenom spustit příkaz na všech serverech, tak asi nejjednodušší možnost je Paramiko.
Pokud do toho investuješ o trochu víc úsilí, můžeš nějakým nástrojem server nejen updatovat, ale i kompletně nastavit (příp. nastavení ověřit, což se hodí): Ansible, Salt-ssh, Salt, Puppet, Cfengine (v tomhle pořadí subjektivně vnímám jejich složitost).
Pokud to myslíš vážně, doporučoval bych salt-ssh.
-
tak asi nejjednodušší možnost je Paramiko.
A jestli si to nechceš psát sám, tak http://www.root.cz/clanky/parallel-ssh-jeden-prikaz-vladne-vsem/ (podívej se i do komentářů - udělat totéž čistě pomocí shellu není větší problém a mluví se tam o tom).
-
Pokud to myslíš vážně, doporučoval bych salt-ssh.
salt-ssh '*' -r 'ifconfig'
Mno. A toto má být projekt na správu serverů v roce 2016? Tomu se fakt těžko věří. (Ale třeba to chtějí pustit na *BSD.)
-
Mno. A toto má být projekt na správu serverů v roce 2016? Tomu se fakt těžko věří. (Ale třeba to chtějí pustit na *BSD.)
Tvoje problémy bych chtěl mít :))
-
A toto má být projekt na správu serverů v roce 2016?
Jako by rok 2016 měl v oblasti IT něčím zvlášť vynikat.
-
Cronom? Aktualizacia ma byt sucastou release (mal by si mat k tomu ticket). Pri najmensom by si mal otestovat, ze nova verzia funguje a az potom ju instalovat.
-
Pokud to myslíš vážně, doporučoval bych salt-ssh.
salt-ssh '*' -r 'ifconfig'
Mno. A toto má být projekt na správu serverů v roce 2016? Tomu se fakt těžko věří. (Ale třeba to chtějí pustit na *BSD.)
Šlo by trochu rozvést, co je na tomhle příkazu špatně?
-
Pokud to myslíš vážně, doporučoval bych salt-ssh.
salt-ssh '*' -r 'ifconfig'
Mno. A toto má být projekt na správu serverů v roce 2016? Tomu se fakt těžko věří. (Ale třeba to chtějí pustit na *BSD.)
Šlo by trochu rozvést, co je na tomhle příkazu špatně?
# ip addr add 172.16.1.3/24 dev eth0
# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 74:d4:35:0b:18:06 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.3/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.16.1.3/24 scope global eth0
valid_lft forever preferred_lft forever
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 74:d4:35:0b:18:06
inet addr:10.0.0.3 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2231961 errors:0 dropped:0 overruns:0 frame:0
TX packets:1280839 errors:0 dropped:2 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3044378515 (2.8 GiB) TX bytes:122330244 (116.6 MiB)
-
Cronom? Aktualizacia ma byt sucastou release (mal by si mat k tomu ticket). Pri najmensom by si mal otestovat, ze nova verzia funguje a az potom ju instalovat.
Predevsim i potom musis overit, ze to dopadlo, a ze vse funguje. Jakejkoli automatismus je tak leda cesta do pekel horoucich.
-
Šlo by trochu rozvést, co je na tomhle příkazu špatně?
Nic, jenom je to možná trochu nevhodný příklad. Ta nevhodnost se Saltem jako takovým nijak nesouvisí.
-
Momentalni standard je Puppet v konfiguraci master/client.
Ostatne komercni a mastny (list price $10000 annually) RedHat Satellite 6 neni nic jineho nez zabalena kombinace 3 submodulu
- jakehosi SW zacinajiciho na K, ktery spravuje RHN subscriptions
- Foreman - to je graficke udelatko na tvorbu Kickstart instalaci - ucelem je nainstalovat na bare metal holy RHEL + konfiguraci repozitaru + Puppet client
- Puppet server - ten se postara o zbytek
Puppet je nastroj, ktery zajistuje (ensuruje) ze cilovy server bude v "pozadovanem stavu" - tj ze urcite packages budou nainstalovany, urcite naopak nesmi, urcite services pobezi a urcite konfiguraky budou vygenerovany z templates.
Puppet je na serveru spousten periodicky, postupne zkousi jednotlive spravovane Nody, jestli jsou v pozadovanem cilovem stavu, pokud ne, Puppet to premlaskne zpatky na pozadovany stav (nebo jenom nabonzuje v NOOP modu)
Puppet te odstinuje od implementacnich podrobnosti, ty reknes puppetovi, aby na nodu ensuroval package s urcitym nazvem a puppet uz sam vybere, jestli ma pouzit yum, apt nebo solarisi pkg. Kdyz nekdo hrabne do konfiguraku - dtto.
Kdyz uz s puppetem zacnes, je vhodne do nej presunout veskerou spravu a nody pak managovat uz jenom pres puppet. Je to na pocatku pracne, rozhodne se to ale vrati a pak uz to jenom setri cas. Navic pro bezny SW z beznych repozitaru puppet moduly uz existuji na PuppetForge, ty pak staci jenom stahnout a proste reusovat.
-
Koukni na Pulp - http://www.pulpproject.org/ lze tim jednoduse "posouvat" kontrolovane zmeny, normalne se pouziva vic typu/stage toho sameho repozitare (unstable/stable + live), z live poustis security update (salt/ansible/jenkins/cron/...) ala 'yum update --security --disablerepo="*" --enablerepo="*-live"' ostatni pak postupne testujes a posouvas az do production stage. Pokud mas puppet/chef/... tak neni potreba resit ani napojeni na klientu na pulp (MQ) staci pouzit standardni yum prikazy a definovane repozitare.