• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    INDIANCentralizovaná správa stanic a ostatních prvků v síti - automation/monitoring/alerting a dalsi devops nastroje
    Diskuse o vsem, co se tyka nastroju ulehcujicich praci nejen administratorum ...

    Sirsi zaber vitan (resp. co se neveslo do nazvu) :
    Inventarizace * IT Asset Management * Centralizovana sprava instalaci / aktualizaci * Zalohovani stanic * Sprava licenci

    Par tipu :
    Saltstack * Ansible * OCS Inventory NG * Fusion Inventory * GLPI * Mandriva Pulse2 * IBM Tivoli * Microsoft SCCM * BackupPC * Bacula * Puppet * Chef * RackTables * Zabbix * Foreman * Cfengine * Wix Toolset * WKPG * Symantec Client Management Suite
    chybi tu neco ? sem s tim ;)
    rozbalit záhlaví
    MUXX
    MUXX --- ---
    Nesetkali jste se v ansible s nasledujicim? Mam AlmaLinux8 a poustim na nem nasledujici kod:

    - name: Packages
      ansible.builtin.dnf:
        name:
          - java-11-openjdk
          - zabbix-agent2
          - bind-libs
          - "@postgresql:12/server"
        state: present

    Ocekavam, ze pokud jsou balicky "present", tak neprobehne update verze.
    Nicmene co se mi deje je, ze v momente, kdy existuji nove verze, tak se java a postgres nainstaluji nove verze, ale zabbix-agent2 a bind-libs ne.
    Podle dokumentace by se nemelo instalovat nic, protoze baliky uz jsou nainstalovany. Nemate nejaky napad proc to dela? ansible 8.0 + core 2.15.0
    CHOROBA
    CHOROBA --- ---
    ansible by mel bejt kamarad, delam to samy na proxmoxu plus autodeploy debian/centosu
    INDIAN
    INDIAN --- ---
    MUXX: mam nulovou zkusenost, ale myslim ze ansible bude na to pomerne dobre vybaveny:
    Community.Vmware — Ansible Documentation
    https://docs.ansible.com/ansible/latest/collections/community/vmware/index.html
    MUXX
    MUXX --- ---
    Dělali jste někdo VM ve vmware vSphere přes nějaký tool ansible/terraform/saltstack/packer atd? Já to dělal před lety přes vlastní powercli/python skripty, ale zajímalo by mě jaký je nejlepší přístup dnes. Klient má asi 50 VM a další VM už by chtěl dělat IaaC (Linux redhat). Potřeboval bych nějaký tipy jak na to, protože jsem vmware několik let nepoužíval. Napadá mě udělat leda nějaký jednoduchý deployment skript pro zakladni VM a soustředit se spíš na ansible a správu OS. Vmware cluster je pronajatý od nějakého providera v Německu a chtějí u něj zatím zůstat.
    RAGNAROK
    RAGNAROK --- ---
    V ansiblu bych potreboval pridat neco do dictionary ale tak aby se variables expandovaly rekurzivne:
    - ansible.builtin.set_fact:
    	MyDick: "{{MyDick|combine({item.key : item.value})}}"
      with_dict:
        TS: "{{ansible_date_time.iso8601_basic_short}}"
    	IN: "hello_{{TS}}"
    To mi hodi error 'TS' not defined.

    Prisel jsem jen na nasledujici a to se mi nelibi:
    - ansible.builtin.set_fact:
    	MyDick: "{{MyDick|combine({item.key : item.value})}}"
      with_dict:
    	TS: "{{TS}}"
    	IN: "hello_{{TS}}"
      vars:
    	TS: "{{ansible_date_time.iso8601_basic_short}}"
    QUIP
    QUIP --- ---
    RAGNAROK: Aha, tak tohle jsem nikdy nepouzil. Je ale zvlastni, ze se nezepta na passphrase. Nezkousel jsi v Ansible pouzit jiny ssh backend? SSh vs Paramiko?
    QUIP
    QUIP --- ---
    Kdyz si to znova ctu, tak jsem mozna jen nepochopil spravne, jak to mas nastavene a ceho presne se snazis dosahnout. Ja mam na serverech povolene prihlasovani pouze klicem a klice maji passphrase (prihlaseni s heslem mam zakazane). V Ansible mam nastaveny klic pro prihlaseni. Pokud se tim klicem zkusim prihlasit a nebezi agent, tak mi normalne v CLI vyskoci prompt pro zadani passphrase.
    RAGNAROK
    RAGNAROK --- ---
    Zkousim v ansible authentikaci pres ssh.
    Server ma nastaveno AuthenticationMethods pubkey,password
    Klic ma passphrase.

    V ansiblu se mi zatim povedlo jen authentikace: pubkey a passphrase nebo pubkey a password.

    Kombinace passphrase, pubkey a password ale nejde. Ansible se na passphrase nezepta.

    Jde to vubec?
    QUIP
    QUIP --- ---
    FATBOZZ: Co presne ten modul dela? Z popisu na webu jsem to uplne nepochopil. To vytvori system wide symlink, nebo jen pro pouziti Ansible (v ansible home?)
    A tim "install" se mysli, ze vytvori symlink, nebo ze to nainstaluje balik package managerem?
    FATBOZZ
    FATBOZZ --- ---
    A tohle by se nehodilo ?
    community.general.alternatives module – Manages alternative programs for common commands — Ansible Documentation
    https://docs.ansible.com/ansible/latest/collections/community/general/alternatives_module.html
    QUIP
    QUIP --- ---
    HEINZZ: Ono je to nasledovne:
    Kdyz si nainstalujes neco, co zavisi na Pythonu, tak se ti nainstaluje i Python a mas tam jen ten konkretni, napriklad "python3.9".
    Muzes si ale nainstlaovat i tzv meta balik python3, ktery ti udela ten symlink "python3", nebo meta balik python, ktery ti udela i symlink "python". (ve skutecnosti to dela symlinky na vicero souboru: bin/2to3-3, bin/idle3, bin/pydoc3, bin/python3, bin/python3-config, libdata/pkgconfig/python3.pc)

    Ty symlinky nemuzou byt soucasti python-3.9 balicku, protoze by to kolidovalo se stejnymi symlinky z balicku python-3.7 atp.

    Pokud bych na to sel z opacne strany a rekl, ze chci nainstalovat balicek "python" a je mi jedno, jake verze, tak se nainstaluje ta defaultni verze, coz je ted tusim 3.9 a k tomu se nainstalujou i oba dva meta balicky, protoze retezec zavislosti je "python" > "python3" > "python3.9".
    Tedy "pkg install python", nainstaluje to, co ty povazujes za defaultni na Debianu.

    No a ja to u sebe asi vyresim tak, ze si upravim svuj meta balik, ktery mam pojmenovany "ansible-client", coz neobsahuje zadne soubory, jenom seznam zavislosti, ktere je potreba nainstalovat tam, kde chci provozovat Ansible (sudo + python39). Upravim to na "sudo + python3", pri pristi aktualizaci se mi tak na vsechny stroje nainstaluje meta balik "python3", ktery vytvori ty symlinky a ja pak muzu upravit ansible_python_interpreter na /usr/local/bin/python3

    Takze vsem diky za prinosnou diskuzi :)
    SAMGARR
    SAMGARR --- ---
    A neslo by si pro Ansible udelat dedikovany pyenv aby nebyl zavislej na systemovym Pythonu?
    QUIP
    QUIP --- ---
    CHOROBA: No pokud ti neprojde zadny ansible task, protoze mas spatny python, tak z toho asi cesta nevede :) Ja bych to v mem pripade zjistoval jeste pred tim upgradem.

    A nebo si udelas playbook, ktery postupne vyzkousi vsechny verze interpreteru, ktere prichazeji v uvahu :)
    QUIP
    QUIP --- ---
    Pouzivam Ansible pro nektere hromadne ukoly udrzby FreeBSD serveru (HW i virtualni) a mam tu takovy jeden problem pri upgrade verze Pythonu.

    V hosts mam
    [freebsd:vars]
    ansible_python_interpreter=/usr/local/bin/python3.7
    ansible_perl_interpreter=/usr/local/bin/perl5
    #ansible_shell_type=csh

    V playbooku pro provedeni aktualizace balicku je nekolik tasku, jednim z nich je provedeni "pkg upgrade", jenze to ted spusti i aktualizaci Pythonu z 3.7 na 3.9, takze pro nasledujici task uz neni k dispozici ten definovany interpreter python3.7, takze nasledujici task v tom playbooku selze a je po legraci.

    Pro stroje, ktere uz touhle aktualizaci prosly, mam pak dalsi skupinu
    [py39host:vars]
    ansible_python_interpreter=/usr/local/bin/python3.9
    ansible_perl_interpreter=/usr/local/bin/perl5
    Takze dalsi spusteni nejakeho playbooku uz funguje zase normalne, kdyz do te skupiny pridam ty prave zaktualizovane stroje.

    Je to tak trochu "vejce nebo slepice" problem.
    A jak to elegantne resit?
    Napada me, ze pro tenhle pripad, kdy dochazi ke zmene verze Pythonu, budu muset mit jiny playbook, ktery uz nebude mit zadny dalsi task po provedeni "pkg ugprade" a k nemu dalsi playbook, ktery spustim az po tom upgrade a uprave hosts (ale ztraci to tu eleganci toho, ze playbook bude fungovat vzdy a sam - takhle ja budu muset predem "tusit", ze dochazi ke zmene verze Pythonu v repozitari balicku)

    Nebo by slo detekovat tuhle zmenu pred jejim provedenim, po provedeni pkg upgrade provest zmenu v lokalnim hosts file dalsim taskem stejneho playbooku a pak pokracovat s dalsimi tasky s jinym interpreterem (da se tahle zmena ansible_python_interpreter provest a reflektovat uprostred nejakeho playbooku?)? Ale cele mi to prijde takove nejake neelegantni, navic kdyz je to neco, co se provede treba jednou za dva roky.
    CHOROBA
    CHOROBA --- ---
    INDIAN: od nejakyho preposledniho? upgrade ansible z oficial repository mi prestal funkovat jumphost.
    proste uplne ignoruje "-o " variables. netusim proc, ale zas me to nejak akutne netrapi, tak sem se v tom vic nehrabal
    VESNACH
    VESNACH --- ---
    tak zkusim dalsi a predesilam, ze jsem na ansible uplna lama...

    mam tenhle playbook

    Ansible apt update all packages on Ubuntu / Debian Linux - nixCraft
    Ansible apt update all packages on Ubuntu / Debian Linux - nixCraft
    https://www.cyberciti.biz/faq/ansible-apt-update-all-packages-on-ubuntu-debian-linux/

    ten jsem dal do /ansible/roles/updates/tasks/ubuntu.yml

    a chci tim aktualizovat skupiny [ubuntu_20] [ubuntu_18] [debian_10] co mam definovane v /ansible/hosts

    melo by stacit upravit hosts v playbooku na

    hosts: ubuntu_20:ubuntu_18:debian_10

    jestli jsem to pochopil korekt a pokud budu chtit aktualizovat centos, vytvorim si obdobne /ansible/roles/updates/tasks/centos.yml akorat pouziju yum modul, nebo to mam udelat jinak a lip?
    MAJA
    MAJA --- ---
    AQUARIUS: prošlo mi na posledním Debianu Buster, Ansible 2.9.19 ...
    AQUARIUS
    AQUARIUS --- ---
    MAJA: koukam, ze pouzivas ansible.builtin.package, to je ale syntaxe 2.10 a novejsi... v CentOSu najdes standardne spis 2.9 (EPEL) nebo 2.8 (RHEL), coz me privadi k otazce do plena: kdo jste uz zmigrovali na Ansible 2.10? Tim, ze 2.9 je porad jeste supportovana, se do toho zrovna moc nehrnu.
    RUDOLF
    RUDOLF --- ---
    MAJA: myslím že můžeš použít něco jako when {{ansible_distribution}} u tasků, kde se to mezi distrama líší. Ale na ansible jsem měsíce nešáh, tak už si to nepamatuji..
    MAJA
    MAJA --- ---
    CHOROBA: tomu jsem se chtěl vyhnout právě :-) A Ansible ansible.builtin.package mi dal naději ...
    Kliknutím sem můžete změnit nastavení reklam