Abstrakte Sprache zur Beschreibung von Netzwerkbereitstellungen?

8

Gibt es mehr oder weniger herstellerneutrale Standards / Spezifikationen für die Netzwerkkonfigurationssprache? Angenommen, eine VPC mit Netzwerken und virtuellen Maschinen wird zu einer XML- oder JSON-Datei.

Etwas wie,

<deployment>
<vpc name="Test">
<appliances>
  <vm id="1" />
</appliances>
</vpc>
</deployment>
J. Doe
quelle
Nein nicht wirklich. Das Problem ist, dass nicht jeder Anbieter alles unterstützt und alle dies anders machen. Dies war lange Zeit ein Ziel, aber es hat sich als sehr schwierig erwiesen. In jedem Fall sind VPCs und VMs hier nicht zum Thema.
Ron Maupin
Möchten Sie das Netzwerk dokumentieren oder als Datenquelle zur Automatisierung der Netzwerkkonfiguration verwenden?
JFL
@ JFL idealerweise beide
J. Doe

Antworten:

10

YANG ist hier die Antwort. Um aus RFC8345 zu zitieren, das YANG definiert:

Dieses Dokument definiert ein abstraktes (generisches oder Basis-) YANG-Datenmodell für Netzwerk- / Diensttopologien und -inventare. Das Datenmodell dient als Basismodell, das mit technologie-spezifischen Details in anderen, spezifischeren Topologie- und Inventardatenmodellen ergänzt wird.

Protokolle wie NETCONF können YANG zur Darstellung von Netzwerkkonfigurationen verwenden.

Teun Vink
quelle
4

Hashicorps Terraform verfügt über eine herstellerneutrale (aber nicht -agnostische) Konfigurationssprache. AWS VPCs sehen folgendermaßen aus:

resource "aws_vpc" "Test" {
  cidr_block       = "10.0.0.0/16"
  instance_tenancy = "dedicated"

  tags = {
    Name = "Test"
  }
}
Jacob Krall
quelle
3

Ansible kann verwendet werden, um (einen Teil) eines Netzwerks als Code aufzubauen. Es verwendet die YAML-Syntax und kann JSON lesen.

Es gibt Ansible-Rollen für Geräte großer Anbieter, und Sie können Ihre eigenen Rollen erstellen.

Bestehende Rollen sind jedoch nicht immer auf dem neuesten Stand. Das Schreiben und Verwalten eigener Rollen kann zeitaufwändig sein.

JFL
quelle
3

Speziell für AWS-VPCs können Sie CloudFormation verwenden, um eine "Konfigurations" -Datei zu generieren, mit der die VPC und alle zugehörigen Komponenten neu erstellt werden können. Ich glaube, es ist im JSON-Format.

Für Netzwerke im Allgemeinen gibt es so etwas nicht. Finden Sie heraus, wie es geht, und Sie können bequem in den Ruhestand gehen.

Ron Trunk
quelle