Kā izmantot iespējamos mainīgos un velves

Kā ExpressVPN izmanto iespēju

Kā mēs pietiekami plaši izmantojam ExpressVPN

Mūsu izstrādes komandas strādā neatkarīgi, tas ir, komandai ir savs produkts visā tā dzīves ciklā. Šī izveidošana nozīmē, ka mūsu Saprotamā izpratne nāk no daudzu dažādu komandu komandām, nevis no centralizētas grupas, kas pārvalda Ansible..

Decentralizēts darbaspēks dod mūsu komandām daudz elastības un mobilitātes, bet arī izdara spiedienu uz indivīdiem, lai viņi daudz zinātu par daudziem rīkiem.

Lai būtu vieglāk dalīties zināšanās un pareizi izmantot rīkus, mēs esam nolēmuši standartizēt to, kā konfigurācijas pārvaldībai un servera darbībai izmantojam Ansible.

Šajā emuārā ir ietvertas mācības, kuras esam iemācījušies darboties mūsu mērogā, pārdomas par to, kā mēs strādājam, un kā mēs pārvaldām Ansible šādā kontekstā.

Iespējamā dokumentācija

Iesim tieši tajā! Iespējamā dokumentācija ļauj vērst dažas lietas, it īpaši, ja runa ir par visaptverošu dokumentāciju (piemēram, kā nokļūt no punkta A uz punktu Z?).

Daži jautājumi, ar kuriem mēs regulāri sastopamies, ir: “Kā darbojas mainīga prioritāte?” Un “Kā iederas Vable Vault?”

Abas problēmas ir ļoti labi dokumentētas neatkarīgi (šeit un šeit), un lapā Iespējamo mainīgo lielumi ir ļoti jauka sadaļa par tiešo prioritāti, taču šo problēmu krustošanās ir tikai īsa pieminēšana. Problēma ir tā, ka nav saiknes starp dokumentāciju par mainīgajiem un velvēm, radot iespaidu, ka lietotājam ir pienākums izdomāt, kā abi krustojas savā starpā.

Tāpēc šodien mēs mēģināsim aptvert mainīgo un velves krustojumu un labāko praksi.

Ko var izmantot Ansible Vault failos

Kopsavilkumā: Vault dokumentācijā teikts, ka jūs būtībā varat šifrēt visu, kas atrodas jūsu Mapē, mapē Vault, un Ansible mēģinās to “gudri” atšifrēt, kad vien spēlē iekļauti šie faili. Huh. Forši!

Dokumentācijā par mainīgajiem lielumiem vispār nav pieminēts Vault faili, kas ir savādi, jo Vault bija paredzēts mainīgo failiem. Tātad, kā viņi sader kopā? Ir svarīgi to atzīmēt Paši velvju failiem nav īpašas nozīmes mainīgo apstrādei vai prioritātei, tāpēc ir daudz elastības. Bet, iespējams, tas neatstāj jums pietiekami daudz informācijas par tā pareizu lietošanu.

Kā nelietotJūs darāt to nepareizi.

Paņemiet šo vienkāršās mapes Ansible piemēru:

.
├── grupas_vari
│ ├── visi
│ ├── ražošana
│ └── iestudējums
├── ansible.cfg
├── inventārs
└── playbook.yml

No pirmā acu uzmetiena šī iestatīšana izskatās laba; šī būtu samērā izplatīta struktūra, kas jāizgatavo, ja lasāt dokumentāciju. Novērotājs varētu potenciāli pieņemt, ka iestudēšanas un producēšanas faili grupā_vars ir velves, taču tā nebūt nav taisnība, kas pati par sevi ir problēma.

Tagad fails “all” nevar būt Vault fails, jo jūs (cerams) šifrējāt iestudēšanas un ražošanas velvju failus ar dažādām parolēm. Bet tas arī nozīmē, ka jūsu grupas_vars videi saturā ir jāietver noslēpumi un neslēpumi, jo jums ir jāierobežo viens fails vienā vidē.

Šī iemesla dēļ – un, ja jūs nedaudz ekstrapolējāt, lasot ievainojamās dokumentācijas velves, – iespējams, izveidojāt ražošanas / inscenēšanas velves, sākotnēji nokopējot “visu” saturu un pēc tam tos modificējot..

