Ako používať možné premenné a úschovne

[ware_item id=33][/ware_item]

Ako ExpressVPN využíva možné


Ako vo veľkej miere využívame možnosť na ExpressVPN

Naše vývojové tímy pracujú nezávisle, to znamená, že tím vlastní svoj produkt počas celého svojho životného cyklu. Toto nastavenie znamená, že naše možné porozumenie vychádza zo súboru poznatkov od mnohých rôznych tímov v spoločnosti, a nie od centralizovanej skupiny, ktorá riadi možné.

Decentralizovaná pracovná sila poskytuje našim tímom flexibilitu a mobilitu, ale tiež vytvára tlak na jednotlivcov, aby sa dozvedeli veľa informácií o mnohých nástrojoch.

Aby sme uľahčili zdieľanie znalostí a správne používanie nástrojov, rozhodli sme sa štandardizovať spôsob, akým používame možnosť Spravovať konfigurácie a operácie servera..

Tento blog sa venuje ponaučeniam, ktoré sme sa naučili pracovať v našom rozsahu, úvahám o tom, ako pracujeme a ako sa nám v takomto kontexte darí..

Možná dokumentácia

Poďme priamo do toho! Dokumentácia pre Ansible ponecháva niektoré veci potrebné, najmä pokiaľ ide o dokumentáciu end-to-end (napríklad, ako sa dostanete z bodu A do bodu Z?).

Niekoľko otázok, s ktorými sa pravidelne stretávame, sú: „Ako funguje premenlivá priorita?“ A „Ako zapadá možnosť Prípadný trezor?“

Obidva problémy sú zdokumentované veľmi dobre (tu a tu) a stránka Možné premenné má veľmi peknú sekciu o jednoznačnosti, ale jej priesečník sa dostane iba stručnou zmienkou. Problém je v tom, že neexistujú žiadne prepojenia medzi dokumentáciou o premenných a trezoroch, čo vyvoláva dojem, že je na užívateľovi zistiť, ako sa tieto dve križovatky navzájom.

Preto sa dnes pokúsime pokryť priesečník medzi premennými a trezormi a osvedčenými postupmi.

Na čo môžete použiť súbory služby Možné trezory

V súhrne: Dokumentácia úschovne uvádza, že v podstate môžete šifrovať čokoľvek v priečinku Možné do súboru úschovne, a Ansible sa ho pokúsi „šikovne“ dešifrovať vždy, keď do hry budú tieto súbory zahrnuté. Huh. chladný!

Dokumentácia o premenných sa vôbec nezmieňuje o súboroch úschovne, čo je zvláštne, pretože bol určený pre súbory premenných. Ako sa teda zmestia? Je dôležité si uvedomiť, že Samotné súbory úschovne nemajú žiadny osobitný význam pre spracovanie premenných alebo prednosť, takže existuje veľká flexibilita. Ale potenciálne vám to nezostane dostatok informácií o tom, ako ich správne používať.

Ako sa nepoužívaRobíš to zle.

Zoberme si tento príklad jednoduchého priečinka Možné:

.
├── group_vars
│ ├── všetky
├── ├── výroba
└── └── inscenovanie
├── ansible.cfg
├── inventár
└── playbook.yml

Na prvý pohľad vyzerá toto nastavenie dobre; ak by ste si prečítali túto dokumentáciu, vytvorila by sa relatívne bežná štruktúra. Pozorovateľ by mohol predpokladať, že súbory inscenácie a produkcie v skupinách group_vars sú Vaulty, ale nemusí to nevyhnutne byť pravda, čo samo osebe predstavuje problém..

Teraz súbor „všetko“ nemôže byť súborom úschovne, pretože ste (dúfajme) šifrovali súbory pracovnej a produkčnej úschovne rôznymi heslami. Znamená to tiež, že váš súbor group_vars pre prostredia musí obsahovať kombináciu tajomstiev a tajomstiev, pretože ste obmedzení na jeden súbor v prostredí.

Z tohto dôvodu - a ak ste extrapolovali trochu po prečítaní intro do trezorov v dokumentácii k pravdepodobnému) - pravdepodobne ste vytvorili produkčné / inscenované trezorové sály tak, že najskôr skopírujete obsah „všetkých“ a potom ich upravíte..

