Cdist - Cdist
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
![]() | |
Původní autoři | Nico Schottelius, Steven Armstrong[1] |
---|---|
První vydání | 2010 |
Stabilní uvolnění | 5.0.0 / 5. května 2019 |
Úložiště | ![]() |
Napsáno | Krajta, Bourneova skořápka |
Operační systém | Linux, Unixový |
Typ | správa konfigurace softwaru |
Licence | GNU General Public License verze 3 nebo novější |
webová stránka | www |
cdist je volný, uvolnit správa konfigurace softwaru nástroj pro Unixový systémy. Spravuje touzly přes SSH za použití Bourne Shell, a nevyžaduje instalaci žádného dalšího softwaru na cílové uzly.
Cdist se odlišuje od konkurenčních systémů pro správu konfigurací výběrem Bourne Shell jako primárního jazyka pro psaní konfiguračních skriptů a nevyžaduje v podstatě žádné závislosti na cílových uzlech. Ačkoli je jádro cdist napsáno Krajta, tlumočník je vyžadován pouze na hostitelském počítači, nikoli na cílových uzlech.
Rozvoj
vývoj cdist byl zahájen v roce 2010 v ETH Curych a je aktivně vyvíjen[2] a udržují jej primárně Nico Schottelius a Steven Armstrong.[3]Hlavní část diskuse o cdist se odehrává na seznamu adresátů[4]a na IRC kanálu #cstar v Freenode síť. cdist se používá v různých společnostech ve Švýcarsku (např ETH Curych[5] a projekt OMA Browser),[6] USA, Německo a Francie.
Funkce
cdist je systém správy konfigurace s nulovou závislostí: Vyžaduje pouze ssh a bourne kompatibilní shell na cílových hostitelích, které jsou standardně poskytovány na většině Unixový stroje.[7] Z tohoto důvodu lze cdist použít k zavedení jiných systémů pro správu konfigurace.[8]
Instalace a konfigurace
cdist není obvykle nainstalován jako balíček (jako .deb nebo .rpm), ale spíše prostřednictvím sakra Všechny příkazy se spouští z vytvořené pokladny. Vstupním bodem pro libovolnou konfiguraci je shell skript conf / manifest / init, který se v cdist nazývá počáteční manifest.[9]
Hlavní součásti cdist jsou takzvané typy, které sdružují funkčnost.[10]Typy se v zásadě skládají z několika skriptů prostředí, které definují, jaké typy se používají a jaký kód se generuje, aby se provedl na cílovém hostiteli.
Architektura
cdist je rozdělen do dvou složek:
- Jádro
- Konfigurační skripty
Jádro
Cdist jádro zpracovává čtení konfigurace a komunikaci se vzdálenými hostiteli. Stejně jako Ansible, cdist používá model „push“ k použití změn konfigurace: Proces cdist na „hostitelském“ počítači se připojuje k libovolnému počtu vzdálených uzlů přes SSH a poté provádí aktualizace konfigurace na těchto uzlech. Cdist může konfigurovat více hostitelů paralelně, aby zkrátil čas strávený konfigurací.[11]
Konfigurace
Konfigurační skripty definují způsob konfigurace cílů. Obvykle jsou napsány Bourne Shell a skládá se z
- Počáteční manifest, an Vstupní bod kde začíná veškerá konfigurace. Tento skript obvykle používá informace o cílovém uzlu, například jeho název hostitele a operační systém, k volání dalších, konkrétnějších skriptů, které provádějí skutečnou konfiguraci.
- Globální průzkumníci, malé skripty, které získávají informace o cílovém systému (jako je operační systém, systém init a název hostitele)
- Typy, které popisují opakovaně použitelné bloky konfigurace. Typy jsou vytvořeny v manifestech a jsou jediným způsobem, jak skutečně spustit kód na cílových počítačích. Název „typ“ je míněn jako analogický s „třídou“ v objektově orientovaném jazyce, protože typ může být změněn na více „objektů“ v závislosti na tom, jaké parametry jsou mu předány.[12] Například
__soubor
typ lze přeměnit na několik „objektů“, z nichž každý představuje vytvoření určitého souboru. „Role“ Ansible jsou ekvivalentem typů cdist. Typy mohou mít mnoho komponent:- ID objektu: Když se typ změní na objekt, předá se mu jedinečné ID objektu. Stejný typ nelze vytvořit instanci dvakrát se stejným ID. Toto ID není náhodné jako UUID, ale spíše jde o jedinečný identifikátor, který má ve vztahu k typu smysl. Například
__soubor
ID typu je absolutní cesta k souboru. - Parametry: Mnoho typů nelze plně popsat ID objektu a vezměte další informace ve formě parametrů. The
__soubor
typ trvá askupina
parametr, který určuje, které skupině Unix by měl soubor patřit. - Průzkumníci: Kromě globálních průzkumníků popsaných výše mají typy někdy své vlastní průzkumníky, které shromažďují informace specifické pro daný typ ze vzdáleného počítače. The
__soubor
type používá průzkumníky k určení, zda vytvářený soubor již existuje. Tyto informace někdy používá k přeskočení vytvoření souboru. - Manifest: Manifest typu může vytvořit instanci jiných typů, což usnadňuje opětovné použití kódu.
- Skripty Gencode: The
gencode-remote
skript je hlavní způsob, jak skutečně aktualizovat konfiguraci cílových uzlů.gencode-remote
běží na místním počítači, ale jeho standardní výstup je odeslán na vzdálený počítač a spuštěn jako shell skript. Existuje také méně často používanýgencode-local
skript, jehož výstupem je kód, který se má spustit lokálně.
- ID objektu: Když se typ změní na objekt, předá se mu jedinečné ID objektu. Stejný typ nelze vytvořit instanci dvakrát se stejným ID. Toto ID není náhodné jako UUID, ale spíše jde o jedinečný identifikátor, který má ve vztahu k typu smysl. Například
Shell je de facto jazyk pro psaní konfiguračních skriptů cdist, ale většina skriptů může být napsána v jakémkoli jazyce, pokud obsahují vhodný čára shebang. Shell skriptování je upřednostňováno kvůli tomu, jak jednoduchý je přístup k proměnným prostředí, čtení souborů a provádění systémových příkazů.
Konfigurační jazyk
Všechny uživatelem konfigurovatelné části jsou obsaženy v manifestech nebo skriptech gencode, což jsou skripty prostředí. Byly vybrány skripty prostředí, protože administrátoři systému Unix jsou obvykle schopni číst a psát prostředí skriptů. Kromě toho je shell také běžně dostupný na potenciálních cílových systémech, čímž se zabrání nutnosti instalovat tam další software („nulové závislosti“).
cdist načte svou konfiguraci z počátečního manifestu (conf / manifest / init), ve kterém jsou hostitelé mapováni na typy:
případ "$ __ target_host" ve jménu méhohostitele) __package zsh --state present __addifnosuchline / tmp / cdist-welcome --line „Vítejte v cdist“ ;;esac
Při použití typů v cdist se nazývají jako normální programy v manifestech a mohou využívat pokročilé parsování parametrů i čtení ze stdin:
# Poskytněte výchozí soubor, ale nechte jej změnit__file /home/frodo/.bashrc - zdroj „/etc/skel/.bashrc“ \ --stát existuje \ - majitel Frodo - režim 0600# Vezměte obsah souboru ze stdin__file / tmp / cokoli - kořen vlastníka - kořen skupiny - režim 644 --zdroj - << HOTOVOTady jde obsah pro / tmp / cokoliHOTOVO
Závislosti jsou vyjádřeny nastavením vyžadovat proměnná prostředí:
__adresář / tmp / foobar require = "__ adresář // tmp / foobar" __soubor / tmp / foobar / baz
Přístup k cestám a souborům v rámci typů je dán proměnnými prostředí jako $ __ objekt.
Podobný software
Možné, stejně jako cdist, používá ke konfiguraci uzlů push model bez agenta.[7] Ansible však obvykle vyžaduje Krajta na svých cílech, zatímco cdist ne.[13] Ansible rozlišuje mezi rolemi napsanými v deklarativním jazyce založeném na YAML a moduly napsanými v Pythonu. Cdist má pouze „typy“, které slouží účelům modulů i rolí a jsou většinou psány v Bourne Shell. Přístup Cdist může být výhodnější, protože Shell je známý mnoha správcům systému, kteří nikdy předtím nepoužívali systém správy konfigurace, ale deklarativní jazyk Ansible je pravděpodobně čitelnější a vhodnější.
Reference
- ^ Sharma, Rishabh; Soni, Mitesh (15. března 2015). Learning Chef. Packt. 10, 17–18. ISBN 978-1783285211.
- ^ [1][mrtvý odkaz ]
- ^ "ungleich / cdist: správa konfigurace cdist". GitHub.com. Archivováno z původního dne 2015-07-05. Citováno 2016-04-10.
- ^ „Archivovaná kopie“. Archivovány od originál 21. listopadu 2011. Citováno 6. června 2012.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ „Archivovaná kopie“. Archivovány od originál dne 15.01.2013. Citováno 2012-06-08.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ „Archivovaná kopie“. Archivovány od originál dne 17. srpna 2012. Citováno 26. června 2012.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ A b Torberntsson, Kim; Rydin, Ylva (červen 2014). Studie správy konfigurace - systémová řešení pro nasazení a konfiguraci softwaru v cloudovém prostředí (PDF) (Teze). Univerzita v Uppsale. 8, 27, 31, 42. Archivováno (PDF) z původního dne 22. listopadu 2018.
- ^ „Skupiny Google“. Groups.google.com. Citováno 2016-04-10.
- ^ Kruse, Christian (2016). "Automatické nasazení konfigurace s cdist". WWWTech. Archivováno z původního dne 22. listopadu 2018. Citováno 22. listopadu 2018.
- ^ "cdist-type (7)". Nico.schottelius.org. Archivovány od originál dne 03.03.2016. Citováno 2016-04-10.
- ^ Bezroukov, Nikolai. "cdist". Softpanorama. Archivováno z původního dne 8. července 2017. Citováno 22. listopadu 2018.
- ^ "13. Manifest - dokumentace cdist 4.10.6-6-g61ac4a26". www.nico.schottelius.org. Citováno 2019-03-26.
- ^ "Instalační průvodce". Možné. Požadavky na spravovaný uzel. Archivováno z původního dne 2018-08-04. Citováno 22. listopadu 2018.