Tas nozīmē, ka fails “visi” var izskatīties šādi:

datu bāze:
lietotājvārds: noklusējuma_lietotājs
parole: nepatiesa

super_important_var_that_should_be_one: 1

Un jūsu produkcijas glabātuves fails varētu izskatīties šādi:

datu bāze:
lietotājvārds: produser
parole: supersecretpasswordnoonecansee

super_important_var_that_should_be_one: 1

(Neuztraucieties, tā nav mūsu faktiskā ražošanas parole! Mēs vēlreiz pārbaudījām.)

Iepriekš minētais ir bīstams tādu iemeslu dēļ, kas var nebūt acīmredzami. Piemēram, jūs varat palaist garām ražošanas noklusējuma mainīšanu, un / vai failu “visi” var pat nosaukt par nepareizu un vispār neiekļaut! (Tas ir galvenais pagājušajā nedēļā piedzīvotā pārtraukuma iemesls.)

Labākā prakse: Kā droši izmantot Ansible Vault failus

Kā teikts paraugprakses lapā, faila pārveidošana par glabātuvi aizēno faila saturu, tāpēc tiem ir liels trūkums: Jūs nevarat meklēt, kādi mainīgie atrodas Vault failā, tos tieši neatšifrējot. Šī sistēma nozīmē, ka ikvienam, kurš skata jūsu iespējamo konfigurāciju, nav ne mazākās nojausmas, kas atrodas šajos failos, nezinot arī Vault paroli (briesmīgi kodu pārskatiem!). Tāpēc Vault failos mēs iesakām ievietot pēc iespējas mazāk mainīgo. (Citiem vārdiem sakot, glabājiet noslēpumus tikai Vault failos!)

Apskatīsim struktūru, kas ļautu vieglāk nešaut sev pa pēdām:

.
├── grupas_vari
│ ├── visi
│ │ └── vars.yml
│ ├── ražošana
│ │ ├── vars.yml
│ │ └── velve.yml
│ └── iestudējums
│ └── velve.siml
├── ansible.cfg
├── inventārs
└── playbook.yml

Labākās prakses dokumentācijā arī ieteikts izmantot “nejaušības slāni”, kas nozīmē, ka visos Vault faila mainīgajos veidnēs jāmaina, ka mainīgajos ir atsauces uz jūsu playbooks. Tas arī iesaka prefiksēt savus velvju mainīgos ar “vault_”, kas nozīmē, ka viss / vars.yml varētu izskatīties šādi:

datu bāze:
lietotājvārds: noklusējuma_lietotājs
parole: “{{vault_database_password}}”

super_important_var_that_should_be_one: 1

Jūsu produkcija / vars.yml izskatās apmēram šādi:

datu bāze:
lietotājvārds: produser

Un jūsu ražošanas / vault.yml failā vajadzētu būt tikai šim:

vault_database_password: supersecretpasswordnoonecansee

Šai pārskatītajai struktūrai ir dažas priekšrocības. Pirmkārt, ja jūs veicat koda pārskatīšanu (lūdzu, dariet!), Tas nozīmē, ka recenzenti var redzēt, ko esat mainījis, kā arī to, ko esat pievienojis un noņēmis (gandrīz visā) jūsu konfigurācijā. Izmantojot šo struktūru, recenzenti ne tikai redzēs pilnīgas faila izmaiņas Vaultā, kas manuāli jāatšifrē, jāsaglabā diskā un jāizkliedē ar iepriekšējo versiju..

Un, kas ir vēl svarīgāk, Ansible neizdosies pat renderēt, ja tajā trūks vault_database_password Mainīgs glabātuvē, kas ietaupīs jūs no vismaz mazāk problēmu, ar kurām jūs varētu saskarties, ja nesaglabājat aizvērtas cilnes savos velvju failos..

Ja jūs pieturēsities pie šī modeļa, neatkarīgi no tā, vai tā ir resursdatoru grupa vidē, pilna vide, kurai iestatāt mainīgos, vai pat mape “visi”, jūsu vienaudži nekad netiks sajaukti par to, kas atrodas un atrodas velve.

Tas ir viss pagaidām, mēs ceram, ka tas jums kaut kā noderēja!

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me