OpenStack Identity Service – Bölüm 4
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.