Curso OpenStack en Emergya. Enero 2016
Vamos a ver todos los pasos que necesitamos para crear una instancia:
Solicitamos a nova que cree un nuevo par de claves ssh (que redirigimos al fichero clave-acceso.pem) y modificamos los permisos de la clave privada de forma adecuada:
openstack keypair create clave_demo2 > clave_demo2.pem
chmod 400 ~/.ssh/clave_demo2.pem
Creamos un nuevo grupo seguridad (cortafuegos) y creamos una regla que nos permita el acceso por ssh.
openstack security group create gr_seguridad
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | gr_seguridad |
| id | 0c9d15c1-6b13-43ff-a973-56c6ecf3ef7e |
| name | gr_seguridad |
| rules | [] |
| tenant_id | e2661319dea4407cbc9370ecf995d1ca |
+-------------+--------------------------------------+
openstack security group rule create --proto tcp --src-ip 0.0.0.0/0 --dst-port 22 gr_seguridad
+-----------------+--------------------------------------+
| Field | Value |
+-----------------+--------------------------------------+
| group | {} |
| id | 77b24d67-f7ef-41b4-823c-037d90568550 |
| ip_protocol | tcp |
| ip_range | 0.0.0.0/0 |
| parent_group_id | 0c9d15c1-6b13-43ff-a973-56c6ecf3ef7e |
| port_range | 22:22 |
+-----------------+--------------------------------------+
Obtenemos la información de las imágenes, sabores (tipos de servidores) y redes que tenemos disponibles.
openstack image list
+--------------------------------------+---------------------------------+
| ID | Name |
+--------------------------------------+---------------------------------+
| 30e0af35-6cd4-4d9e-a372-606bf3deea0a | cirros-0.3.4-x86_64-uec |
| b8017624-cbe4-460b-9e0c-ad0908420e1e | cirros-0.3.4-x86_64-uec-ramdisk |
| ac76a3cb-6425-4188-ac12-dc823e7c91f9 | cirros-0.3.4-x86_64-uec-kernel |
+--------------------------------------+---------------------------------+
openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
+----+-----------+-------+------+-----------+-------+-----------+
openstack network list
+--------------------------------------+---------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------+--------------------------------------+
| 0fcc0de8-ca9f-4740-8722-233ec3eb2a1b | public | c6a34bab-699e-4ba5-9daf-357ae6a0480f |
| ef06b714-8b3a-4af4-bca0-d0eae224c0b9 | private | a629ff78-b057-4b18-b501-7d5ee788b6dd |
+--------------------------------------+---------+--------------------------------------+
Ya podemos crear nuestra instancia. Vamos a crear una instancia de nombre instancia_nova con una de las imágenes disponibles, un sabor m1.tiny, el grupo de seguridad y las claves ssh que hemos creado anteriormente y conectado a la red interna (la contrabarra “" se utiliza para poder escribir una instrucción tan larga en varias líneas).
openstack server create --flavor m1.tiny \
--image cirros-0.3.4-x86_64-uec \
--security-group gr_seguridad \
--key-name clave_demo2 \
--nic net-id=ef06b714-8b3a-4af4-bca0-d0eae224c0b9 \
instancia2
+--------------------------------------+----------------------------------------------------------------+
| Field | Value |
+--------------------------------------+----------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | 7N6tB6kdRfrb |
| config_drive | |
| created | 2016-01-02T13:50:46Z |
| flavor | m1.tiny (1) |
| hostId | |
| id | 3b1da7d4-932b-420f-a916-6d1df0170008 |
| image | cirros-0.3.4-x86_64-uec (30e0af35-6cd4-4d9e-a372-606bf3deea0a) |
| key_name | clave_demo2 |
| name | instancia2 |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| project_id | e2661319dea4407cbc9370ecf995d1ca |
| properties | |
| security_groups | [{u'name': u'gr_seguridad'}] |
| status | BUILD |
| updated | 2016-01-02T13:50:46Z |
| user_id | f219b0ebb4d34a249ec7b9310f55e980 |
+--------------------------------------+----------------------------------------------------------------+
Por último reservamos una nueva ip flotante del pool “ext-net” y la asignamos a la instancia para poder acceder a ella desde el exterior:
$ openstack ip floating pool list
+--------+
| Name |
+--------+
| public |
+--------+
openstack ip floating create public
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| fixed_ip | None |
| id | cf829fb5-e9d3-42de-9d10-d06f531326f5 |
| instance_id | None |
| ip | 172.24.4.4 |
| pool | public |
+-------------+--------------------------------------+
openstack ip floating add 172.24.4.4 instancia2
Ya podemos acceder a la instancia:
ssh -i clave_demo2.pem cirros@172.24.4.4
$