Questa guida ti mostra come avviare un'immagine di istanza Fedora 22 che abbiamo aggiunto in OpenStack Kilo su Ubuntu 14.04.2 – Glance. Qui utilizzeremo l'interfaccia della riga di comando sul nodo controller per creare un'istanza, questo tutorial avvia un'istanza utilizzando OpenStack Networking (neutron).
Carica le credenziali demo sul nodo controller.
# source demo-openrc.sh
Quasi tutte le immagini cloud utilizzano chiavi pubbliche per l'autenticazione invece dell'autenticazione utente/password. Prima di avviare un'istanza, dobbiamo creare una coppia di chiavi pubblica/privata.
Genera e aggiungi una coppia di chiavi.
# nova keypair-add my-key
Copia l'output del comando precedente e salvalo in qualsiasi file, questa chiave dovrebbe essere utilizzata con il comando ssh per accedere all'istanza.
Elenca le coppie di chiavi disponibili.
# nova keypair-list +--------+-------------------------------------------------+ | Name | Fingerprint | +--------+-------------------------------------------------+ | my-key | 0a:b2:30:cb:54:fc:c4:69:29:00:19:ef:38:8d:2e:2d | +--------+-------------------------------------------------+
Avvia un'istanza:
Per avviare un'istanza, dobbiamo conoscere le versioni, le immagini disponibili, le reti e i gruppi di sicurezza.
Elenca le versioni disponibili, questa non è altro che un'allocazione predefinita di CPU, memoria e disco.
# nova flavor-list +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
Elenca le immagini disponibili.
# nova image-list +--------------------------------------+--------------------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+--------------------------------------+--------+--------+ | a1533d87-d6fa-4d9d-bf85-6b2ab8400712 | Fedora-Cloud-Base-22-20150521.x86_64 | ACTIVE | | +--------------------------------------+--------------------------------------+--------+--------+
Elenca le reti disponibili. La nostra istanza utilizzerà int-net (rete interna), durante la creazione dell'istanza dobbiamo specificare la rete utilizzando l'ID anziché il nome.
# neutron net-list +--------------------------------------+---------+-------------------------------------------------------+ | id | name | subnets | +--------------------------------------+---------+-------------------------------------------------------+ | 187a7b6c-7d14-4d8f-8673-57fa9bab1bba | int-net | 7f75b54f-7b87-42e4-a7e1-f452c8adcb3a 192.168.100.0/24 | | db407537-7951-411c-ab8e-ef59d204f110 | ext-net | a517e200-38eb-4b4b-b82f-d486e07756ca 192.168.0.0/24 | +--------------------------------------+---------+-------------------------------------------------------+
Elenca i gruppi di sicurezza disponibili.
# nova secgroup-list +--------------------------------------+---------+------------------------+ | Id | Name | Description | +--------------------------------------+---------+------------------------+ | c88f4002-611e-41dd-af7c-2f7c348dea27 | default | Default security group | +--------------------------------------+---------+------------------------+
Il gruppo di sicurezza predefinito implementa un firewall che blocca l'accesso remoto all'istanza, per consentire l'accesso remoto all'istanza, è necessario configurare l'accesso remoto.
I seguenti comandi aggiungono una regola al gruppo di sicurezza predefinito, per consentire l'accesso ping e SSH.
# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 +-------------+-----------+---------+-----------+--------------+ | IP Protocol | From Port | To Port | IP Range | Source Group | +-------------+-----------+---------+-----------+--------------+ | icmp | -1 | -1 | 0.0.0.0/0 | | +-------------+-----------+---------+-----------+--------------+ # nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 +-------------+-----------+---------+-----------+--------------+ | IP Protocol | From Port | To Port | IP Range | Source Group | +-------------+-----------+---------+-----------+--------------+ | tcp | 22 | 22 | 0.0.0.0/0 | | +-------------+-----------+---------+-----------+--------------+
Avvia la prima istanza utilizzando il comando seguente, carica una variabile per l'ID di rete.
# INT_NET_ID=`neutron net-list | grep int-net | awk '{ print $2 }'
Sostituisci $INT_NET_ID con l'ID della rete interna.
# nova boot --flavor m1.small --image Fedora-Cloud-Base-22-20150521.x86_64 --nic net-id=$INT_NET_ID --security-group default --key-name my-key MY-Fedora +--------------------------------------+-----------------------------------------------------------------------------+ | Property | Value | +--------------------------------------+-----------------------------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-0000000b | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | adminPass | 7PGDvZaxnxR5 | | config_drive | | | created | 2015-07-02T17:45:15Z | | flavor | m1.small (2) | | hostId | | | id | 7432030a-3cbe-49c6-956a-3e725e22196d | | image | Fedora-Cloud-Base-22-20150521.x86_64 (a1533d87-d6fa-4d9d-bf85-6b2ab8400712) | | key_name | my-key | | metadata | {} | | name | MY-Fedora | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | 9b05e6bffdb94c8081d665561d05e31e | | updated | 2015-07-02T17:45:15Z | | user_id | 127a9a6b822a4e3eba69fa54128873cd | +--------------------------------------+-----------------------------------------------------------------------------+
Verificheremo lo stato della nostra istanza.
# nova list +--------------------------------------+-----------+--------+------------+-------------+-----------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-----------+--------+------------+-------------+-----------------------+ | 7432030a-3cbe-49c6-956a-3e725e22196d | MY-Fedora | ACTIVE | - | Running | int-net=192.168.100.8 | +--------------------------------------+-----------+--------+------------+-------------+-----------------------+
Crea un indirizzo IP mobile sulla rete esterna (ext-net).
# neutron floatingip-create ext-net Created a new floatingip: +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | fixed_ip_address | | | floating_ip_address | 192.168.0.201 | | floating_network_id | db407537-7951-411c-ab8e-ef59d204f110 | | id | 0be060c7-d84f-4691-8205-34ad9bb6a296 | | port_id | | | router_id | | | status | DOWN | | tenant_id | 9b05e6bffdb94c8081d665561d05e31e | +---------------------+--------------------------------------+
Associare l'indirizzo IP mobile alla nostra istanza (MY-Fedora).
# nova floating-ip-associate MY-Fedora 192.168.0.201
Controlla lo stato dell'indirizzo IP mobile.
# nova list +--------------------------------------+-----------+--------+------------+-------------+--------------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-----------+--------+------------+-------------+--------------------------------------+ | 7432030a-3cbe-49c6-956a-3e725e22196d | MY-Fedora | ACTIVE | - | Running | int-net=192.168.100.8, 192.168.0.201 | +--------------------------------------+-----------+--------+------------+-------------+--------------------------------------+
Verifica la connettività di rete utilizzando il ping da qualsiasi host sulla rete fisica esterna.
C:\>ping 192.168.0.201 Pinging 192.168.0.201 with 32 bytes of data: Reply from 192.168.0.201: bytes=32 time=1ms TTL=63 Reply from 192.168.0.201: bytes=32 time=2ms TTL=63 Reply from 192.168.0.201: bytes=32 time=1ms TTL=63 Reply from 192.168.0.201: bytes=32 time=1ms TTL=63 Ping statistics for 192.168.0.201: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 2ms, Average = 1ms
Dopo aver ricevuto una risposta ping, attendere almeno un minuto, consentire all'istanza di essere completamente avviata; quindi prova a eseguire l'SSH dal controller o dal sistema esterno. Usa la coppia di chiavi per l'autenticazione.
# ssh -i mykey [email protected] The authenticity of host '192.168.0.201 (192.168.0.201)' can't be established. ECDSA key fingerprint is 0e:c2:58:9b:7f:28:10:a9:e1:cf:6d:00:51:6b:1f:f5. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.201' (ECDSA) to the list of known hosts. [fedora@my-fedora ~]$
Ora hai eseguito correttamente l'accesso all'istanza fedora.