Fujitsu K5 – Déploiement d'une pile simple avec attribution d'adresse IP flottante

2016-10-13

Fujitsu K5 – Déploiement d'une pile simple avec attribution d'adresse IP flottante

Machine-translated — the English original is authoritative.

Nous avons ici un autre exemple de déploiement d'une machine virtuelle simple avec une adresse IP flottante. Les prérequis pour cette pile sont un routeur existant connecté au réseau externe, comme on peut le voir ci-dessous :

SimpleStackPrerequisites.PNG

Et l'ID du réseau externe auquel le routeur a été connecté :

simplestackprerequisites2

Modifiez les paramètres d'entrée de la pile pour les aligner avec votre environnement, puis c'est du pain béni – chargez et soumettez la pile.

simplestackprerequisites3

Ce fichier contient des caractères Unicode cachés ou bidirectionnels qui peuvent être interprétés ou compilés différemment de ce qui est affiché ci-dessous. Pour examiner, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode cachés.
En savoir plus sur les caractères Unicode bidirectionnels

Afficher les caractères cachés

heat_template_version: 2013-05-23
# Auteur : Graham Land
# Date : 13/10/2016
# Objectif : Template simple pour démontrer le format/usage de base des piles HOT sur notre plateforme K5
description : Template de démonstration K5 pour créer un réseau privé, un sous-réseau et une instance avec une adresse IP globale – le routeur et le réseau externe sont des prérequis
# Paramètres d'entrée
parameters:
image:
type: string
label: Nom ou ID de l'image
description: Image à utiliser pour l'instance de calcul
default: "Ubuntu Server 14.04 LTS (English) 01"
flavor:
type: string
label: Flavor
description: Type d'instance (flavor) à utiliser
default: "S-1"
key:
type: string
label: Nom de la clé
description: Nom de la paire de clés à utiliser pour l'instance de calcul
default: "demostack"
public_net:
type: string
label: ID du réseau externe
description: Réseau public
default: "d730db50-0e0c-4790-9972-1f6e2b8c4915"
private_net_name:
type: string
label: Nom ou ID du réseau privé
description: Réseau auquel attacher l'instance.
default: "hello-net"
private_net_cidr:
type: string
label: Nom ou ID du réseau privé
description: Réseau auquel attacher l'instance.
default: "192.168.2.0/24"
az:
type: string
label: Zone de disponibilité
description: Région AZ à utiliser
default: "uk-1b"
ext_router:
type: string
label: Routeur externe
description: Routeur avec accès externe pour l'allocation d'IP globale
default: "d643d348-7ae0-45a3-a375-54ce9d8803f7"
# Ressources d'infrastructure K5 à construire
resources:
# Créer un nouveau réseau privé
private_net:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az }
name: { get_param: private_net_name }
# Créer un nouveau sous-réseau sur le réseau privé
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
# Connecter une interface sur le sous-réseau du réseau privé au routeur
router_interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_param: ext_router }
subnet_id: { get_resource: private_subnet }
# Créer un nouveau port pour l'interface du serveur, attribuer une adresse IP et un groupe de sécurité
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 }]
# Allouer une adresse 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 }
# Assigner une adresse IP flottante/globale à l'adresse IP fixe du serveur
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 }
# Créer un groupe de sécurité
server_security_group:
type: OS::Neutron::SecurityGroup
properties:
description: Ajouter des règles de groupe de sécurité pour le serveur
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
# Créer un volume système à utiliser avec le serveur
sys-vol:
type: OS::Cinder::Volume
properties:
availability_zone: { get_param: az }
name: "boot-vol"
size: 30
volume_type: "M1"
image : { get_param: image }
# Construire un serveur en utilisant le volume système défini ci-dessus
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 }
# Définir les valeurs à retourner après une construction de pile réussie
outputs:
server_private_ip:
description: Adresse IP du serveur sur le réseau privé
value: { get_attr: [ server, first_address ] }
server1_public_ip:
description: Adresse IP flottante du serveur1 sur le réseau public
value: { get_attr: [ server1_floating_ip, floating_ip_address ] }

voir le code brut
SimpleStack.yml
hébergé avec ❤ par GitHub

Et vous devriez obtenir quelque chose comme ceci :

simplestackprerequisites4

Bonne création de piles !

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

← All posts