Keystone - Identity asennus

controller.foo.bar

1. Asennetaan Keystone.

# apt-get install keystone

2. Luodaan satunnaisjono ADMIN TOKENia varten.

# openssl rand -hex 10
2729cf0a13bb8b70a263

3. Muokataan /etc/keystone/keystone.conf -tiedostoa.

[DEFAULT]
...
admin_token = 2729cf0a13bb8b70a263

[database]
...
connection = mysql://keystone:keystonedb@10.0.0.11/keystone

[revoke]
...
driver=keystone.contrib.revoke.backends.sql.Revoke

[token]
...
provider=keystone.token.providers.uuid.Provider
driver=keystone.token.backends.sql.Token

4. Synkronoidaan Keystone-tietokanta ja uudelleenkäynnistetään Keystone.

# keystone-manage db_sync
# service keystone restart

5. Keystone säilöö suuren määrän tokeneita tietokantaan, joten luodaan cronjob siistimään tietokanta tokeneista.

# crontab -l -u keystone 2>&1 | grep -q token_flush) || \
  echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1' \
  >> /var/spool/cron/crontabs/keystone

6. Asetetaan OS_SERVICE_TOKEN ja OS_SERVICE_ENDPOINT ympäristömuuttujat ja luodaan admin- ja demo-tunnukset.
OS_SERVICE_TOKEN on sama kuin aiemmin keystone.conf -tiedostoon määritelty admin_token.

# export OS_SERVICE_TOKEN=2729cf0a13bb8b70a263
# export OS_SERVICE_ENDPOINT=http://10.0.0.11:35357/v2.0

# keystone tenant-create --name admin --description "Admin Tenant"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |        OpenStack Identity        |
|   enabled   |               True               |
|      id     | c53526fbf578434c8c243a9f5e6b10f6 |
|     name    |            keystone              |
|     type    |             identity             |
+-------------+----------------------------------+

7. Luodaan admin-tunnus. Sähköpostiosoite on valinnainen asetus.

# keystone user-create --name admin --pass admin --email root@localhost
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |          root@localhost          |
| enabled  |               True               |
|    id    | e691284a715b475fb22082aefc0fd29b |
|   name   |              admin               |
| username |              admin               |
+----------+----------------------------------+

8. Luodaan admin-rooli.

# keystone role-create --name admin
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | dfdf887281394b74ba5dbe0f47838339 |
|   name   |              admin               |
+----------+----------------------------------+

9. Lisätään admin-tunnukselle admin-rooli ja lisätään tunnus admin tenant-ryhmään.

# keystone user-role-add --user admin --tenant admin --role admin
(Tämä komento ei tulosta mitään)

10. Luodaan demo-tenant.

# keystone tenant-create --name demo --description "Demo Tenant"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |           Demo Tenant            |
|   enabled   |               True               |
|      id     | cdf4dc3b5c024370baadce45cccf37d7 |
|     name    |              demo                |
+-------------+----------------------------------+

11. Luodaan demo-tunnus.

# keystone user-create --name demo --tenant demo --pass demo
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |                                  |
| enabled  |               True               |
|    id    | 3fddd3b1790a4cf1b459b6d3e94afe7a |
|   name   |              demo                |
| tenantId | 8e5fb3fc3c1f4c1fbfccdb68dc86e9ce |
| username |              demo                |
+----------+----------------------------------+

12. Luodaan service-tenant.

# keystone tenant-create --name service --description "Service Tenant"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |          Service Tenant          |
|   enabled   |               True               |
|      id     | 90100eee41594ab0a05ce5d5157650ef |
|     name    |             service              |
+-------------+----------------------------------+

13. Luodaan Keystone identity-service. Keystone service palvelee Openstackin muita palveluita ylläpitämällä ja tarjoamalla tietoa olemassa olevista serviceistä.

# keystone service-create --name keystone --type identity --description "OpenStack Identity"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |        OpenStack Identity        |
|   enabled   |               True               |
|      id     | fecd56e6c5764cada57f6931b0cf6d43 |
|     name    |            keystone              |
|     type    |             identity             |
+-------------+----------------------------------+

Endpoint määrittelee osoitteet, joiden avulla Openstackin muut servicet ja käyttäjät kommunikoivat Keystonen kanssa. Admin-rajapinta sallii mm. käyttäjien muokkaamisen. Public-rajapinnan kautta käyttäjät voivat hallita pilvipalveluitaan esim. internetin kautta. Internal-rajapinta on Openstackin sisäisen liikenteen käyttöön, mutta tässä esimerkissä public- ja internal-rajapinta sijaitsevat samassa management-verkossa.

14. Luodaan endpoint Keystonelle.

# keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') \
--publicurl http://10.0.0.11:5000/v2.0 --internalurl http://10.0.0.11:5000/v2.0 \
--adminurl http://10.0.0.11:35357/v2.0 --region regionOne
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
|   adminurl  |   http://10.0.0.11:35357/v2.0    |
|      id     | 528dfc4e0349440a8cd0124399f9b99b |
| internalurl |    http://10.0.0.11:5000/v2.0    |
|  publicurl  |    http://10.0.0.11:5000/v2.0    |
|    region   |            regionOne             |
|  service_id | fecd56e6c5764cada57f6931b0cf6d43 |
+-------------+----------------------------------+

15. Poistetaan OS_SERVICE_TOKEN ja OS_SERVICE_ENDPOINT -ympäristömuuttujat, ja testataan admin-tunnuksen toiminta.

# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT

# keystone --os-tenant-name admin --os-username admin --os-password admin \
--os-auth-url http://10.0.0.11:35357/v2.0 token-get
+-----------+----------------------------------+
|  Property |              Value               |
+-----------+----------------------------------+
|  expires  |       2016-10-06T07:09:03Z       |
|     id    | 9a782572b6864b64ae2d45ea9a1538f8 |
| tenant_id | c53526fbf578434c8c243a9f5e6b10f6 |
|  user_id  | e691284a715b475fb22082aefc0fd29b |
+-----------+----------------------------------+

16. Haetaan tunnusten tiedot.

# keystone --os-tenant-name admin --os-username admin --os-password admin \
--os-auth-url http://10.0.0.11:35357/v2.0 user-list
+----------------------------------+---------+---------+----------------+
|                id                |   name  | enabled |     email      |
+----------------------------------+---------+---------+----------------+
| e691284a715b475fb22082aefc0fd29b |  admin  |   True  | root@localhost |
| cdf4dc3b5c024370baadce45cccf37d7 |   demo  |   True  |                |
+----------------------------------+---------+---------+----------------+

17. Listataan tunnusten roolit.

# keystone --os-tenant-name admin --os-username admin --os-password admin \
--os-auth-url http://10.0.0.11:35357/v2.0 role-list
+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| f276a7ee361843a69e07a6cf58e51831 |  admin   |
+----------------------------------+----------+

18. Luodaan adminrc.sh- ja demorc.sh-tiedostot ympäristömuuttujia varten.

# vi adminrc.sh
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://10.0.0.11:35357/v2.0
# vi demorc.sh
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=demo
export OS_AUTH_URL=http://10.0.0.11:5000/v2.0