Fujitsu K5 – Distribuire uno stack semplice con assegnazione di IP flottante
2016-10-13
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:

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

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

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
| 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:

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