Ansible - instalace balíčku a problém s uživatelem

Ansible - instalace balíčku a problém s uživatelem
« kdy: 15. 04. 2020, 09:10:53 »
Ahoj,

mam tu neustale problem slepice a vejce. Chci nainstalovat postgresql server balicek, samo o sobe to neni problem. Pri instalaci to vytvori /var/lib/postgresql s postgres:postgres pravy. Chci na /var/lib/postgresql mapovat jiny disk. Takze pri spusteni yml se mi vytvori/namountuje disk. A zde je ten problem.

- pokud spustim instalaci postgresql pred pripojenim disku, budu mit na disku nejakou strukturu (zabirajici misto)
- pokud nejdrive namountuji disk, nemuzu mu nastavit uzivatele, nebot jeste neexistuje

Koukal jsem do ruznych yml, ale v zadnem se tohle neresilo. Je mi jasne, ze muzu vytvorit uzivatele/adresare predem. Ale rad bych vytvoril uzivatele (popr. i adresar) primo z balicku, abych nemusel hlidat zmeny. Chtel bych neco jako "apt install postgresql --only-user"

Jde to vubec nejak?
« Poslední změna: 15. 04. 2020, 09:38:06 od Petr Krčmář »


Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #1 kdy: 16. 04. 2020, 09:29:24 »
Ve when: kontroluj, jestli uz mas nainstalovany postgres (ansible_fact.packages).

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #2 kdy: 16. 04. 2020, 15:59:49 »
Skúsil by som toho užívateľa vytvoriť jedným krokom a potom nainštalovať ten softvér v inom kroku. Tipol by som si, že to bude bez problémov fungovať - ak apt skript zistí, že užívateľ už existuje, tak ho použije.

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #3 kdy: 17. 04. 2020, 12:25:59 »
No to je prave vse ten problem. Co jsem se dival, tak systemove je postgres vzdy uid:112, ale guid je ruzny.

Takze kdyz mam role:
- mounts - mountuje disky
- postgresql - instaluje postgresql
- common - default system

Roli mounts potrebuji pro vice sluzeb. Takze pokud ji zavolam z common, aby pripojil vsechny disky (mountpointy v host_vars), uzivatele nemam. Defacto je ani v tu chvili neznam - musel bych je taky uvest v host_vars.
Pokud roli mounts zavolam z postgresql pred instalalci, tak mi zkusi namountovat treba i disky pro nfs. Opet problem  (nfs sluzba jeste nemusi byt nainstalovana). Takze varianta, ze bych nastavil uid:gid pri mountovani a instalace postgresql by na to vytvorila uzivatele taky pada, protoze guid neni stabilni.

Vsak kruci, nejak rozumne to musi byt resitelne, neni prece kazdy server bez extra mountu pro dane sluzby...Jestli je jedina cesta mit nadefinovaneho kazdeho uzivatele kvuli tem mountpointum (tedy vytvareni je mimo pkg installaci), tak je to smula...

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #4 kdy: 17. 04. 2020, 16:11:41 »
No a co proste nahulvata namountovat se zapisem pro everyone, pak nechat nainstalovat PG vcetve vytvoreni usera, pak nastavit prava mountpointu jak maji byt?

Nehledal bych v tom vedu.


Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #5 kdy: 17. 04. 2020, 16:49:19 »
jj, řešil jsem to, prostě si disk namountuješ do jiného adresáře, nainstaluješ postgres, přesuneš data, a pak vytvoříš symlink popřípadě mount.

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #6 kdy: 20. 04. 2020, 08:35:18 »
jj, řešil jsem to, prostě si disk namountuješ do jiného adresáře, nainstaluješ postgres, přesuneš data, a pak vytvoříš symlink popřípadě mount.

Tu fazi od "presunes data" jsem delal rucne, toho se chci prave zbavit.

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #7 kdy: 20. 04. 2020, 08:36:55 »
jj, řešil jsem to, prostě si disk namountuješ do jiného adresáře, nainstaluješ postgres, přesuneš data, a pak vytvoříš symlink popřípadě mount.

Hm, mozne, ale ne hezke reseni. Pokud to neolivni prava v subdir/file, tak by to slo. Jen musi byt asi dobre podminky, nebot kdyz tu roli spustim opakovane, tak mit najednou root:root misto postgres:postgres neni to prave orechove, i kdyby to bylo na chvili...

Re:Ansible - instalace balíčku a problém s uživatelem
« Odpověď #8 kdy: 20. 04. 2020, 09:02:30 »
No to je prave vse ten problem. Co jsem se dival, tak systemove je postgres vzdy uid:112, ale guid je ruzny.
No ale to predsa nie je vobec problem. Ak je numericky guid vzdy rozny, tak ho aj ty v playbooku nechaj prazdny - doplni sa prvy volny rovnako ako no nastavi apt.

Stale som presvedceny o tom, ze ak vytvoris toho uzivatela (+ skupinu) a budu sa volat (name) rovnako ako by si ich vytvoril apt, tak to bude fungovat.