To znamená, že váš súbor „všetko“ môže vyzerať takto:

databázy:
username: default_user
heslo: nepravdivé

super_important_var_that_should_be_one: 1

A váš súbor úschovne môže vyzerať takto:

databázy:
užívateľské meno: produser
heslo: supersecretpasswordnoonecansee

super_important_var_that_should_be_one: 1

(Nerobte si starosti, toto nie je naše skutočné výrobné heslo! Dvakrát sme skontrolovali.)

Vyššie uvedené je nebezpečné z dôvodov, ktoré nemusia byť zrejmé. Napríklad vám môže chýbať zmena predvoleného nastavenia pre výrobu a / alebo váš „všetok“ súbor môže byť dokonca pomenovaný nesprávne a nemusí byť zahrnutý vôbec! (Toto je hlavná príčina výpadku, ktorý sme mali minulý týždeň.)

Osvedčený postup: Ako bezpečne používať súbory možného trezoru

Ako sa uvádza na stránke s najlepšími postupmi, vytvorenie súboru do súboru v trezore zakrýva obsah súboru, takže prichádza s veľkou nevýhodou: Bez výslovného dešifrovania nie je možné vyhľadať, ktoré premenné sú v súbore trezora. Tento systém znamená, že ktokoľvek sa pozerá na vašu možnú konfiguráciu, nemá tušenie, čo sa nachádza v týchto súboroch, bez toho, aby poznal heslo úschovne (hrozné pre kontrolu kódu!). Preto odporúčame do súborov úschovne vložiť čo najmenej ľudských premenných. (Inými slovami, do súborov úschovne vkladajte iba tajomstvá!)

Pozrime sa na štruktúru, ktorá by uľahčila, aby ste sa nestrelili do nohy:

.
├── group_vars
│ ├── všetky
│ │ └── vars.yml
├── ├── výroba
│ │ ├── vars.yml
│ │ └── vault.yml
└── └── inscenovanie
│ └── vault.yml
├── ansible.cfg
├── inventár
└── playbook.yml

V dokumentácii o osvedčených postupoch sa tiež odporúča použiť „vrstvu presmerovania“, čo znamená, že by ste mali vo všetkých premenných v súbore úschovne umiestniť šablóny do premenných, na ktoré sa odkazuje vo vašich príručkách. Odporúča tiež, aby ste predponu premenných úschovne zadali predponu „vault_“, čo znamená, že by váš all / vars.yml mohol vyzerať takto:

databázy:
username: default_user
heslo: „{{vault_database_password}}“

super_important_var_that_should_be_one: 1

Vaša produkcia / vars.yml vyzerá asi takto:

databázy:
užívateľské meno: produser

A váš súbor production / vault.yml by mal obsahovať iba toto:

vault_database_password: supersecretpasswordnoonecansee

Táto revidovaná štruktúra má niekoľko výhod. Po prvé, ak vykonávate kontrolu kódu (urobte to!), Znamená to, že vaši recenzenti môžu vidieť, čo ste zmenili, spolu s tým, čo ste pridali a odstránili (takmer všetky) z vašej konfigurácie. S touto štruktúrou sa recenzentom v úložisku nezobrazí iba úplná zmena súboru, ktorú je potrebné manuálne dešifrovať, uložiť na disk a rozlíšiť od staršej verzie..

A čo je dôležitejšie, Ansible zlyhá ani pri vykreslení varov, ak chýba vault_database_password Premenná v trezore, ktorá vás ušetrí od najmenej problémov, s ktorými by ste sa mohli stretnúť, ak si v súboroch trezora neponecháte blízke karty..

Ak sa budete držať tohto vzoru, bez ohľadu na to, či je to hostiteľská skupina v prostredí, úplné prostredie, pre ktoré nastavujete premenné, alebo dokonca priečinok „všetko“, vaši rovesníci sa nikdy nebudú zamieňať s tým, čo je a nie je v ňom. trezor.

Dúfame, že to pre vás bolo nejako užitočné!

Ako používať možné premenné a úschovne
admin Author
Sorry! The Author has not filled his profile.