OpenStack Identity Service – Bölüm 4

tarafından 21 Mayıs 2016 tarihinde Openstack kategorisine yazıldı.

Merhaba,

Bir önceki bölümde OpenStack’de kullanılacak olan sunucuları hazırlamıştık. Bu bölümde sırayla servislerin kurulumuna başlayacağız. Ben bu bölümde Identity Service‘i yani code name keystone’u kuracağım. Bu işlem yanlızca controller node’u üzerinde yapılacaktır.

Identity service’i kurmadan ve ayarlamadan önce database oluşturmamız ve administration token oluşturmamız gerekmektedir.

mysql -u root -p

Bunun için öncelikle database’e connect oluyoruz. Tabi bu işlemi yaparken root user’ı kullanacağız.

CREATE DATABASE keystone;

Database’i oluşturuyoruz.


GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' IDENTIFIED BY 'KEYSTONE_DBPASS';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

KEYSTONE_DBPASS diye belirtilen bölüme kullanmak istediğiniz password’u yazmanız gerekiyor. Database başarı ile create edildikten sonra exit ile buradan çıkıyoruz.

 openssl rand -hex 10 

Yukarıdaki komut ile administration token’da kullanılmak üzere random bir değer oluşturuyoruz. Bunu mutlaka başka bir yere not edin çünkü bunu başka bölümlerde de kullanacağız.

Artık Identity service component’lerini kurup konfigurasyon yapabiliriz.

echo "manual" > /etc/init/keystone.override 

keystone service’inin installation’dan hemen sonra başlamaması için yukarıdak komutu çalıştırıyoruz.

 apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache 

Yukarıdaki komut ile paketleri artık kurabiliriz. Yukarıdaki komutu çalıştırıyoruz ve paketlerimiz kurulmaya başlıyor.

 /etc/keystone/keystone.conf 

Paketlerin kurulumu tamamlandıktan sonra yukarıdaki komut ile keystone.conf dosyasını editliyoruz. Buradaki dosyanın içerisine aşağıdaki değerleri yazmamız gerekiyor.


[DEFAULT]

admin_token = ADMIN_TOKEN

[database]

connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone

[memcache]

servers = localhost:11211

[token]

provider = keystone.token.providers.uuid.Provider

driver = keystone.token.persistence.backends.memcache.Token

[revoke]

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

[DEFAULT]

verbose = True

Yukarıdaki değerleri keystone.conf ‘un içerisine yazdıktan sonra kayıt edip buradan çıkış yapıyoruz. ADMIN_TOKEN bölümüne daha önce oluşturmuş olduğumuz random değer’i yazıyoruz. KEYSTONE_DBPASS bölümüne ise keystone db’sini oluştururken yazmış olduğumuz password’u yazmayı unutmuyoruz.

su -s /bin/sh -c "keystone-manage db_sync" keystone

Yukarıdaki komut ile Identity service database’inin içini dolduruyoruz. Sync işlemi yapıyoruz yani.

Apache HTTP server’in ayarları:

/etc/apache2/apache2.conf

Yukarıdaki komutu controller üzerinde çalıştırıyoruz ve aşağıdaki komutu bu dosyanın içine yazıyoruz.

ServerName controller 

Yukarıdaki veriyi apache2.conf’un içine yazdıktan sonra :wq! ile buradan çıkıyoruz.

 /etc/apache2/sites-available/wsgi-keystone.conf 

Yukarıdaki path’de ki conf dosyasını oluşturuyoruz ve aşağıdaki veriyi içerisine yazıyoruz.

Listen 5000
Listen 35357

<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /var/www/cgi-bin/keystone/main
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
LogLevel info
ErrorLog /var/log/apache2/keystone-error.log
CustomLog /var/log/apache2/keystone-access.log combined
</VirtualHost>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
LogLevel info
ErrorLog /var/log/apache2/keystone-error.log
CustomLog /var/log/apache2/keystone-access.log combined
</VirtualHost>

Dosyayı kayıt ediyoruz ve çıkıyoruz.

[/php]

ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled

[/php]

Yukarıdaki komut ile Identity service virtual host’u enable duruma getiriyoruz.

 mkdir -p /var/www/cgi-bin/keystone 

Yukarıdaki komut ile yeni bir directory oluşturuyoruz.


curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo | tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin

Yukarıdaki komut ile bu dizine WSGI deposundan bileşenleri kopyalıyoruz.


chown -R keystone:keystone /var/www/cgi-bin/keystone

chmod 755 /var/www/cgi-bin/keystone/*

Yukarıdaki komutlar ile oluşturulan directory’e permission’ları tanımlıyoruz.

Installation’ı tamamlamak için aşağıdaki komut ile apache servis’ini restart ediyoruz.

 service apache2 restart 

Son olarak default olarak SQLite Database’i oluşmuş durumdadır. Ubuntu paketleri ile birlikte default olarak geldiğinden bu database file’ini silebiliriz.

 rm -f /var/lib/keystone/keystone.db 

Yukarıdaki komut ile bu dosyayı siliyoruz.

Bir sonraki bölümde keystone api’larını tanımlayacağız.

Umarım faydalı olmuştur.

İyi çalışmalar.

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2015, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.