Fujitsu K5 – Déploiement d'une pile simple avec attribution d'adresse IP flottante
2016-10-13
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 :

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

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.

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 :

Bonne création de piles !
Originally published on allthingscloud.eu (2016-10-13).