Fujitsu K5 – Bereitstellen eines einfachen Stacks mit Floating-IP-Zuweisung

2016-10-13

Fujitsu K5 – Bereitstellen eines einfachen Stacks mit Floating-IP-Zuweisung

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:

SimpleStackPrerequisites.PNG

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

simplestackprerequisites2

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

simplestackprerequisites3

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

Versteckte Zeichen anzeigen

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:

simplestackprerequisites4

Happy Stacking!

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

← All posts