Instalación y configuración de OpenStack (Kilo) en Oracle® Solaris

Salir de la Vista de impresión

Actualización: Junio de 2016
 
 

Cómo inicializar una imagen de invitado automáticamente

Antes de empezar

Primero, debe realizar lo siguiente:

  • Cree un archivo unificado (UA) del sistema cuya imagen desea desplegar en la nube. Asegúrese de que el paquete cloudbase-init esté incluido en el sistema antes de crear el UA.

    Para obtener instrucciones sobre cómo crear un UA, consulte el capítulo Trabajo con archivos unificados en la guía Uso de archivos unificados para la clonación y la recuperación del sistema en Oracle Solaris. Esta guía se encuentra en la biblioteca de la versión de Oracle Solaris en Operating Systems Documentation.

  • En la sección de datos de usuario de una plantilla de Heat, proporcione la información de datos de usuario. Guarde la plantilla como archivo *.yaml.

  1. Cargue en Glance la imagen que contiene el paquete de Cloudbase-Init.
  2. Use el siguiente comando:
    # heat stack-create -f yaml-template \
       -P key_name=your key name;image=image name\
       private_net=name of tenant private network stack-name
    
Ejemplo 8  Plantilla de Heat con Cloudbase-Init

En el siguiente ejemplo, se muestra una plantilla de Heat que se procesará con Cloudbase-Init. La información que debe proporcionar se muestra en negrita, y la información de los datos de usuario aparece marcada para ofrecer mayor comodidad. El nombre de la plantilla es test.yaml.

heat_template_version: 2013-05-23

description: HOT template to deploy one server into an existing neutron tenant 
network and assign a floating IP address so it's routable from the public network.

parameters:
  key_name:Server1Key
    type: string
    description: Name of keypair to assign to server
  image:Solaris Non-global Zone
    type: string
    description: Name of image to use for server
  flavor:8
    type: string
    description: Flavor to use for server
    default: 1
  public_net:
    type: string
    description: 
      Name or ID of public network for which floating IP address will 
be allocated
    default: oracle
  private_net:HR
    type: string
    description: Name or ID of private network into which server is 
deployed

resources:
  server1:
    type: OS::Nova::Server
    properties:
      name: { get_param: 'OS::stack_name' }
      image: { get_param: image }
      flavor: { get_param: flavor }
      key_name: { get_param: key_name }
      networks:
        - port: { get_resource: server1_port }
      user_data_format: RAW
---------- Comienzo de la sección de datos de usuario ----------
      user_data:
        str_replace:
          template: |
            #!/bin/ksh
            print "This is a test."

  server1_port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: private_net }

  server1_floating_ip:
    type: OS::Neutron::FloatingIP
    properties:
      floating_network: { get_param: public_net }
      port_id: { get_resource: server1_port }

outputs:
  server1_private_ip:
    description: IP address of server1 in private network
    value: { get_attr: [ server1, first_address ] }
  server1_public_ip:
    description: Floating IP address of server1 in public network
    value: { get_attr: [ server1_floating_ip, floating_ip_address ] }

Para desplegar la planilla, escriba lo siguiente:

# heat stack-create -f test.yaml -P key_name=Server1Key \
   -P image=Solaris Non-global Zone\
...-P flavor=8
   -P private_net=HR teststack

Tenga en cuenta que los valores específicos de cada opción del comando provienen de la información del archivo de plantilla test.yaml. La red pública es oracle, que es el valor por defecto.