= Bästa bara metal-provisioneringsverktyg för Dell-servrar? = ![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png) Jag letar efter ett verktyg för att hitta barmetall. I grund och botten behöver jag en bild som jag kan nätverksstarta (PXE/Bios eller UEFI) som kan upptäcka alla komponenter i servern (CPU/diskar/minne/NIC-modeller/etc), firmwareversioner, vilka switchportar allt är uppkopplat till via LLDP , och rapportera allt det tillbaka till något slags inventeringsverktyg som har ett API. Dessa är alla Dell-servrar med en iDRAC-licens för företag, men stöd från flera leverantörer är ett plus. När jag har alla dessa data vill jag bygga lite automatisering så att jag kan säga att bygga en server med den här profilen och den kommer att fråga API:et för en server som uppfyller dessa specifikationer och sedan gå och ställa in bios-alternativen, RAID, konfigurera byta portar (i en portkanal), lägg till en post för en PXE-installation (vi använder för närvarande skomakare, men öppna för alternativ), sedan PXE-start för att installera OS/önskad konfiguration. Det skulle nästan säkert vara Ansible-baserat. Det finns flera öppna källkodsverktyg för bara metall där ute men jag har inte haft någon erfarenhet av något av dem förutom en liten Foreman som verkade vara en enorm ansträngning för att integrera med vår befintliga marionettinfrastruktur och andra befintliga verktyg. Kan någon av dem göra som jag vill, eller ett något modifierat arbetsflöde som kan uppnå samma slutresultat? LLDP-information är kritisk eftersom vi för närvarande förlitar oss på att registrera det manuellt i vårt inventeringsverktyg när vi rackar ny utrustning (före OS-installationen, då rapporteras det automatiskt om OS-installationen stöder det) och att manuellt inspelad data alltför ofta är fel /missing och vi måste leta efter det på switchen för att ta reda på var saker faktiskt är kablage. Jag har funderat på att bara bygga en levande bild som kan göra vad vi vill, vi har redan ett inventeringsverktyg som vi kan använda för att rapportera till, men det kanske bara är extraarbete från vår sida som kan undvikas med ett befintligt verktyg. ![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png) Du kanske tittar på Digital Rebar. Det startades som ett internt Dell-projekt och delades senare ut som ett eget företag. Suses OpenStack-provisioner är baserad på 1.0-versionen, med 2.0-grenen generaliserade de mer. Så det är inte bara ett OpenStack-projekt nu. httpsrebar.digital Jag skulle starkt rekommendera Digital Rebar (httpsrebar.digital). Den gör precis vad du letar efter. Designad för att integrera alla provisioneringsprotokoll i en enda statiskt kompilerad Golang-binär (ingen mardrömsinstallation av ett dussin externa tjänster för att få saker att fungera). Den stöder komponerbara (anpassningsbara) arbetsflöden, har integrerade komponenter för inventering, klassificering och validering. Inventering kan skyfflas ut till externa SoR (system-of-record, asset mgmt dbs, etc och det är 100% API först, med en mycket stark CLI, och utmärkt webbportal. OS-installationer kan göras via kickstart/preseed PXE-baserad eller via enstaka artefaktbilder. Den har också fullständig hantering av hårdvarans livscykel (BIOS, Firmware, RAID-kontroller). Du kan välja att använda steg-/stegarbetsflöden för att åstadkomma allt, eller så kan du bygga ett komplett automationsarbetsflöde med noll beröring om du vet hur du vill klassificera dina maskiner. Tinkerbell är inte ett komplett automationskapabelt verktyg - skulle INTE föreslå det; och för att få ut något användbart behöver du fyra separata och distinkta mikrotjänster, mer integration och hanteringssvårigheter. Foreman syftar till rent provisionering, och det kräver att man installerar massor av externa tjänster för att faktiskt göra något användbart. Den är skör och skör. MaaS är också starkt fokuserat på provisionering och är starkast om du bara är Ubuntu-butik - det är dock inte exklusivt för Ubuntu. Digital Rebar är en Infrastructure Automation-plattform, designad som en modern tjänst med kompletta datacenterlivscykelhanteringsfunktioner i åtanke. Det fäster inte på integrationer på sidan som de flesta av de befintliga verktygen - att integrera med dina verktyg och infrastruktur är kärnan i designen. Hårdvarulivscykelhantering har sina egna krav, och återigen designades den från grunden för att stödja heterogena system och komplexa infrastrukturmiljöer. [EDIT] - Digital Rebar stöder LLDP-fråga som en del av inventeringsstadierna, så att du kan bestämma switch och portar som dina servrar är anslutna till. Det finns djupt stöd för Dell-hårdvara för fullständig livscykelhantering, såväl som annan leverantörshårdvara. Vi använder Digital Rebar och gillar det, teamet bakom det är väldigt lyhört i Slack och deras prissättning är rimlig om du går åt det hållet. Vi gillar bara att jobba med dem. Den har lite på en inlärningskurva men är supersmidig. Plus att de har öppna källor mycket av koden som är super hjälpsam när man försöker felsöka saker. Jag hade ganska bra körning med Puppet/Foreman tidigare, men det var visserligen inte jag som tog det upp och körde. För närvarande håller jag på att bli ett fan av MAAS (httpsmaas.io). Om du är i Ubuntu-butiken, ge det definitivt ett försök. Foreman är överlag ganska cool, du kan använda foreman discovery-plugin för att uppnå det du letar efter. Du kan göra lite automatisering Men heliga ko är det en kunglig smärta i installationen Jag tror att jag stötte på alla möjliga problem. Jag var tvungen att göra en offlineinstallation och konfiguration som komplicerade saker och ting mer och arbetade med servrar som jag inte kunde komma åt fysiskt. Min syn på det är ett coolt verktyg, om du verkligen behöver använda det och har budgeten med Redhat Satellite med support (föreman är communityversionen av Satellite). MaaS såg dock lovande ut men jag lekte inte med det (även jag automatiserade CentOS/RHEL-installationer) Jag använder de inbyggda Redfish API:erna i iDRAC. De flesta företagsleverantörer exponerar redan Redfish från förvaltningsplanet. Dell har en inofficiell github-repo med en samling användbara Python-skript för att åstadkomma i stort sett allt för provisionering. Jag använder dessa skript tillsammans med Ansible för att tillhandahålla bare metal. httpsgithub.com/dell/iDRAC-Redfish-Scripting Det är viktigt att notera att inte alla leverantörer stöder Redfish lika. Vi har mycket erfarenhet av smärtan i miljöer med flera leverantörer. Olika leverantörer BMC (baseboard management controllers) (t.ex. iDRAC) stöder olika versioner av Redfish-protokollen, och vissa implementerar saker på olika sätt. Om du är en enskild leverantörsbutik kan den här strategin fungera, men om du introducerar en annan leverantör, eller en nyare version av BMC (eller Firmware-uppgradering), som ändrar Redfish-stödet/beteenden, måste du justera ditt verktyg därefter. Du kan också anpassa operativsystemet genom svårhanterliga processer - eftersom du inte har några verktyg i operativsystemet - om du inte "bränner"in det i dina ISO-bilder. Om du funderar på att ersätta det befintliga rapporterings-/hanteringsplanet och hoppa direkt till hypervisor OS-installationen, finns det alltid httpsdocs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.install.doc/GUID- 8C221180-8B56-4E07-88BE-789B25BA372A.html