Wenn Unternehmen Strategien zur digitalen Transformation verfolgen, um neue Einnahmequellen zu erschließen oder einfach nur wettbewerbsfähig zu bleiben, ist das Bedürfnis nach Geschwindigkeit – oder die Fähigkeit, schnell wirklich großartige Kundenerlebnisse zu bieten – ein wichtiger Treiber. Unternehmen, die DevOps-Methoden einführen, stellen fest, dass die aktuellen Netzwerkarchitekturen einen begrenzenden Faktor darstellen. Die herkömmliche Netzwerkarchitektur ist statisch, anfällig für menschliches Versagen und erfordert für ihre Verwaltung erhebliche Betriebsinvestitionen. Es ist zwingend erforderlich, nicht nur die Netzwerkinfrastruktur zu automatisieren, die die Anwendungsbereitstellung unterstützt, sondern auch die Netzwerkdienste wie DNS und Lastausgleich als Teil einer erweiterten Continuous Integration/Development (CI/CD)-Pipeline.
Durch Netzwerkautomatisierung können Unternehmen eine höhere Agilität erreichen, die ein dynamischeres und zuverlässigeres Netzwerk, eine höhere Betriebseffizienz, kürzere Bereitstellungszeiten und eine konsistentere Anwendungsbereitstellung ermöglicht.
Programmierbarkeit ist ein wesentlicher Faktor für die Betriebsautomatisierung. F5 hat dieses Konzept im Laufe der Jahre übernommen und unterstützt die Programmierbarkeit über alle F5® BIG-IP® Application Delivery Controller (ADCs) hinweg, wodurch Agilität und Erweiterbarkeit im Service Fabric des Anwendungsnetzwerks ermöglicht werden. Sowohl die physische als auch die virtuelle Edition der BIG-IP ADCs verfügen über flexible und programmierbare Verwaltungs-, Steuerungs- und Datenebenen:
Ein umfassender Ansatz zur Netzwerkprogrammierbarkeit hilft dem Betrieb, bei Bedarf auf betriebliche und geschäftliche Ereignisse oder Chancen zu reagieren. Das F5-Produktportfolio mit Netzwerkprogrammierbarkeit ermöglicht Unternehmen die effiziente Automatisierung und Orchestrierung.
F5 und Puppet haben sich zusammengeschlossen, um dem Bedarf moderner Unternehmen an Agilität zur Unterstützung der kontinuierlichen Integration und kontinuierlichen Bereitstellung (CI/CD) durch eine umfassende Lösung gerecht zu werden. Puppet bietet mit Puppet Enterprise ein kommerziell unterstütztes Konfigurationsverwaltungstool an, das einen einheitlichen, softwaredefinierten Ansatz für die Automatisierung der Verwaltung von Rechen-, Netzwerk- und Speicherressourcen bietet und Unternehmen dabei hilft, Anwendungen nahtloser bereitzustellen.
Mit seinem deklarativen, modellbasierten Ansatz zur IT-Automatisierung ermöglicht Ihnen Puppet Enterprise die Ausführung von Funktionen von der Automatisierung einfacher, sich wiederholender Aufgaben bis hin zur Bereitstellung groß angelegter öffentlicher, privater und hybrider Clouds. Die Möglichkeit, Konfigurationsänderungen in diesen Cloud-Umgebungen zu modellieren, zu testen und dann bereitzustellen, gewährleistet eine effiziente Nutzung Ihrer Infrastrukturressourcen. Dank der Erweiterbarkeit von Puppet über Module können Unternehmen auf dem vorhandenen Framework aufbauen, um ihre BIG-IP-Geräte zu unterstützen.
In einer typischen Puppet-Infrastruktur sind auf jedem verwalteten System Software-Agenten installiert. Diese Agenten senden regelmäßig verschiedene Informationen – sogenannte „Fakten“ – über das System an einen Puppet-Masterserver. Der Puppet-Master verwendet wiederum die empfangenen Fakten zusammen mit einem Manifest – einem aus Puppet-Code bestehenden Puppet-Programm, um einen Katalog zu erstellen, der die endgültige Konfiguration definiert –, bevor er den Katalog an den Agenten zurücksendet. Der Agent kann dann den Systemzustand erzwingen, wie er im Katalog definiert ist.
Anders als im Serverfall, wo der Software-Agent direkt im Knoten ausgeführt wird, können Sie mit der Puppet-Infrastruktur einen Proxy einrichten, der den Agenten für ein BIG-IP-Gerät ausführt. Jetzt können Sie das BIG-IP-Gerät unter Puppet-Verwaltung stellen und die Vorteile nutzen, die die Lösung bietet. Der Puppet-Agent kann auf einem anderen Server als der Puppet-Master liegen, oder beide können auf demselben Server ausgeführt werden.
Puppet-Sprachdateien werden Manifeste genannt und haben die Dateierweiterung .pp . Der Kern der Puppet-Sprache ist das Deklarieren von Ressourcen. Jeder andere Teil der Sprache dient dazu, die Deklaration von Ressourcen flexibler und komfortabler zu gestalten. Der Puppet-Master verwendet immer das von der Umgebung des aktuellen Knotens festgelegte Hauptmanifest, in dem Sie Ressourcen deklarativ beschreiben können.
Der Datenfluss für die gemeinsame Lösung von F5 und Puppet ist in Abbildung 1 dargestellt.
Zwei Schlüsselfunktionen dieser gemeinsamen Implementierung sind die iControl API und das Puppet Network Device Management. Die F5 iControl-APIs ermöglichen die Kommunikation zwischen dem Puppet-Proxy und F5 BIG-IP-Geräten, während Puppet Network Device Management Unternehmen bei der Konfiguration von Netzwerkgeräten unterstützt. Mithilfe des Puppet Network Device und der F5 iControl API können Sie das Puppet F5-Modul bereitstellen und die Puppet-Verwaltung auf BIG-IP-Geräte bringen. Die Puppet F5-Module bieten Ressourcen für die Verwaltung von BIG-IP-Objekten, einschließlich der Bereitstellung und Verwaltung virtueller Server sowie der Konfiguration und Verwaltung von Pools und Poolmitgliedern. Puppet verwendet F5-Module, um die für BIG-IP-Geräte definierten Ressourcen zu finden, und lädt automatisch alle benutzerdefinierten Klassen oder definierten Typen, die in F5-Modulen gespeichert sind.
Diese gemeinsame Lösung von F5 und Puppet hilft Ihnen:
Puppet F5-Module können BIG-IP-Objekte (einschließlich Serverknoten, Pools und virtueller Server) erstellen und konfigurieren, die für die typische Anwendungsbereitstellung erforderlich sind. Wenn es um die Bereitstellung mehrerer BIG-IP-Geräte geht, können Unternehmen Puppet-Module verwenden, um alle anfänglichen BIG-IP-Onboarding-Aufgaben wie Gerätelizenzierung, DNS- und NTP-Einstellungen, interne und externe VLANs, Self-IPs und Routendomänen zu automatisieren.
Um eine typische HTTP-Anwendung auf einem BIG-IP-Gerät zu konfigurieren, müssen Sie Knoten, Monitore und Profile einrichten, virtuelle IP-Adressen bereitstellen und mehr. Dies scheint auf einem einzelnen BIG-IP-Gerät ohne Automatisierung machbar zu sein, aber die Konfiguration mehrerer F5-Geräte, möglicherweise über mehrere Rechenzentren verteilt, zur Bereitstellung großer Unternehmensanwendungen ist komplex, zeitintensiv und fehleranfällig. Mit dem deklarativen, modellbasierten Puppet-Manifest können Unternehmen die Anwendungsbereitstellung auf mehreren BIG-IP-Geräten in allen Rechenzentren verwalten und automatisieren.
Um mit der Bereitstellung zu beginnen, installieren Sie den Puppet-Master und erstellen Sie ein Proxy-System, das den Puppet-Agent ausführen kann. Darüber hinaus müssen Sie alle Abhängigkeiten, einschließlich iControl-Gem und Faraday-Gem, in der Puppet Ruby-Umgebung auf dem Proxy-Host (Puppet-Agent) installieren. Die Bereitstellung ist in Abbildung 2 dargestellt.
Bevor Sie das F5-Modul verwenden können, müssen Sie im Puppet-Konfigurationsverzeichnis (entweder /etc/puppet oder /etc/puppetlabs/puppet ) auf dem Puppet-Proxy eine Datei device.conf erstellen:
[bigip1] Typ f5 URL https://admin:admin@10.192.74.111
Im obigen Beispiel Administrator:admin@10.192.74.111 bezieht sich auf Puppets Anmeldung für das F5-Gerät: <BENUTZERNAME>:<PASSWORT>@<IP-ADRESSE VON BIGIP>.
Als Nächstes geben Sie die Konfiguration in der entsprechenden Klassenanweisung oder Knotendeklaration in Ihrem Knotenmanifest site.pp, <devicecertname>.pp oder einer Manifestdatei profiles::<profile_name> ein. Nachfolgend finden Sie ein Beispiel für eine Puppet-Manifestdatei (site.pp) zum Konfigurieren einer HTTP-Anwendung auf der BIG-IP-Plattform:
node bigip1 { f5_node { '/Common/web_server_1': sicherstellen => 'vorhanden', Adresse => '10.1.20.11', Beschreibung => 'Webserverknoten 1', Verfügbarkeitsanforderung => 'alle', Gesundheitsmonitore => ['/Common/icmp'], }-> f5_node { '/Common/web_server_2': sicherstellen => 'vorhanden', Adresse => '10.1.20.12', Beschreibung => 'Webserverknoten 2', Verfügbarkeitsanforderung => 'alle', Gesundheitsmonitore => ['/Common/icmp'], }-> f5_node { '/Common/web_server_3': sicherstellen => 'vorhanden', Adresse => '10.1.20.13', Beschreibung => 'Webserverknoten 3', Verfügbarkeitsanforderung => 'alle', health_monitors => ['/Common/icmp'], }-> f5_pool { '/Common/web_pool': sicherstellen => 'vorhanden', Mitglieder => [ { Name => '/Common/web_server_1', Port => '80', }, { Name => '/Common/web_server_2', Port => '80', }, { Name => '/Common/web_server_3', Port => '80', }, ], Verfügbarkeitsanforderung => 'alle', health_monitors => ['/Common/http_head_f5'], }-> f5_virtualserver { '/Common/http_vs': sicherstellen => 'vorhanden', Anbieter => 'Standard', default_pool => '/Common/web_pool', Zieladresse => '10.1.10.240', Zielmaske => '255.255.255.255', http_profile => '/Common/http', service_port => '80', protocol => 'tcp', source => '0.0.0.0/0', source_address_translation => 'automap' } }
Dieses Beispiel umfasst drei Aufgaben:
Vor dem Ausführen des Puppet-Geräts (Befehl für Puppet-Netzwerkgerät) sind auf dem BIG-IP-Gerät keine virtuellen Server, Pools oder Knoten konfiguriert. Wenn Sie den Befehl „Puppet Device -v --user=root“ ausführen, generiert der Proxyknoten des Geräts ein Zertifikat und wendet Ihre Klassifizierungen auf das F5-Gerät an.
Wie unten gezeigt, wurden alle Aufgaben erfolgreich und ohne Fehler abgeschlossen.
$ sudo puppet device -v --user=root –trace Info: Beginne mit der Anwendung der Konfiguration auf bigip1 unter https://10.192.74.111:443 Info: Pluginfacts abrufen Info: Plugin wird abgerufen Info: Caching-Katalog für bigip1 Info: Konfigurationsversion „1498175426“ wird angewendet Hinweis: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_1]/ensure: erstellt Hinweis: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_2]/ensure: erstellt Hinweis: /Stage[main]/Main/Node[bigip1]/F5_node[/Common/web_server_3]/ensure: erstellt Hinweis: /Stage[main]/Main/Node[bigip1]/F5_pool[/Common/web_pool]/ensure: erstellt Hinweis: /Stage[main]/Main/Node[bigip1]/F5_virtualserver[/Common/http_vs]/ensure: erstellt Info: Knoten[bigip1]: Aufheben der Planung aller Ereignisse auf Node[bigip1] Hinweis: Katalog in 0,50 Sekunden angewendet
Puppet hat nun einen neuen, vollständig konfigurierten virtuellen Server erstellt (Abbildung 3). Dieser Server führt einen Lastenausgleich für HTTP-Anwendungen über einen neu erstellten Pool durch (Abbildung 4). Der Pool umfasst drei neu erstellte Webserver (Abbildung 5).
Alle Puppet F5-Module sind idempotent, was bedeutet, dass Aufgaben nur ausgeführt werden, wenn der Knotenstatus nicht mit dem konfigurierten oder gewünschten Status übereinstimmt. Mit anderen Worten: Wenn dasselbe Manifest erneut ausgeführt wird, konfiguriert Puppet diese Objekte nicht neu.
Info: Beginne mit der Anwendung der Konfiguration auf bigip1 unter https://10.192.74.111:443 Info: Pluginfacts abrufen Info: Plugin wird abgerufen Info: Caching-Katalog für bigip1 Info: Konfigurationsversion „1498522983“ wird angewendet Hinweis: Angewandter Katalog in 1,51 Sekunden
Automatisierung ist eine Schlüsselkomponente von DevOps und CI/CD und beginnt häufig mit dem Konfigurationsmanagement. Die gemeinsame Lösung von F5 und Puppet ermöglicht Betriebsteams, die Konfiguration eines gesamten Anwendungsinfrastruktur-Stacks bereitzustellen, zu automatisieren und zu verwalten. Dadurch erhalten Anwendungsentwickler die Möglichkeit, Infrastrukturressourcen elastisch nach oben und unten zu skalieren, Anwendungstests zu automatisieren und den Zeitrahmen für die Anwendungsentwicklung zu verkürzen. Dadurch können Unternehmen ein beispielloses Maß an Agilität und Erweiterbarkeit erreichen.
Um mehr darüber zu erfahren, wie die gemeinsame Lösung von F5 und Puppet Ihrem Unternehmen helfen kann, besuchen Sie bitte forge.puppet.com/f5/f5