La configuración de una pila puede llegar a ser muy compleja, permitiendo crear de manera automática recusos como instancias, direcciones IP flotantes, volúmenes y grupos de seguridad.
En esta página veremos un ejemplo más avanzado sobre la utilización de las pilas en Soax, mostrando así más en profundidad las distintas opciones que oferta esta herramienta.
Para familiarizarse con la herramienta, recomendamos acceder a los ejemplos más sencillos y básicos de nuestra documentación. Pilas Basic. En esta página veremos ejemplos sencillos de Pilas
En el siguiente ejemplo se va a crear un entorno básico para un proyecto nuevo en Soax.
Primero se crea un router con una interfaz en la red externa y otra en una red interna definida también en la pila.
A continuación, se creará un par de claves a partir de una clave pública disponible y un grupo de seguridad que permite la conexión por SSH.
Por último, se crean 2 instancias, una Windows y otra Linux. A la máquina Windows se podrá acceder a través de la consola de Soax y a la Linux se le asignará el grupo de seguridad y el par de claves para poder acceder por SSH.
heat_template_version: 2013-05-23
description: Basic Template
resources:
network1:
type: OS::Neutron::Net
properties:
name: LAN
subnet1:
type: OS::Neutron::Subnet
properties:
name: LANsubnet
cidr: "10.20.30.0/24"
dns_nameservers: [ "8.8.8.8", "8.8.4.4" ]
enable_dhcp: true
ip_version: 4
network_id: { get_resource: network1 }
router1:
type: OS::Neutron::Router
properties:
name: Router1
external_gateway_info: { network: Externa }
internal_interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_resource: router1 }
subnet: { get_resource: subnet1 }
my_key:
type: OS::Nova::KeyPair
properties:
public_key: "ssh-rsa ************private-key*************************"
name: my_key
sec_group:
type: OS::Neutron::SecurityGroup
properties:
name: SSH
rules:
- protocol: tcp
remote_ip_prefix: 0.0.0.0/0
port_range_min: 22
port_range_max: 22
bootvol_windows:
type: OS::Cinder::Volume
properties:
name: Volumen_Windows
size: 50
image: Windows_Server_2019_Standard_KMS
server_windows:
type: OS::Nova::Server
properties:
name: Windows
flavor: p.004vCPUs_004RAM
security_groups:
- default
availability_zone: nova
networks:
- network: { get_resource: network1 }
block_device_mapping:
- device_name: vda
volume_id: { get_resource: bootvol_windows }
delete_on_termination: false
bootvol_linux:
type: OS::Cinder::Volume
properties:
name: Volumen_Linux
size: 20
image: CentOS_7
server_linux:
type: OS::Nova::Server
properties:
name: Linux
flavor: p.001vCPUs_002RAM
key_name: { get_resource: my_key }
security_groups:
- default
- { get_resource: sec_group }
availability_zone: nova
networks:
- network: { get_resource: network1 }
block_device_mapping:
- device_name: vda
volume_id: { get_resource: bootvol_linux }
delete_on_termination: false
floating_ip:
type: OS::Nova::FloatingIP
properties:
pool: Externa
association:
type: OS::Nova::FloatingIPAssociation
properties:
floating_ip: { get_resource: floating_ip }
server_id: { get_resource: server_linux }