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á.
Citace od: Miloš kdy 21. 03. 2016, 14:20:22
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.
Citace od: Mirek Prýmek kdy 21. 03. 2016, 15:54:07
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).
Citace od: Mirek Prýmek kdy 21. 03. 2016, 15:54:07
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.)
Citace od: Tomáš Crhonek kdy 21. 03. 2016, 16:09:34
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 :))
Citace od: Tomáš Crhonek kdy 21. 03. 2016, 16:09:34
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.
Citace od: Tomáš Crhonek kdy 21. 03. 2016, 16:09:34
Citace od: Mirek Prýmek kdy 21. 03. 2016, 15:54:07
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ě?
Citace od: JSH kdy 22. 03. 2016, 16:53:20
Citace od: Tomáš Crhonek kdy 21. 03. 2016, 16:09:34
Citace od: Mirek Prýmek kdy 21. 03. 2016, 15:54:07
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)
Citace od: andy kdy 21. 03. 2016, 16:56:46
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.
Citace od: JSH kdy 22. 03. 2016, 16:53:20
Š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.