abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 1
    dnes 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    dnes 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    24.12. 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 26
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (34%)
     (2%)
     (14%)
     (2%)
     (2%)
     (2%)
     (16%)
     (17%)
     (11%)
    Celkem 106 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: Ansible - aktualizace Debian serverů

    21.7.2019 11:29 Honza
    Ansible - aktualizace Debian serverů
    Přečteno: 791×
    Dobrý den.
    Rád bych se zeptal, jestli tady není někdo, kdo denně používá Ansible pro automatickou správu a aktualizaci Debian / Ubuntu serverů. V podstatě řeším to, jak zajistit, aby když dojde k aktualizaci kernelu, tak aby se celý server zrestartoval. Ideální scénář je ten, že se spustí aktulizace kernelu na serveru A a jakmile aktualizace doběhne, tak se vyvolá reboot a počká se (třeba 10s) jestli server A nastartuje (stačí aby odpovídal na ping a běžel SSH). Pokud server A nastartuje, bude se pokračovat aktualizací serveru "B". Pokud by ale aktualizace na serveru A selhala, je potřeba aktualizace dalších serverů (do vyřešení problému) zastavit (FAIL).

    Je toto vůbec řešitelné ?
    Případne jak by to mohlo být řešitelné ?

    A co se stane ve chvíli, kdy si aktualizace vyžádá nějaký uživatelský zásah (readline / ncurses) ?
    Napadá mě Oracle MySQL, nebo tak něco...

    Můj současný (jednoduchý playbook)
    ---
    
    - name: run the playbook tasks on the hosts
      hosts: all
      tasks:
    
      - name: print out the hostname of target
        command: hostname
    
      - name: ensure aptitude is installed
        command: apt -y install aptitude
    
      - name: update the apt package index i.e. apt update
        apt: update_cache=yes
    
      - name: upgrade system packages i.e. apt upgrade
        apt: upgrade=yes
    

    Odpovědi

    Věroš avatar 21.7.2019 18:22 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Pro restart je možné použít Ansible modul reboot, který počká, až restart doběhne a selže.

    Debianu nemaje, na druhou půlku bohužel odpovědět nemůžu.
    Školím Ansible
    21.7.2019 20:16 Honza
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Našel jsem...

    toto: https://www.cyberciti.biz/faq/ansible-reboot-debian-ubuntu-linux-for-kernel-update-waitforit/
    a taky toto: https://serverfault.com/questions/883314/show-updated-packages-with-ansible-package-management

    ....teď to bude chtít nějak slepit dohromady...

    @Věroš - nemohl bych tu veřejně poprosit o pomoc ?
    ...hned by mi to školení od rootu (na které jsem již přihlášen) začalo dávat větší smysl ;-)
    Díky,
    Honza
    Věroš avatar 23.7.2019 09:33 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Omlouvám se, ale už já sem moc nechodím a tak to tady moc nečtu.

    Na modulu reboot je pěkné to, že počká, až se server restartuje a není potřeba použít waitfor. Je to novinka z Ansible 2.6, do té doby se opravdu waitfor používal.

    Pokud je potřeba spouštět aktualizace na serverech postupně, tak je možné použít modifikátor u playbooku serial: 1.

    Školím Ansible
    22.7.2019 09:24 NN
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Nekolik poznamek. Normalne ansible zpracovava hosty paralelene. Takze bych pouzil direktivu:
    serial: 1
    tak a by se servery zpracovavali jeden po druhem. Zadruhe bych pouzil direktivu:
    any_errors_fatal: true
    ktera zajisti, ze se pri selhani jedineho hosta cely proces zastavi.
    22.7.2019 10:19 Honza nebo Petr, je to jedno
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Děkuji NN za dobrou poznámku.
    Zatím jsem to "naprasil" takto a zdá se, že funguje....
    Ještě by bylo fajn, kdyby Ansible AWX odeslal notifikaci o tom, co všechno se aktualizovalo.
    Zatím mi chodí jen standartní emaily z AWX.
    ---
    
    - name: run the playbook tasks on the hosts
      hosts: all
      serial: 1
      any_errors_fatal: true
      tasks:
    
      - name: Print out the hostname of target
        command: hostname
    
      - name: Ensure aptitude and reboot-notifier are installed
        command: apt -y install aptitude python-apt reboot-notifier
    
      - name: Update the apt package index (apt update)
        apt: update_cache=yes
    
      - name: Upgrade system packages (apt upgrade)
        apt: upgrade=yes
    
      - name: List installed and updated packages
        shell: grep -E "^$(date +%Y-%m-%d).+ (install|upgrade) " /var/log/dpkg.log |cut -d " " -f 3-5
        register: result
    
      - name: Show Output
        debug: msg="{{ result.stdout_lines }}"
    
      - name: "Reboot server if kernel/libs updated and requested by the system"
        shell: sleep 2 && shutdown -r now 'Rebooting server to update system libs/kernel as needed' removes=/var/run/reboot-required
        become: true
        async: 1
        poll: 0
        ignore_errors: true
    
      - name: "Wait for system to become reachable again"
        local_action: wait_for host={{ ansible_default_ipv4.address }} port=22 delay=10 state=started
        become: false
    
    22.7.2019 11:26 xxl | skóre: 26
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    22.7.2019 14:53 Honza nebo Petr, je to jedno
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Už jsem to rozchodil, děkuju.
    Věroš avatar 23.7.2019 09:43 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    AWX out-of-the-box je v notifikacích docela hloupý.

    Pokud potřebuješ udělat notifikace chytřejší (třeba zobrazit, co se na strojích povedlo), tak je lepší z AWX použít buď webhook (místo e-mailu) a doprogramovat si k tomu webhooku serverovou část.

    Pro ještě detailnější výpisy můžeš AWX požádat, ať posílá logy do nějakého syslog serveru a parsovat tam. Logování z AWX je docela pěkné.

    Mám na to v produkci proof-of-concept, ale není to úplně hezky napsané a zveřejnitelné.

    Miniaturní kód pro zpracování webhooku ( Flask + Errbot ), který posílá výstupy AWX do Errbota (Slack) je na gistu.

    Dobře, zkusím to poslat jako talk na LinuxDays, ať se donutím ten ḱód učesat.
    Školím Ansible
    24.7.2019 10:54 Honza nebo Petr, je to jedno
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Dobrý den.
    Ještě bych se zeptal, nevíte, jak je to s "wait_for_connection" po rebootu serveru, pakliže cílový host je za ssh tunelem ?
    ---
    ansible_user: root
    ansible_connection: ssh
    ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q root@gw01.domain.com"'
    
    Tohle bohužel v tomto případě nefunguje
      - name: "Reboot server if kernel/libs updated and requested by the system"
        shell: sleep 2 && shutdown -r now 'Rebooting server to update system libs/kernel as needed' removes=/var/run/reboot-required
        become: true
        async: 1
        poll: 0
        ignore_errors: true
    
      - name: "Wait for system to become reachable again"
        local_action: wait_for host={{ ansible_default_ipv4.address }} port=22 delay=10 state=started
        become: false
    
    Nějaký nápad, jak to dělat / řešit ?
    Pokud přistupuju na hosta napřímo, tak vše funguje OK a čeká se.
    Problém je tedy pouze ve chvíli, kdy cílový host je za ssh tunelem / ssh_proxy_pass.
    Věroš avatar 26.7.2019 10:46 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Ještě jednou, použij pro reboot a čekání na reboot ansible akci reboot, podle zdrojového kódu by se měla vypořádat i ssh_proxy_pass.

    Ověření necháme laskavému čtenáři za domácí úkol.
    Školím Ansible
    26.7.2019 14:36 xxl | skóre: 26
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Nakonfiguruj si tu proxy v .ssh/config. A Ansiblu o tom vůbec neříkej.

    Např.
    ProxyCommand ssh -q muj_proxy_server nc -q0 muj_koncovy_server:12322
    nebo třeba
    ProxyJump root@muj_proxy_server:22
    26.7.2019 04:52 Honza
    Rozbalit Rozbalit vše Re: Ansible - aktualizace Debian serverů
    Nikdo ?
    Nikdo nepoužívá, nikdo neřeší ?

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.