Die nachfolgenden Parameter können ausschließlich pro VM vergeben werden.
+#### name
+
+Der eindeutige Host-Name der VM.
+
+Dieser ist auch der FQDN der Adresse des ersten Netzwerk-Interfaces, falls man diesem
+keinen anderslautenden FQDN zuweist.
+
#### interfaces
In diesem Konfigurationspunkt werden die Netzwerkschnittstellen der VM und deren darauf
Die IPv6-Adresse ist immer _optional_.
-* Das Netzwerk in VSphere, die IPv4-Netzmaske und das IPv4
+* Das Netzwerk in VSphere, die IPv4-Netzmaske und das IPv4-Gateway werden durch das Skript
+ ermittelt, wenn sie nicht vorgegeben werden.
+
+ Voraussetzung dafür ist, dass die Namen der Netzwerke in VSphere konsistent vergeben
+ wurden. Diese **müssen** sich vom IPv4-Netzwerk ableiten, das darauf angelegt ist.
+ Der Name eines Netzwerks muss die Form `NETADRESSE_NETZMASKE` haben. Wenn es zum Beispiel
+ das Netz 192.168.101.128/25 sein soll, dann muss der Name des Netzwerkes `192.168.101.128_25`
+ lauten. Es von Seiten der VSPhere-Admin ist peinlich darauf zu achten, dass es keine
+ Überschneidungen geben darf, sonst landen möglicherweise VMs in falschen Netzen.
+
+##### `address_v4`
+
+Beschreibt die IPv4-Adresse des Interfaces (ohne Netzmaske). Das ist eine **Pflichtangabe**,
+und darf auch nur ein mal pro Interface vergeben werden.
+
+Wenn keine separate IPv4-Netzmaske und kein separates IPv4-Gateway angegeben werden, werden
+diese aus den (hoffentlich konsistenten) Name der vorhandenen Netzwerke ermittelt.
+
+##### `address_v6`
+
+Beschreibt die optionale IPv6-Adresse (ohne Netzmaske). Sie darf nur einmal vergeben werden.
+
+Wenn eine IPv6-Adresse angegeben wird, dann **müssen** auch die IPv6-Netzmaske und das
+IPv6-Gateway angegeben werden.
+
+##### `address`
+
+In Abhängigkeit von der Art der hier übergebenen Adresse wird damit entweder die IPv4-
+oder die IPv6-Adresse gesetzt.
+
+Vorsicht: Wenn gleichzeitig mit `address_v4`oder `address_v6` eine Adresse vergeben
+wird, dann hat diese Vorragng vor der `address`-Angabe.
+
+##### fqdn
+
+Damit kann der FQDN der IP-Adresse unabhängig vom Hostnamen festgelegt werden.
+
+Für das erste Interface sollte er nicht festgelegt werden, damit wird automatisch der
+Hostname als FQDN der Adresse genommen.
+
+Für alle anderen Interfaces sollte ein anderer, eindeutiger FQDN festgelegt werden.
+
+##### `netmask_v4`
+
+Das ist die Netzmaske in der CIDR-Schreibweise, also eine Integer-Zahl zwischen 0 und 32.
+
+Wenn sie nicht übergeben wird, wird sie aus dem Namen des Netzwerkes ermittelt.
+
+##### `netmask_v6`
+
+Das ist die Netzmaske in der CIDR-Schreibweise, also eine Integer-Zahl zwischen 0 und 128.
+
+Wenn eine IPv6-Adresse angegeben wird, dann **muss** die Netzmaske mit angegeben werden.
+
+##### `gateway_v4`
+
+Das ist die Adresse des IPv4-Gateways.
+
+Wenn sie nicht übergeben wird, wird sie aus dem Namen des Netzwerkes ermittelt.
+
+##### `gateway_v6`
+
+Das ist die Adresse des IPv6-Gateways.
+
+Wenn eine IPv6-Adresse angegeben wird, dann **muss** das Gateway mit angegeben werden.
+
+##### `network`
+
+Wenn man nicht darauf vertraut, dass der Name des richtigen Netzwerkes automatisch
+ermittelt wird, dann kann man diesen hiermit übergeben.
+Das ist insbesondere dann nützlich, wenn aus unerfindlichen Gründen inkonsistente Namen
+für Netzwerke im VSPhere existieren (was auch tatsächlich schon mal vorkam).
## Ausführung von Terraform
# -------------------------------------------------------------------------
def __init__(
self, appname=None, verbose=0, version=__version__, base_dir=None, initialized=False,
- address_v4=None, address_v6=None, fqdn=None, network=None, ipv4_primary=False,
+ address_v4=None, address_v6=None, fqdn=None, network=None, ipv4_primary=True,
gateway_v4=None, gateway_v6=None, netmask_v4=None, netmask_v6=None):
self._address_v4 = None
interface = cls(appname=appname, verbose=verbose, base_dir=base_dir)
interface.initialized = False
- for key in if_def.keys():
+ for key in sorted(if_def.keys(), key=str.lower):
val = if_def[key]