Innhold
1 Initielt oppsett
Involverte maskiner:
- openstack32.uio.no (controller)
- openstack31.uio.no (network)
- openstack30.uio.no (compute)
- openstack29.uio.no (compute)
Involverte nett:
| 129.240.148.192/26 | iaas-mgmt, vlan864 |
| 129.240.149.0/26 | iaas-admin, vlan846 |
| 129.240.149.64/26 | iaas-storage, vlan847 |
| 129.240.149.128/26 | iaas-ekstern, vlan848 |
| 129.240.149.192/26 | iaas-api, vlan849 |
Maskinene ble installert som "Workstation" på vanlig måte via PXE. Etter installasjon ble følgende gjort for å klargjøre dem for Openstack:
Satte til runlevel 3 som default:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
Slo av grafisk boot ved å fjerne "rhgb quiet" fra relevante linjer i /etc/grub2.cfg
Satte fast IP. Editerte /etc/sysconfig/network-scripts/ifcfg-em1 slik at den inneholder (eksempel fra openstack32):
DEVICE="em1" ONBOOT=yes UUID="8f869d33-0a24-4589-b707-a7e0d1b8484c" BOOTPROTO=static IPADDR=129.240.149.35 NETMASK=255.255.255.192 DNS1=129.240.2.27 DNS2=129.240.2.40 GATEWAY=129.240.149.1 TYPE=Ethernet NAME="em1" DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no HWADDR=00:22:64:9A:6B:3A PEERDNS=yes PEERROUTES=yes
Slo av NetworkManager:
systemctl stop NetworkManager.service service network start systemctl disable NetworkManager.service chkconfig network on
Slo av firewalld og slo på iptables:
systemctl stop firewalld.service systemctl start iptables.service systemctl disable firewalld.service systemctl enable iptables.service
1.1 Passord
Genererte passord for alle tjenester på openstack32.uio.no:
for k in KEYSTONE_DBPASS ADMIN_PASS GLANCE_DBPASS \
GLANCE_PASS NOVA_DBPASS NOVA_PASS DASH_DBPASS \
CINDER_DBPASS CINDER_PASS NEUTRON_DBPASS \
NEUTRON_PASS HEAT_DBPASS HEAT_PASS \
CEILOMETER_DBPASS CEILOMETER_PASS; do
pw=$(openssl rand -hex 10)
echo "$f=$pw" >> /root/passwords.sh
done
For å bruke et passord trenger man derfor bare gjøre:
. /root/passwords.sh
og kalle variabelen i shellet.
1.2 MySQL på controller
Installerte MySQL server på openstack32:
yum -y install mysql mysql-server MySQL-python
Satte bind til 129.240.149.35 i /etc/my.cnf:
[mysqld] ... bind-address=129.240.149.35
Startet MySQL og satte den til å kjøre ved boot:
systemctl start mariadb.service systemctl enable mariadb.service
Genererte passord for MySQL root:
openssl rand -hex 10 >> mysql_rootpw
Gjør MySQL ekstra sikker:
[root@openstack32 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client:
command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing
anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'.
This
ensures that someone cannot guess at the root password from the
network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so
far will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
1.5 Messaging server på controller
Installerte på openstack32:
yum -y install qpid-cpp-server memcached
Skrudde av autentisering i Qpid ved å editere /etc/qpidd.conf og sette:
auth=no
Slo på Qpid og satte den til å starte ved boot:
systemctl start qpidd.service systemctl enable qpidd.service
1.6 Til slutt
Rebootet alle noder.
2 Keystone (identity service)
Denne tjenesten er satt opp på controller (openstack32.uio.no).
2.1 Installasjon
Installerte pakker:
yum -y install openstack-keystone python-keystoneclient
Konfigurerte til å bruke MySQL-databasen:
openstack-config --set /etc/keystone/keystone.conf \
sql connection mysql://keystone:${KEYSTONE_DBPASS}@openstack32.uio.no/keystone
Laget database for Keystone:
[root@openstack32 ~]# openstack-db --init --service keystone --password $KEYSTONE_DBPASS Please enter the password for the 'root' MySQL user: Verified connectivity to MySQL. Creating 'keystone' database. Updating 'keystone' database password in /etc/keystone/keystone.conf Initializing the keystone database, please wait... Complete!
Definerte et admin-token som brukes som delt hemmelighet mellom Keystone og andre Openstack-tjenester:
ADMIN_TOKEN=$(openssl rand -hex 10) openstack-config --set /etc/keystone/keystone.conf DEFAULT \ admin_token $ADMIN_TOKEN
Laget PKI-sertifikater for Keystone:
[root@openstack32 ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone 2013-12-27 11:19:19.473 22763 INFO keystone.common.openssl [-] openssl genrsa -out /etc/keystone/ssl/certs/cakey.pem 2048 Generating RSA private key, 2048 bit long modulus .........................+++ .+++ e is 65537 (0x10001) 2013-12-27 11:19:19.563 22763 INFO keystone.common.openssl [-] openssl req -new -x509 -extensions v3_ca -passin pass:None -key /etc/keystone/ssl/certs/cakey.pem -out /etc/keystone/ssl/certs/ca.pem -days 3650 -config /etc/keystone/ssl/certs/openssl.conf -subj /C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com 2013-12-27 11:19:19.578 22763 INFO keystone.common.openssl [-] openssl genrsa -out /etc/keystone/ssl/private/signing_key.pem 2048 Generating RSA private key, 2048 bit long modulus ...........+++ ......................+++ e is 65537 (0x10001) 2013-12-27 11:19:19.675 22763 INFO keystone.common.openssl [-] openssl req -key /etc/keystone/ssl/private/signing_key.pem -new -nodes -out /etc/keystone/ssl/certs/req.pem -config /etc/keystone/ssl/certs/openssl.conf -subj /C=US/ST=Unset/L=Unset/O=Unset/CN=www.example.com 2013-12-27 11:19:19.687 22763 INFO keystone.common.openssl [-] openssl ca -batch -out /etc/keystone/ssl/certs/signing_cert.pem -config /etc/keystone/ssl/certs/openssl.conf -days 3650d -cert /etc/keystone/ssl/certs/ca.pem -keyfile /etc/keystone/ssl/certs/cakey.pem -infiles /etc/keystone/ssl/certs/req.pem Using configuration from /etc/keystone/ssl/certs/openssl.conf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :ASN.1 12:'Unset' localityName :ASN.1 12:'Unset' organizationName :ASN.1 12:'Unset' commonName :ASN.1 12:'www.example.com' Certificate is to be certified until Dec 25 10:19:19 2023 GMT (3650 days) Write out database with 1 new entries Data Base Updated [root@openstack32 ~]# chown -R keystone:keystone /etc/keystone/* /var/log/keystone/keystone.log
Notat
Bør vi egentlig sørge for at commonName etc. er fornuftig?
Startet Keystone og satte den til å starte ved boot:
systemctl start openstack-keystone.service systemctl enable openstack-keystone.service
2.2 Definere brukere, tenants og roller
Setter et par variable:
export OS_SERVICE_TOKEN=$ADMIN_TOKEN export OS_SERVICE_ENDPOINT=http://openstack32.uio.no:35357/v2.0
Lager tenants for admin-bruker og tjenester:
[root@openstack32 ~]# keystone tenant-create --name=admin --description="Admin Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Admin Tenant | | enabled | True | | id | 1d29e1f016344ef9867631d4f414b0c7 | | name | admin | +-------------+----------------------------------+ [root@openstack32 ~]# keystone tenant-create --name=service --description="Service Tenant" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Service Tenant | | enabled | True | | id | be63cafb62564e949bb4a17fb70f0008 | | name | service | +-------------+----------------------------------+
Lager en admin-bruker:
[root@openstack32 ~]# keystone user-create --name=admin --pass=$ADMIN_PASS --email=iaas-core@usit.uio.no +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | iaas-core@usit.uio.no | | enabled | True | | id | ea35d12002d447b195d0062c1859ea79 | | name | admin | | tenantId | | +----------+----------------------------------+
Lager en admin-rolle:
[root@openstack32 ~]# keystone role-create --name=admin +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | be25483de7c84741bb1bd13dd68707b6 | | name | admin | +----------+----------------------------------+
Knytter admin-brukeren til admin-rollen vha. admin-tenant:
[root@openstack32 ~]# keystone user-role-add --user=admin --tenant=admin --role=admin
2.3 Definere tjenester og endepunkter for API
Lager en service for selve Identity-tjenesten, som bruker normal autentisering istedenfor autorisering via token.
Lager først en service entry for Keystone:
[root@openstack32 ~]# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Keystone Identity Service | | id | 554af2e3c02d431bae41d6d39231372e | | name | keystone | | type | identity | +-------------+----------------------------------+
Spesifiserer et API-endpoint for Keystone vha. id-en som ble generert over:
[root@openstack32 ~]# keystone endpoint-create --service-id=554af2e3c02d431bae41d6d39231372e --publicurl=http://openstack32.uio.no:5000/v2.0 --internalurl=http://openstack32.uio.no:5000/v2.0 --adminurl=http://openstack32.uio.no:35357/v2.0 +-------------+--------------------------------------+ | Property | Value | +-------------+--------------------------------------+ | adminurl | http://openstack32.uio.no:35357/v2.0 | | id | b0723aa856a84b7681ea7f5b5df44722 | | internalurl | http://openstack32.uio.no:5000/v2.0 | | publicurl | http://openstack32.uio.no:5000/v2.0 | | region | regionOne | | service_id | 554af2e3c02d431bae41d6d39231372e | +-------------+--------------------------------------+
2.4 Verifiserer
Fjerner først variable satt tidligere:
unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
Ber om et admin-token vha. brukernavn/passord:
keystone --os-username=admin --os-password=$ADMIN_PASS \ --os-auth-url=http://openstack32.uio.no:35357/v2.0 token-get
Tester autorisering på en tenant:
keystone --os-username=admin --os-password=$ADMIN_PASS \ --os-tenant-name=admin \ --os-auth-url=http://openstack32.uio.no:35357/v2.0 token-get
Laget en fil /root/keystonerc:
cat << EOF > /root/keystonerc export OS_USERNAME=admin export OS_PASSWORD=$ADMIN_PASS export OS_TENANT_NAME=admin export OS_AUTH_URL=http://openstack32.uio.no:35357/v2.0 EOF
Sourcer denne filen:
. ~/keystonerc
Prøver uten argumenter:
keystone token-get
Sjekker at admin-kontoen virker og er satt opp riktig:
[root@openstack32 ~]# keystone user-list +----------------------------------+-------+---------+-----------------------+ | id | name | enabled | email | +----------------------------------+-------+---------+-----------------------+ | ea35d12002d447b195d0062c1859ea79 | admin | True | iaas-core@usit.uio.no | +----------------------------------+-------+---------+-----------------------+
3 Glance (Image service)
Denne tjenesten er satt opp på controller (openstack32.uio.no). Vi bruker for enkelthets skyld file backend, hvor images lagres under /var/lib/glance/images.
3.1 Installasjon
Lage eget volum og filsystem til Glance:
lvcreate -L100g -n glance-images internvg mkfs.ext4 /dev/internvg/glance-images
Dette ble montert opp på /var/lib/glance/images.
Installere Glance:
yum -y install openstack-glance
Konfigurerer:
openstack-config --set /etc/glance/glance-api.conf \
DEFAULT sql_connection mysql://glance:${GLANCE_DBPASS}@openstack32.uio.no/glance
openstack-config --set /etc/glance/glance-registry.conf \
DEFAULT sql_connection mysql://glance:${GLANCE_DBPASS}@openstack32.uio.no/glance
Lager database for Glance:
openstack-db --init --service glance --password $GLANCE_DBPASS
Lager en bruker for Glance til bruk mot Keystone:
[root@openstack32 ~]# keystone user-create --name=glance --pass=$GLANCE_PASS --email=iaas-core@usit.uio.no +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | iaas-core@usit.uio.no | | enabled | True | | id | 7dc097dca16d4aa6bd8710b45ee327f4 | | name | glance | | tenantId | | +----------+----------------------------------+ [root@openstack32 ~]# keystone user-role-add --user=glance --tenant=service --role=admin
Legger dette til i config-filene til Glance:
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_host openstack32.uio.no openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_user glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_tenant_name service openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_password $GLANCE_PASS openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_host openstack32.uio.no openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_user glance openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_tenant_name service openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_password $GLANCE_PASS
Kopierer config-filer til riktig sted:
cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini
Editerer /etc/glance/glance-api-paste.ini og /etc/glance/glance-registry-paste.ini og legger til under [filter:authtoken]:
auth_host=openstack32.uio.no admin_user=glance admin_tenant_name=service admin_password=*<GLANCE_PASS>* flavor=keystone
Registrerer Glance med Keystone:
[root@openstack32 ~]# keystone service-create --name=glance --type=image --description="Glance Image Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Glance Image Service | | id | 4d2839b037804618978221d4e655ca10 | | name | glance | | type | image | +-------------+----------------------------------+
Lager et API-endepunkt:
[root@openstack32 ~]# keystone endpoint-create --service-id=4d2839b037804618978221d4e655ca10 --publicurl=http://openstack32.uio.no:9292 --internalurl=http://openstack32.uio.no:9292 --adminurl=http://openstack32.uio.no:9292 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://openstack32.uio.no:9292 | | id | a07408a72dac418893fa64983a4d7bf4 | | internalurl | http://openstack32.uio.no:9292 | | publicurl | http://openstack32.uio.no:9292 | | region | regionOne | | service_id | 4d2839b037804618978221d4e655ca10 | +-------------+----------------------------------+
Starter glance-api og glance-registry og sørger for at de starter ved boot:
systemctl start openstack-glance-api.service systemctl start openstack-glance-registry.service systemctl enable openstack-glance-api.service systemctl enable openstack-glance-registry.service
Sørger for at glance kan skrive til images-filsystemet:
chown glance:glance /var/lib/glance chown glance:glance /var/lib/glance/images restorecon -Rv /var/lib/glance
3.2 Verifiserer
Laster ned et image:
cd /tmp wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img
Laster opp imaget:
[root@openstack32 ~]# glance image-create --name="CirrOS 0.3.1" --disk-format=qcow2 --container-format=bare --is-public=true < /tmp/cirros-0.3.1-x86_64-disk.img +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | d972013792949d0d3ba628fbe8685bce | | container_format | bare | | created_at | 2013-12-28T14:16:06 | | deleted | False | | deleted_at | None | | disk_format | qcow2 | | id | 23909183-9d63-4aca-887d-709044277356 | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | CirrOS 0.3.1 | | owner | None | | protected | False | | size | 13147648 | | status | active | | updated_at | 2013-12-28T14:16:06 | +------------------+--------------------------------------+
Lister opp:
[root@openstack32 ~]# glance image-list +--------------------------------------+--------------+-------------+------------------+----------+--------+ | ID | Name | Disk Format | Container Format | Size | Status | +--------------------------------------+--------------+-------------+------------------+----------+--------+ | 23909183-9d63-4aca-887d-709044277356 | CirrOS 0.3.1 | qcow2 | bare | 13147648 | active | +--------------------------------------+--------------+-------------+------------------+----------+--------+
4 Nova (compute service)
4.1 Installasjon av Compute controller services
Dette gjøres på controller-noden.
Installere pakker:
yum -y install openstack-nova python-novaclient
Konfigurerer:
openstack-config --set /etc/nova/nova.conf \
database connection mysql://nova:${NOVA_DBPASS}@openstack32.uio.no/nova
Konfigurerer for qpid:
openstack-config --set /etc/nova/nova.conf \ DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid openstack-config --set /etc/nova/nova.conf \ DEFAULT qpid_hostname openstack32.uio.no
Lager database og tabelle for Nova:
.. parsed-literal::
[root@openstack32 ~]# openstack-db --init --service nova --password $NOVA_DBPASS Please enter the password for the 'root' MySQL user: Verified connectivity to MySQL. Creating 'nova' database. Updating 'nova' database password in /etc/nova/nova.conf Initializing the nova database, please wait... Complete!
Konfigurerer my_ip, vncserver_listen, og vncserver_proxyclient_address til å lytte på det interne interfacet til controller-noden:
openstack-config --set /etc/nova/nova.conf \ DEFAULT my_ip 129.240.149.35 openstack-config --set /etc/nova/nova.conf \ DEFAULT vncserver_listen 129.240.149.35 openstack-config --set /etc/nova/nova.conf \ DEFAULT vncserver_proxyclient_address 129.240.149.35
Lager en Keystone-bruker for Nova:
[root@openstack32 ~]# keystone user-create --name=nova --pass=$NOVA_PASS --email=iaas-core@usit.uio.no +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | iaas-core@usit.uio.no | | enabled | True | | id | 500f375daa574e428938ccebd0b7d664 | | name | nova | | tenantId | | +----------+----------------------------------+ [root@openstack32 ~]# keystone user-role-add --user=nova --tenant=service --role=admin
Konfigurerer Nova til å bruke denne brukeren:
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host openstack32.uio.no openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357 openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password $NOVA_PASS
Legger til i /etc/nova/api-paste.ini, under [filter:authtoken]:
auth_host = openstack32.uio.no auth_port = 35357 auth_protocol = http auth_uri = http://openstack32.uio.no:5000/v2.0 admin_tenant_name = service admin_user = nova admin_password = <NOVA_PASS>
Patcher /etc/nova/nova.conf:
--- /tmp/nova.conf 2013-12-28 18:47:14.270626128 +0100 +++ /etc/nova/nova.conf 2013-12-28 18:47:34.848640057 +0100 @@ -291,7 +291,7 @@ # File name for the paste.deploy config for nova-api (string # value) -#api_paste_config=api-paste.ini +api_paste_config=/etc/nova/api-paste.ini # A python format string that is used as the template to # generate log lines. The following values can be formatted
Registrerer compute-tjenesten med Keystone (identity):
[root@openstack32 ~]# keystone service-create --name=nova --type=compute --description="Nova Compute service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Nova Compute service | | id | da83e981d6d9433e85d70a74cc24438b | | name | nova | | type | compute | +-------------+----------------------------------+
Lager et endepunkt:
[root@openstack32 ~]# keystone endpoint-create --service-id=da83e981d6d9433e85d70a74cc24438b --publicurl=http://openstack32.uio.no:8774/v2/%(tenant_id)s --internalurl=http://openstack32.uio.no:8774/v2/%(tenant_id)s --adminurl=http://openstack32.uio.no:8774/v2/%(tenant_id)s +-------------+-------------------------------------------------+ | Property | Value | +-------------+-------------------------------------------------+ | adminurl | http://openstack32.uio.no:8774/v2/%(tenant_id)s | | id | 0db753e3845c4b4391c9cf9e9702fcd9 | | internalurl | http://openstack32.uio.no:8774/v2/%(tenant_id)s | | publicurl | http://openstack32.uio.no:8774/v2/%(tenant_id)s | | region | regionOne | | service_id | da83e981d6d9433e85d70a74cc24438b | +-------------+-------------------------------------------------+
Starter tjenesten og sørger for at den starter ved boot:
systemctl start openstack-nova-api.service systemctl start openstack-nova-cert.service systemctl start openstack-nova-consoleauth.service systemctl start openstack-nova-scheduler.service systemctl start openstack-nova-conductor.service systemctl start openstack-nova-novncproxy.service systemctl enable openstack-nova-api.service systemctl enable openstack-nova-cert.service systemctl enable openstack-nova-consoleauth.service systemctl enable openstack-nova-scheduler.service systemctl enable openstack-nova-conductor.service systemctl enable openstack-nova-novncproxy.service
Verifiserer konfigurasjonen:
[root@openstack32 ~]# nova image-list +--------------------------------------+--------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+--------------+--------+--------+ | 23909183-9d63-4aca-887d-709044277356 | CirrOS 0.3.1 | ACTIVE | | +--------------------------------------+--------------+--------+--------+
4.2 Installasjon på compute-noder
Notat
Gjøres på openstack29 og openstack30
Installerer:
yum -y install openstack-nova-compute
Konfigurerer:
openstack-config --set /etc/nova/nova.conf database connection mysql://nova:${NOVA_DBPASS}@openstack32.uio.no/nova
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host openstack32.uio.no
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password $NOVA_PASS
Konfigurerer til å bruke Qpid message queue:
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname openstack32.uio.no
Konfigurere Compute til å gi remote console aksess til instanser (eksempel for openstack29):
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 129.240.149.32 openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 129.240.149.32 openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://openstack32.uio.no:6080/vnc_auto.html
Spesifiserer hvilken maskin som kjører Image (glance):
openstack-config --set /etc/nova/nova.conf DEFAULT glance_host openstack32.uio.no
Editerer /etc/nova/api-paste.ini og legger til under [filter:authtoken]:
[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = openstack32.uio.no auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = <NOVA_PASS>
Editerer /etc/nova/nova.conf, setter:
api_paste_config=/etc/nova/api-paste.ini
Starter Nova og sørger for at den kjører ved boot:
systemctl start libvirtd.service systemctl enable libvirtd.service systemctl start openstack-nova-compute.service systemctl enable openstack-nova-compute.service
5 Neutron (network service)
5.1 Database, bruker, endpoint
Lager database for Neutron:
[root@openstack32 ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 39 Server version: 5.5.34-MariaDB MariaDB Server Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> CREATE DATABASE neutron; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '<NEUTRON_DBPASS>'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '<NEUTRON_DBPASS>'; Query OK, 0 rows affected (0.00 sec)
Lage bruker for neutron:
[root@openstack32 ~]# keystone user-create --name=neutron --pass=$NEUTRON_PASS --email=iaas-core@usit.uio.no +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | iaas-core@usit.uio.no | | enabled | True | | id | fef60a05d6ea43fa892352331d6bc762 | | name | neutron | +----------+----------------------------------+
Legger til admin-rollen til neutron-brukeren:
keystone user-role-add --user=neutron --tenant=service --role=admin
Lager Neutron-tjenesten:
[root@openstack32 ~]# keystone service-create --name=neutron --type=network --description="OpenStack Networking Service" +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | OpenStack Networking Service | | id | 49ea07e380e749518635f5bea745e435 | | name | neutron | | type | network | +-------------+----------------------------------+
Lager endpoint for networking (bruker id-en over):
[root@openstack32 ~]# keystone endpoint-create --service-id 49ea07e380e749518635f5bea745e435 --publicurl http://openstack32.uio.no:9696 --adminurl http://openstack32.uio.no:9696 --internalurl http://openstack32.uio.no:9696 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | adminurl | http://openstack32.uio.no:9696 | | id | ba44948f0ab54cbdaed8ebe1a0963997 | | internalurl | http://openstack32.uio.no:9696 | | publicurl | http://openstack32.uio.no:9696 | | region | regionOne | | service_id | 49ea07e380e749518635f5bea745e435 | +-------------+----------------------------------+
5.2 Konfigurasjon av nett
Notat
Følgende på dedikert network-node, openstack31.uio.no.
Satte opp interfjes for data på em1.847, i filen /etc/sysconfig/network-scripts/ifcfg-em1.847:
DEVICE="em1.847" ONBOOT=yes BOOTPROTO=static IPADDR=129.240.149.98 NETMASK=255.255.255.192 TYPE=Ethernet VLAN=yes
Satte opp interfjes for ekstern på em1.848, i filen /etc/sysconfig/network-scripts/ifcfg-em1.848:
DEVICE="em1.848" ONBOOT=yes BOOTPROTO=static IPADDR=129.240.149.162 NETMASK=255.255.255.192 TYPE=Ethernet VLAN=yes
Satte kjerneparametre i /etc/sysctl.conf:
net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
Leste inn kjerneparametre:
sysctl -p
Restartet nettet:
service network restart
5.3 Installasjon av Neutron
Installerer Neutron:
yum -y install openstack-neutron
Konfigurerer Neutron i filen /etc/neutron/neutron.conf:
For Keystone:
Legger til DEFAULT:
auth_strategy = keystone
og under keystone_authtoken:
auth_host = openstack32.uio.no auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = neutron admin_password = <NEUTRON_PASS>
Under agent:
root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf
Konfigurerer til å bruke Qpid message queue, under DEFAULT:
rpc_backend = neutron.openstack.common.rpc.impl_qpid qpid_hostname = openstack32.uio.no qpid_port = 5672 qpid_username = guest qpid_password = guest
Konfigurerer database-backend, under database:
connection = mysql://neutron:<NEUTRON_DBPASS>@openstack32.uio.no/neutron
Editere /etc/neutron/api-paste.ini og legger til under [filter:authtoken]:
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = openstack32.uio.no auth_uri = http://openstack32.uio.no:5000 admin_tenant_name = service admin_user = neutron admin_password = <NEUTRON_PASS>
5.4 Installasjon av plugin (Open vSwitch)
Installerer Open vSwitch og avhengigheter:
yum -y install openstack-neutron-openvswitch
Starter tjenesten og sørger for at den startes ved boot:
systemctl start openvswitch.service systemctl enable openvswitch.service
Lager br-int integration bridge, som snakker med VM-er, og br-ex external bridge, som kommuniserer med verden utenfor:
ovs-vsctl add-br br-int ovs-vsctl add-br br-ex
Legger til en port (connection) fra det eksterne interfjeset em1.848:
ovs-vsctl add-port br-ex em1.848
Konfigurerer em1.848 til å være uten IP og i promiscuous mode. Endrer /etc/sysconfig/network-scripts/ifcfg-em1.848 til å inneholde følgende:
DEVICE="em1.848" ONBOOT=yes BOOTPROTO=none TYPE=Ethernet PROMISC=yes VLAN=yes
Lager /etc/sysconfig/network-scripts/ifcfg-br-ex med innhold:
DEVICE="br-ex" TYPE=Bridge ONBOOT=yes BOOTPROTO=none IPADDR=129.240.149.162 NETMASK=255.255.255.192 GATEWAY=129.240.149.129
Editerer L3- og DHCP-agentene til å bruke OVS og namespaces. Editerer /etc/neutron/l3_agent.ini og /etc/neutron/dhcp_agent.ini og setter i begge:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver use_namespaces = True
Konfigurerer Neutron til å bruke OVS. Editerer /etc/neutron/neutron.conf og legger til under DEFAULT:
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
Konfigurerer til å bruke GRE Tunnelling. Editerer /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:
[ovs] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True integration_bridge = br-int tunnel_bridge = br-tun local_ip = 129.240.149.98
Konfigurerer en firewall plugin. Editerer /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:
[securitygroup] # Firewall driver for realizing neutron security group function. firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
Konfigurerer OVS til å starte ved boot:
systemctl enable neutron-openvswitch-agent.service
5.5 Forts. konfigurasjon av Neutron
Konfigurerer Neutron til å bruke Dnsmasq for DHCP. Editerer /etc/neutron/dhcp_agent.ini:
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
Definerer en shared key for metadata mellom Neutron og Nova:
METADATA_PASS=$(openssl rand -hex 10)
Konfigurerer Nova til å bruke denne (gjøres på openstack32):
openstack-config --set /etc/nova/nova.conf DEFAULT \ neutron_metadata_proxy_shared_secret $METADATA_PASS openstack-config --set /etc/nova/nova.conf DEFAULT \ service_neutron_metadata_proxy true
Restarter nova-api på openstack32:
systemctl restart openstack-nova-api.service
Fikser metadata-konfigurasjon på network-noden (openstack31):
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
auth_url http://openstack32.uio.no:5000/v2.0
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
auth_region regionOne
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
admin_tenant_name service
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
admin_user neutron
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
admin_password $NEUTRON_PASS
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
nova_metadata_ip openstack32.uio.no
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT \
metadata_proxy_shared_secret $METADATA_PASS
Lager en symlink som Neutron forventer:
cd /etc/neutron ln -s plugins/openvswitch/ovs_neutron_plugin.ini plugin.ini
Restarter networking-tjenestene:
systemctl restart neutron-server.service systemctl restart neutron-dhcp-agent.service systemctl restart neutron-l3-agent.service systemctl restart neutron-metadata-agent.service
Restarter Open VSwitch:
systemctl restart neutron-openvswitch-agent.service
5.6 Oppsett på compute-noder
Notat
Gjøres på openstack29 og openstack30.
Satte opp interfjes for data på em1.847, i filen /etc/sysconfig/network-scripts/ifcfg-em1.847 (eksempel fra openstack29):
DEVICE="em1.847" ONBOOT=yes BOOTPROTO=static IPADDR=129.240.149.96 NETMASK=255.255.255.192 TYPE=Ethernet VLAN=yes
Tar opp interfjeset:
ifup em1.847
Skrur av packet destination filtering vha. kjerneparametre. Legger inn i /etc/sysctl.conf:
net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
Oppdaterer:
sysctl -p
Installerer Open VSwitch:
yum -y install openstack-neutron-openvswitch
Starter tjenesten og sørger for at den kjører ved boot:
systemctl start openvswitch.service systemctl enable openvswitch.service
Legger til br-int bridge som brukes til å snakke med VM-er:
ovs-vsctl add-br br-int
Legger til i /etc/neutron/neutron.conf:
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2 api_paste_config = /etc/neutron/api-paste.ini rpc_backend = neutron.openstack.common.rpc.impl_qpid
Konfigurerer til å bruke GRE i filen /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini (eksempel fra openstack29):
[ovs] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True integration_bridge = br-int tunnel_bridge = br-tun local_ip = 129.240.149.96
Konfigurerer firewall i filen /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini under [securitygroup]:
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
Konfigurerer OVS til å starte ved boot:
systemctl enable neutron-openvswitch-agent.service
5.7 Oppsett på controller-noden
Notat
Gjøres på openstack32.
Installerer pakker:
yum -y install openstack-neutron python-neutron python-neutronclient
Legger til i /etc/neutron/neutron.conf, under [DEFAULT]:
auth_host = openstack32.uio.no admin_tenant_name = service admin_user = neutron admin_password = <NEUTRON_PASS> auth_url = http://openstack32.uio.no:35357/v2.0 auth_strategy = keystone rpc_backend = neutron.openstack.common.rpc.impl_qpid qpid_hostname = openstack32.uio.no qpid_port = 5672 qpid_username = guest qpid_password = guest
Legger til i /etc/neutron/neutron.conf, under [agent]:
root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf
Legger til i /etc/neutron/neutron.conf, under [database]:
connection = mysql://neutron:<NEUTRON_DBPASS>@openstack32.uio.no/neutron
Legger til i /etc/neutron/api-paste.ini, under [filter:authtoken]:
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory admin_tenant_name = service admin_user = neutron admin_password = <NEUTRON_PASS>
Installerer Open VSwitch:
yum -y install openstack-neutron-openvswitch
Legger til i /etc/neutron/neutron.conf:
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
Konfigurerer til å bruke GRE. Legger til i /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini:
[ovs] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True
Forteller Nova om Neutron. Editerer /etc/nova/nova.conf:
network_api_class=nova.network.neutronv2.api.API neutron_url=http://openstack32.uio.no:9696 neutron_auth_strategy=keystone neutron_admin_tenant_name=service neutron_admin_username=neutron neutron_admin_password=<NEUTRON_PASS> neutron_admin_auth_url=http://openstack32.uio.no:35357/v2.0 linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=neutron
Konfigurerer firewall i Neutron, i /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini under [securitygroup]:
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
Lager symlink som Neutron trenger:
cd /etc/neutron ln -s plugins/openvswitch/ovs_neutron_plugin.ini plugin.ini
Starter neutron-server og sørger for at den kjører ved boot:
systemctl start neutron-server.service systemctl enable neutron-server.service
5.8 Lage Neutron basis nettverk
Rebootet openstack31 slik at alt av Neutron fikk en frisk start
Laget et eksternt nettverk ext-net:
[root@openstack31 ~]# neutron net-create ext-net -- --router:external=True --provider:network_type gre --provider:segmentation_id 2 Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | ebf89e09-e3b0-45ec-886e-7f1ec487f1cf | | name | ext-net | | provider:network_type | gre | | provider:physical_network | | | provider:segmentation_id | 2 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | 1d29e1f016344ef9867631d4f414b0c7 | +---------------------------+--------------------------------------+
Laget et subnett av det eksterne nettet:
[root@openstack31 ~]# neutron subnet-create ext-net --allocation-pool start=129.240.149.55,end=129.240.149.60 --gateway=129.240.149.1 --enable_dhcp=False 129.240.149.0/26 Created a new subnet: +------------------+------------------------------------------------------+ | Field | Value | +------------------+------------------------------------------------------+ | allocation_pools | {"start": "129.240.149.55", "end": "129.240.149.60"} | | cidr | 129.240.149.0/26 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 129.240.149.1 | | host_routes | | | id | c538187f-0d96-488d-bcaa-f4aa09aad7c3 | | ip_version | 4 | | name | | | network_id | ebf89e09-e3b0-45ec-886e-7f1ec487f1cf | | tenant_id | 1d29e1f016344ef9867631d4f414b0c7 | +------------------+------------------------------------------------------+Laget en tenant "demo":
[root@openstack31 ~]# keystone tenant-create --name demo +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | | | enabled | True | | id | 3957b5da38a94fb0a8115fc143941d7b | | name | demo | +-------------+----------------------------------+
Lage en router knyttet til det eksterne nettet, under tenant "demo" ved å bruke ID-en over:
[root@openstack31 ~]# neutron router-create ext-to-int --tenant-id 3957b5da38a94fb0a8115fc143941d7b Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | 021a1ee6-1e42-4f0b-a403-6e9fe20832d6 | | name | ext-to-int | | status | ACTIVE | | tenant_id | 3957b5da38a94fb0a8115fc143941d7b | +-----------------------+--------------------------------------+
Knyttet routeren til ext-net ved å definere en gateway lik ext-net. Brukerer ID-en til ext-to-int og ext-net:
[root@openstack31 ~]# neutron router-gateway-set 021a1ee6-1e42-4f0b-a403-6e9fe20832d6 ebf89e09-e3b0-45ec-886e-7f1ec487f1cf Set gateway for router 021a1ee6-1e42-4f0b-a403-6e9fe20832d6
Lager et internt nettverk for "demo", med et assosiert subnet over en intern IP-range (velger 10.5.5.0/24 som eksemplet i dokumentasjonen), og knytter det interne subnettet til routeren ved å sette det som en port:
[root@openstack31 ~]# neutron net-create --tenant-id 3957b5da38a94fb0a8115fc143941d7b demo-net --provider:network_type gre --provider:segmentation_id 4 Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | bd4d3448-8df5-4c53-9038-fef586e2eedc | | name | demo-net | | provider:network_type | gre | | provider:physical_network | | | provider:segmentation_id | 4 | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | 3957b5da38a94fb0a8115fc143941d7b | +---------------------------+--------------------------------------+ [root@openstack31 ~]# neutron subnet-create --tenant-id 3957b5da38a94fb0a8115fc143941d7b demo-net 10.5.5.0/24 --gateway 10.5.5.1 Created a new subnet: +------------------+--------------------------------------------+ | Field | Value | +------------------+--------------------------------------------+ | allocation_pools | {"start": "10.5.5.2", "end": "10.5.5.254"} | | cidr | 10.5.5.0/24 | | dns_nameservers | | | enable_dhcp | True | | gateway_ip | 10.5.5.1 | | host_routes | | | id | 5f47c934-5feb-4ada-8860-bcbfd0741d7b | | ip_version | 4 | | name | | | network_id | bd4d3448-8df5-4c53-9038-fef586e2eedc | | tenant_id | 3957b5da38a94fb0a8115fc143941d7b | +------------------+--------------------------------------------+ [root@openstack31 ~]# neutron router-interface-add 021a1ee6-1e42-4f0b-a403-6e9fe20832d6 5f47c934-5feb-4ada-8860-bcbfd0741d7b Added interface 19eda7db-84ab-4797-ae16-4e1bc051418c to router 021a1ee6-1e42-4f0b-a403-6e9fe20832d6.
6 Test av Compute
La til i /etc/nova/nova.conf på openstack29 og openstack30:
network_api_class = nova.network.neutronv2.api.API neutron_url = http://openstack32.uio.no:9696 neutron_auth_strategy = keystone neutron_admin_tenant_name = service neutron_admin_username = neutron neutron_admin_password = <NEUTRON_PASS> neutron_admin_auth_url = http://openstack32.uio.no:35357/v2.0 linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=neutron
Lager en security group "default" som tillater SSH og ICMP:
[root@openstack32 ~]# 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 | | +-------------+-----------+---------+-----------+--------------+ [root@openstack32 ~]# 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 | | +-------------+-----------+---------+-----------+--------------+
Laget en bruker "demo":
DEMO_PASS=$(openssl rand -hex 10)
La passordet inn i passwords.sh. Deretter:
[root@openstack32 ~]# keystone user-create --name=demo --pass=$DEMO_PASS --email=iaas-core@usit.uio.no +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | iaas-core@usit.uio.no | | enabled | True | | id | aedd5ea4bfba4e02923d5360e2e37552 | | name | demo | +----------+----------------------------------+
Knytter demo-brukeren til member-rollen vha. demo-tenant:
[root@openstack32 ~]# keystone user-role-add --user=demo --tenant=demo --role=_member_
Laget en fil ~/root/keystonerc-demo med samme innhold som ~/root/keystonrc, men for demo-brukeren.
Byttet til demo-brukeren:
. ~/keystonerc-demo
Laget ssh-nøkkel som root på openstack32:
ssh-keygen
Legger inn nøkkelen i Nova (dette funker ikke med selinux i enforcing mode, sikkert en bug):
cd ~/.ssh setenforce 0 nova keypair-add --pub_key id_rsa.pub root_openstack32 setenforce 1
Lister opp nøkler:
[root@openstack32 ~]# nova keypair-list +------------------+-------------------------------------------------+ | Name | Fingerprint | +------------------+-------------------------------------------------+ | root_openstack32 | 73:56:13:4c:25:d6:f9:2d:96:43:f8:82:3c:b5:05:67 | +------------------+-------------------------------------------------+
Lister opp smaker:
[root@openstack32 ~]# 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 | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
Får tak i ID-en til et image:
[root@openstack32 ~]# nova image-list +--------------------------------------+--------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+--------------+--------+--------+ | 23909183-9d63-4aca-887d-709044277356 | CirrOS 0.3.1 | ACTIVE | | +--------------------------------------+--------------+--------+--------+
Gjør launch av en instans:
[root@openstack32 ~]# nova boot --flavor 1 --key_name root_openstack32 --image 23909183-9d63-4aca-887d-709044277356 --security_group default cirrOS
+--------------------------------------+--------------------------------------+
| Property | Value |
+--------------------------------------+--------------------------------------+
| status | BUILD |
| updated | 2014-01-08T13:21:10Z |
| OS-EXT-STS:task_state | scheduling |
| key_name | root_openstack32 |
| image | CirrOS 0.3.1 |
| hostId | |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| flavor | m1.tiny |
| id | 56ccc9ba-4cfb-45b0-95f1-485b24ad0987 |
| security_groups | [{u'name': u'default'}] |
| OS-SRV-USG:terminated_at | None |
| user_id | aedd5ea4bfba4e02923d5360e2e37552 |
| name | cirrOS |
| adminPass | 6u584VVpRoV6 |
| tenant_id | 3957b5da38a94fb0a8115fc143941d7b |
| created | 2014-01-08T13:21:10Z |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| os-extended-volumes:volumes_attached | [] |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
+--------------------------------------+--------------------------------------+
Ser status:
[root@openstack32 ~]# nova list +--------------------------------------+--------+--------+------------+-------------+-------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+--------+--------+------------+-------------+-------------------+ | 56ccc9ba-4cfb-45b0-95f1-485b24ad0987 | cirrOS | ACTIVE | None | Running | demo-net=10.5.5.3 | +--------------------------------------+--------+--------+------------+-------------+-------------------+
Lister opp detailjer med nova show:
[root@openstack32 ~]# nova show 56ccc9ba-4cfb-45b0-95f1-485b24ad0987
+--------------------------------------+----------------------------------------------------------+
| Property | Value |
+--------------------------------------+----------------------------------------------------------+
| status | ACTIVE |
| updated | 2014-01-08T13:21:15Z |
| OS-EXT-STS:task_state | None |
| key_name | root_openstack32 |
| image | CirrOS 0.3.1 (23909183-9d63-4aca-887d-709044277356) |
| hostId | 446b374b3fccb8d7804e7e24a9792a1f94137b94da1657c3fef974bc |
| OS-EXT-STS:vm_state | active |
| demo-net network | 10.5.5.3 |
| OS-SRV-USG:launched_at | 2014-01-08T13:21:14.000000 |
| flavor | m1.tiny (1) |
| id | 56ccc9ba-4cfb-45b0-95f1-485b24ad0987 |
| security_groups | [{u'name': u'default'}] |
| OS-SRV-USG:terminated_at | None |
| user_id | aedd5ea4bfba4e02923d5360e2e37552 |
| name | cirrOS |
| created | 2014-01-08T13:21:10Z |
| tenant_id | 3957b5da38a94fb0a8115fc143941d7b |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| os-extended-volumes:volumes_attached | [] |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
+--------------------------------------+----------------------------------------------------------+
Noe er fremdeles galt, får ikke kjørt SSH mot instansen:
ssh cirros@10.5.5.3
Lister opp pools med floating IPs:
[root@openstack32 ~]# nova floating-ip-pool-list +---------+ | name | +---------+ | ext-net | +---------+
Allokerer en IP:
[root@openstack32 ~]# nova floating-ip-create ext-net +-----------------+-------------+----------+---------+ | Ip | Instance Id | Fixed Ip | Pool | +-----------------+-------------+----------+---------+ | 129.240.149.181 | None | None | ext-net | +-----------------+-------------+----------+---------+
Lister opp tilgjengelige IP-er:
[root@openstack32 ~]# nova floating-ip-list +-----------------+-------------+----------+---------+ | Ip | Instance Id | Fixed Ip | Pool | +-----------------+-------------+----------+---------+ | 129.240.149.181 | None | None | ext-net | +-----------------+-------------+----------+---------+
Lister opp instanser:
[root@openstack32 ~]# nova list +--------------------------------------+--------+--------+------------+-------------+-------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+--------+--------+------------+-------------+-------------------+ | 45fc7ea5-e7e2-4a8e-b3f1-e25ef0bd509a | cirrOS | ACTIVE | None | Running | demo-net=10.5.5.3 | +--------------------------------------+--------+--------+------------+-------------+-------------------+
Legger til:
[root@openstack32 ~]# nova add-floating-ip cirrOS 129.240.149.181
Lister opp igjen:
[root@openstack32 ~]# nova list +--------------------------------------+--------+--------+------------+-------------+------------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+--------+--------+------------+-------------+------------------------------------+ | 45fc7ea5-e7e2-4a8e-b3f1-e25ef0bd509a | cirrOS | ACTIVE | None | Running | demo-net=10.5.5.3, 129.240.149.181 | +--------------------------------------+--------+--------+------------+-------------+------------------------------------+
SSH funker fremdeles ikke:
ssh cirros@129.240.149.181
7 Horizon (dashboard)
FIXME.