Fujitsu K5 – Distribuire uno stack semplice con assegnazione di IP flottante

2016-10-13

Fujitsu K5 – Distribuire uno stack semplice con assegnazione di IP flottante

Machine-translated — the English original is authoritative.

Ecco un altro esempio di distribuzione di una macchina virtuale semplice con un indirizzo IP flottante. I prerequisiti per questo stack sono un router esistente connesso alla rete esterna, come visibile di seguito:

SimpleStackPrerequisites.PNG

E l'ID della rete esterna a cui il router è stato connesso:

simplestackprerequisites2

Modifica i parametri di input dello stack per allinearli al tuo ambiente e poi è tutto come al solito: carica e invia lo stack.

simplestackprerequisites3

Questo file contiene caratteri Unicode nascosti o bidirezionali che potrebbero essere interpretati o compilati in modo diverso da quanto appare di seguito. Per rivederli, apri il file in un editor che riveli i caratteri Unicode nascosti.
Maggiori informazioni sui caratteri Unicode bidirezionali

Mostra caratteri nascosti

heat_template_version: 2013-05-23
# Autore: Graham Land
# Data: 13/10/2016
# Scopo: Template semplice per dimostrare il formato/uso di base degli stack HOT sulla nostra piattaforma K5
description: Template demo K5 per creare una rete privata, una subnet e un'istanza con un indirizzo IP globale – il router e la rete esterna sono prerequisiti
# Parametri di input
parameters:
image:
type: string
label: Nome o ID dell'immagine
description: Immagine da utilizzare per l'istanza di calcolo
default: "Ubuntu Server 14.04 LTS (English) 01"
flavor:
type: string
label: Flavor
description: Tipo di istanza (flavor) da utilizzare
default: "S-1"
key:
type: string
label: Nome della chiave
description: Nome della coppia di chiavi da utilizzare per l'istanza di calcolo
default: "demostack"
public_net:
type: string
label: ID della rete esterna
description: Rete pubblica
default: "d730db50-0e0c-4790-9972-1f6e2b8c4915"
private_net_name:
type: string
label: Nome o ID della rete privata
description: Rete a cui collegare l'istanza.
default: "hello-net"
private_net_cidr:
type: string
label: Nome o ID della rete privata
description: Rete a cui collegare l'istanza.
default: "192.168.2.0/24"
az:
type: string
label: Zona di disponibilità
description: AZ della regione da utilizzare
default: "uk-1b"
ext_router:
type: string
label: Router esterno
description: Router con accesso esterno per l'allocazione di IP globali
default: "d643d348-7ae0-45a3-a375-54ce9d8803f7"
# Risorse dell'infrastruttura K5 da creare
resources:
# Crea una nuova rete privata
private_net:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az }
name: { get_param: private_net_name }
# Crea una nuova subnet sulla rete privata
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
# Connetti un'interfaccia sulla subnet della rete privata al router
router_interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_param: ext_router }
subnet_id: { get_resource: private_subnet }
# Crea una nuova porta per l'interfaccia del server, assegna un indirizzo IP e un gruppo di sicurezza
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 }]
# Alloca un indirizzo IP flottante/globale
server1_floating_ip:
type: OS::Neutron::FloatingIP
depends_on: [router_interface]
properties:
availability_zone: { get_param: az }
floating_network_id: { get_param: public_net }
# Assegna un indirizzo IP flottante/globale all'indirizzo IP fisso del server
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 }
# Crea un gruppo di sicurezza
server_security_group:
type: OS::Neutron::SecurityGroup
properties:
description: Aggiungi regole del gruppo di sicurezza per il server
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
# Crea un volume di sistema da utilizzare con il server
sys-vol:
type: OS::Cinder::Volume
properties:
availability_zone: { get_param: az }
name: "boot-vol"
size: 30
volume_type: "M1"
image : { get_param: image }
# Costruisci un server utilizzando il volume di sistema definito sopra
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 }
# Definisci i valori da restituire al termine della creazione dello stack
outputs:
server_private_ip:
description: Indirizzo IP del server sulla rete privata
value: { get_attr: [ server, first_address ] }
server1_public_ip:
description: Indirizzo IP flottante di server1 nella rete pubblica
value: { get_attr: [ server1_floating_ip, floating_ip_address ] }

visualizza raw
SimpleStack.yml
ospitato con ❤ da GitHub

E dovresti ottenere qualcosa del genere:

simplestackprerequisites4

Happy Stacking!

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

← All posts