Marionet (software) - Puppet (software)
| Ontwikkelaar(s) | Marionet |
|---|---|
| Eerste uitgave | 2005 |
| Stabiele vrijlating | 7.10.0 / 16 augustus 2021
|
| Opslagplaats | |
| Geschreven in | C++ & Clojure vanaf 4.0, Ruby |
| Besturingssysteem | Linux , Unix-achtig , Microsoft Windows |
| Type | |
| Vergunning | Open Source Puppet: Apache voor > 2.7.0, GPL voor eerdere versies. Puppet Enterprise: propriëtair |
| Website | marionet |
Op het gebied van informatica is Puppet een hulpprogramma voor softwareconfiguratiebeheer dat zijn eigen declaratieve taal bevat om de systeemconfiguratie te beschrijven . Het is een modelgestuurde oplossing die beperkte programmeerkennis vereist om te gebruiken.
Puppet wordt geproduceerd door Puppet, Inc, opgericht door Luke Kanies in 2005. Het primaire product van Puppet, Puppet Enterprise, is een commercieel ondersteunde versie van het open-sourceproduct. De automatiseringssoftware van Puppet maakt gebruik van de declaratieve taal van Puppet om verschillende stadia van de levenscyclus van de IT-infrastructuur te beheren , waaronder de provisioning , patching , configuratie en beheer van besturingssysteem- en applicatiecomponenten in enterprise datacenters en cloudinfrastructuren .
Puppet gebruikt een open-core model ; de gratis-softwareversie werd uitgebracht onder versie 2 van de GNU General Public License (GPL) tot versie 2.7.0, en latere releases gebruiken de Apache-licentie , terwijl Puppet Enterprise een propriëtaire licentie gebruikt.
Puppet en Puppet Enterprise zijn gebouwd als platformonafhankelijke software en werken op meerdere Unix-achtige systemen (inclusief Linux en Solaris , BSD , Mac OS X , AIX , HP-UX ) en hebben ondersteuning voor Microsoft Windows . Puppet zelf is geschreven in Ruby , terwijl Facter is geschreven in C++ , en Puppet Server en Puppet DB zijn geschreven in Clojure .
Ontwerp
Puppet is ontworpen om de configuratie van Unix-achtige en Microsoft Windows- systemen declaratief te beheren . De gebruiker beschrijft systeembronnen en hun status, ofwel met behulp van de declaratieve taal van Puppet of een Ruby DSL ( domeinspecifieke taal ). Deze informatie wordt opgeslagen in bestanden die "Puppet manifests" worden genoemd. Puppet ontdekt de systeeminformatie via een hulpprogramma genaamd Facter, en compileert de Puppet-manifesten in een systeemspecifieke catalogus met bronnen en bronafhankelijkheid, die worden toegepast op de doelsystemen. Alle acties van Puppet worden vervolgens gerapporteerd.
Puppet bestaat uit een aangepaste declaratieve taal om de systeemconfiguratie te beschrijven, die ofwel rechtstreeks op het systeem kan worden toegepast, of in een catalogus kan worden gecompileerd en via een client-serverparadigma naar het doelsysteem kan worden gedistribueerd (met behulp van een REST API ), en de agent gebruikt systeem specifieke providers om de in de manifesten gespecificeerde resource af te dwingen. De resource-abstractielaag stelt beheerders in staat om de configuratie te beschrijven in termen op hoog niveau, zoals gebruikers, services en pakketten, zonder de noodzaak om OS-specifieke commando's op te geven (zoals rpm, yum, apt).
Puppet is modelgestuurd en vereist beperkte programmeerkennis om te gebruiken.
Puppet komt in twee versies, Puppet Enterprise en Open Source Puppet. Naast het bieden van functionaliteiten van Open Source Puppet, biedt Puppet Enterprise ook GUI- , API- en opdrachtregeltools voor knooppuntbeheer.
architectuur
Puppet volgt meestal de client-server- architectuur. De client staat bekend als een agent en de server staat bekend als de master. Voor testen en eenvoudige configuratie kan het ook worden gebruikt als een stand-alone applicatie die vanaf de opdrachtregel wordt uitgevoerd.
Puppet Server is geïnstalleerd op een of meer servers en Puppet Agent is geïnstalleerd op alle machines die de gebruiker wil beheren. Puppet Agents communiceren met de server en halen configuratie-instructies op. De Agent past vervolgens de configuratie toe op het systeem en stuurt een statusrapport naar de server. Apparaten kunnen Puppet Agent als een daemon uitvoeren , die periodiek kan worden geactiveerd als een cron- taak of handmatig kan worden uitgevoerd wanneer dat nodig is.
De programmeertaal Puppet is een declaratieve taal die de toestand van een computersysteem beschrijft in termen van "bronnen", die de onderliggende netwerk- en besturingssysteemconstructies vertegenwoordigen. De gebruiker verzamelt bronnen in manifesten die de gewenste toestand van het systeem beschrijven. Deze manifesten worden op de server opgeslagen en op verzoek gecompileerd tot configuratie-instructies voor agents.
Puppet resource syntaxis:
type { 'title':
attribute => value
}
Voorbeeldbron die een Unix- gebruiker vertegenwoordigt :
user { 'harry':
ensure => present,
uid => '1000',
shell => '/bin/bash',
home => '/var/tmp'
}
Met Puppet kunnen gebruikers systemen op een platformonafhankelijke manier configureren door besturingssysteemconcepten als gestructureerde gegevens weer te geven. In plaats van de exacte commando's op te geven om een systeemactie uit te voeren, creëert de gebruiker een bron, die Puppet vervolgens vertaalt in systeemspecifieke instructies die naar de machine worden verzonden die wordt geconfigureerd. Als een gebruiker bijvoorbeeld een pakket op drie verschillende knooppunten wil installeren, die elk een ander besturingssysteem hebben, kunnen ze eenvoudig één bron declareren, en Puppet bepaalt welke opdrachten moeten worden uitgevoerd op basis van de gegevens die zijn verkregen van Facter, een programma dat gegevens verzamelt over het systeem waarop het draait, inclusief het besturingssysteem, het IP-adres en wat hardware-informatie. Providers op het knooppunt gebruiken Facter-feiten en andere systeemdetails om resourcetypen in de catalogus te vertalen naar machine-instructies die het knooppunt daadwerkelijk configureren.
Een normale Puppet run kent de volgende fasen:
- Een agent stuurt feiten van Facter naar de meester.
- Puppet maakt een grafiek van de lijst met bronnen en hun onderlinge afhankelijkheden, die de volgorde vertegenwoordigt waarin ze moeten worden geconfigureerd, voor elke klant. De master stuurt de juiste catalogus naar elk agentknooppunt.
- De actuele status van het systeem wordt vervolgens geconfigureerd volgens de gewenste status die wordt beschreven in het manifestbestand. Als het systeem zich al in de gewenste staat bevindt, zal Puppet geen wijzigingen aanbrengen, waardoor transacties idempotent worden .
- Ten slotte stuurt de agent een rapport naar de master, waarin wordt beschreven welke wijzigingen zijn aangebracht en welke fouten zijn opgetreden.
Leverancier
| Type | Privaat |
|---|---|
| Industrie | Computer software |
| Gesticht | 2005 |
| Hoofdkwartier | Portland, Oregon , VS |
Sleutelfiguren |
Luke Kanies (oprichter) , Yvonne Wassenaar (CEO) , Andrew Shafer |
| Producten | Puppet, Puppet Enterprise en Puppet Forge |
| Website | marionet |
Puppet's leverancier Puppet, Inc, is een particulier softwarebedrijf voor informatietechnologie (IT) automatisering, gevestigd in Portland, Oregon .
In 2005 werd Puppet opgericht door voormalig CEO Luke Kanies. Op 29 januari 2019 verving Yvonne Wassenaar Sanjay Mirchandani als CEO. Wassenaar heeft leidinggevende posities bekleed bij Airware, New Relic en VMware.
In februari 2011 bracht Puppet zijn eerste commerciële product uit, Puppet Enterprise, gebouwd op de open- sourcebasis en biedt commerciële gebruikers verbeterde bruikbaarheid en enkele commerciële componenten. In september 2011 bracht het bedrijf Puppet Enterprise 2.0 uit, waarmee integratie met MCollective, dat in 2010 door Puppet werd overgenomen, werd geïntroduceerd, evenals de levering van virtuele machines rechtstreeks op Amazon EC2 en VMware . In juni 2013 bracht Puppet Puppet Enterprise 3.0 uit, met een herschreven orkestratie-engine die de automatische uitrol van wijzigingen over meerdere sites en clouds zal vergemakkelijken.
Puppet kocht de infrastructuurautomatisering Distelli in september 2017. Puppet hernoemde Distelli's VM Dashboard (een product voor continue integratie / continue levering ) als Puppet Pipelines for Applications en K8S Dashboard als Puppet Pipelines for Containers. De producten zijn in oktober 2017 algemeen verkrijgbaar gesteld.
Puppet heeft in mei 2018 Puppet Discovery uitgebracht, een tool om bronnen in hybride netwerken te ontdekken en te manipuleren. Het is het derde stand-alone enterprise-product van Puppet.
In juni 2018 haalde Puppet $ 42 miljoen op voor een totaal van $ 150 miljoen aan financiering. De ronde werd geleid door Cisco en omvatte Kleiner Perkins, True Ventures, EDBI en VMware.
Puppet werkt samen en heeft technologie-integraties met VMware , Amazon Web Services , Cisco , OpenStack , Microsoft Azure , Eucalyptus , Rightscale en Zenoss.