Fujitsu K5 – Bereitstellen eines einfachen Stacks mit Floating-IP-Zuweisung
2016-10-13
Machine-translated — the English original is authoritative.
Hier haben wir ein weiteres Beispiel für das Bereitstellen einer einfachen virtuellen Maschine mit einer Floating-IP-Adresse. Die Voraussetzungen für diesen Stack sind ein vorhandener Router, der mit dem externen Netzwerk verbunden ist, wie unten zu sehen:

Und die ID des externen Netzwerks, mit dem der Router verbunden wurde:

Passen Sie die Eingabeparameter des Stacks an Ihre Umgebung an, und dann geht es ganz normal weiter – laden und senden Sie den Stack.

Diese Datei enthält versteckte oder bidirektionale Unicode-Zeichen, die anders interpretiert oder kompiliert werden könnten als das, was unten angezeigt wird. Um sie zu überprüfen, öffnen Sie die Datei in einem Editor, der versteckte Unicode-Zeichen anzeigt.
Erfahren Sie mehr über bidirektionale Unicode-Zeichen
| heat_template_version: 2013-05-23 | |
| # Autor: Graham Land | |
| # Datum: 13.10.2016 | |
| # Zweck: Einfache Vorlage zur Demonstration des grundlegenden Formats/der Nutzung von HOT-Stacks auf unserer K5-Plattform | |
| description: Demo-K5-Vorlage zum Erstellen eines privaten Netzwerks, Subnetzes und einer Instanz mit einer globalen IP-Adresse – Router und externes Netzwerk sind Voraussetzungen | |
| # Eingabeparameter | |
| parameters: | |
| image: | |
| type: string | |
| label: Image-Name oder ID | |
| description: Zu verwendendes Image für die Compute-Instanz | |
| default: "Ubuntu Server 14.04 LTS (English) 01" | |
| flavor: | |
| type: string | |
| label: Flavor | |
| description: Zu verwendender Instanztyp (Flavor) | |
| default: "S-1" | |
| key: | |
| type: string | |
| label: Schlüsselname | |
| description: Name des für die Compute-Instanz zu verwendenden Key-Pairs | |
| default: "demostack" | |
| public_net: | |
| type: string | |
| label: ID des externen Netzwerks | |
| description: Öffentliches Netzwerk | |
| default: "d730db50-0e0c-4790-9972-1f6e2b8c4915" | |
| private_net_name: | |
| type: string | |
| label: Name oder ID des privaten Netzwerks | |
| description: Netzwerk, an das die Instanz angehängt werden soll. | |
| default: "hello-net" | |
| private_net_cidr: | |
| type: string | |
| label: Name oder ID des privaten Netzwerks | |
| description: Netzwerk, an das die Instanz angehängt werden soll. | |
| default: "192.168.2.0/24" | |
| az: | |
| type: string | |
| label: Verfügbarkeitszone | |
| description: Zu verwendende Region-AZ | |
| default: "uk-1b" | |
| ext_router: | |
| type: string | |
| label: Externer Router | |
| description: Router mit externem Zugriff für die Zuweisung globaler IPs | |
| default: "d643d348-7ae0-45a3-a375-54ce9d8803f7" | |
| # Zu erstellende K5-Infrastrukturressourcen | |
| resources: | |
| # Neues privates Netzwerk erstellen | |
| private_net: | |
| type: OS::Neutron::Net | |
| properties: | |
| availability_zone: { get_param: az } | |
| name: { get_param: private_net_name } | |
| # Neues Subnetz im privaten Netzwerk erstellen | |
| private_subnet: | |
| type: OS::Neutron::Subnet | |
| depends_on: private_net | |
| properties: | |
| availability_zone: { get_param: az } | |
| name: subnet | |
| network_id: { get_resource: private_net } | |
| cidr: { get_param: private_net_cidr } | |
| dns_nameservers: | |
| – 8.8.8.8 | |
| # Eine Schnittstelle im Subnetz des privaten Netzwerks mit dem Router verbinden | |
| router_interface: | |
| type: OS::Neutron::RouterInterface | |
| properties: | |
| router_id: { get_param: ext_router } | |
| subnet_id: { get_resource: private_subnet } | |
| # Einen neuen Port für die Serverschnittstelle erstellen, eine IP-Adresse und eine Sicherheitsgruppe zuweisen | |
| server1_port: | |
| type: OS::Neutron::Port | |
| depends_on: [ router_interface,server_security_group ] | |
| properties: | |
| availability_zone: { get_param: az } | |
| network_id: { get_resource: private_net } | |
| security_groups: [{ get_resource: server_security_group }] | |
| # Eine Floating-/globale IP-Adresse zuweisen | |
| server1_floating_ip: | |
| type: OS::Neutron::FloatingIP | |
| depends_on: [router_interface] | |
| properties: | |
| availability_zone: { get_param: az } | |
| floating_network_id: { get_param: public_net } | |
| # Eine Floating-/globale IP-Adresse der festen Server-IP-Adresse zuweisen | |
| server1_floating_ip_association: | |
| type: OS::Neutron::FloatingIPAssociation | |
| depends_on: server1_floating_ip | |
| properties: | |
| floatingip_id: { get_resource: server1_floating_ip } | |
| port_id: { get_resource: server1_port } | |
| # Eine Sicherheitsgruppe erstellen | |
| server_security_group: | |
| type: OS::Neutron::SecurityGroup | |
| properties: | |
| description: Sicherheitsgruppenregeln für den Server hinzufügen | |
| name: hello-security-group | |
| rules: | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: tcp | |
| port_range_min: 22 | |
| port_range_max: 22 | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: tcp | |
| port_range_min: 80 | |
| port_range_max: 80 | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: tcp | |
| port_range_min: 443 | |
| port_range_max: 443 | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: icmp | |
| # Ein Systemvolume für die Verwendung mit dem Server erstellen | |
| sys-vol: | |
| type: OS::Cinder::Volume | |
| properties: | |
| availability_zone: { get_param: az } | |
| name: "boot-vol" | |
| size: 30 | |
| volume_type: "M1" | |
| image : { get_param: image } | |
| # Einen Server basierend auf dem oben definierten Systemvolume erstellen | |
| server: | |
| type: OS::Nova::Server | |
| depends_on: [ server1_port,server1_floating_ip ] | |
| properties: | |
| key_name: { get_param: key } | |
| image: { get_param: image } | |
| flavor: { get_param: flavor } | |
| admin_user: ubuntu | |
| block_device_mapping: [{"volume_size": "30", "volume_id": {get_resource: sys-vol}, "delete_on_termination": True, "device_name": "/dev/vda"}] | |
| name: "helloVM1" | |
| networks: | |
| – port: { get_resource: server1_port } | |
| # Werte definieren, die nach einem erfolgreichen Stack-Aufbau zurückgegeben werden | |
| outputs: | |
| server_private_ip: | |
| description: IP-Adresse des Servers im privaten Netzwerk | |
| value: { get_attr: [ server, first_address ] } | |
| server1_public_ip: | |
| description: Floating-IP-Adresse von server1 im öffentlichen Netzwerk | |
| value: { get_attr: [ server1_floating_ip, floating_ip_address ] } | |
Rohansicht
SimpleStack.yml
Gehostet mit ❤ von GitHub
Und am Ende sollten Sie in etwa so etwas haben:

Happy Stacking!
Originally published on allthingscloud.eu (2016-10-13).