OpenStack Kurulumu

OpenStack, Rackspace Cloud ve NASA tarafından geliştirilen, bulut bilişim (cloud computing) alt yapısı olarak kullanılan bir cloud computing platformudur. OpenStack, bir veri merkezi boyunca hesaplama, depolama ve ağ kaynaklarının geniş havuzlarını denetleyen ve tüm kullanıcıların bir web arabirimi aracılığıyla kaynak sağlama yetkisi vererek yöneticileri kontrol etmesini sağlayan kontrol paneliyle yönetilen bulut işletim sistemidir. Sözü daha fazla uzatmadan kurulum aşamasına geçelim.

Kurulum

Git

İlk önce sistemimizde “git” kurulu olması gerekiyor çünkü OpenStack repositorysini sistemimize github üzerinden kopyalayacağız. Sistemimize git kurmak için komut ekranına aşağıdaki komutları kullanabiliriz:

$ apt-get update
$ apt-get install -y git

Kullanıcı Ekleme

Şimdi sistemimize stack isminde bir kullanıcı ekliyoruz.

$ sudo adduser stack
$ sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Oluşturduğumuz kullanıcıya geçiyoruz.

$ su - stack

Repository Kopyalama

Sistemimize github üzerinden “devstack” repositorysini kopyalıyoruz.

$ cd ~
$ git clone https://git.openstack.org/openstack-dev/devstack

Daha sonra OpenStack’i yüklemek için kullanacağımız devstack dizinine girdikten sonra stable branchini kullanacağız.

$ cd devstack
$ git checkout stable/xxx ### xxx kısmına güncel sürüm bilgisi gelmeli

Şimdi Openstack’i kurmak için artık şu komutu yazabiliriz.

$ ./stack.sh

Eğer kurulumdan sonra bir hata ile karşılaşırsanız sistemi durdurmak için şu komutu yazabilirsiniz.

$ ./unstack.sh

Kurulumu tamamen silmek için ise aşağıdaki komutu kullanabilirsiniz.

$ ./clean.sh

Sonra tekrar kurmak için yukarıdaki komutu tekrar kullanın.

Kurulum Sonrası

Eğer kurulum başarılı olduysa aşağıdaki gibi bir çıktı almamız lazım.

This is your host IP address: XXX.XXX.XXX.XXX
This is your host IPv6 address: ::1
Horizon is now available at http://XXX.XXX.XXX.XXX/dashboard
Keystone is serving at http://XXX.XXX.XXX.XXX/identity/
The default users are: $ADMIN
The password: $PASSWORD

Parola bilgisini kurulum sırasında bizden isteyecektir.

Arayüze bağlanmak için tarayıcıdan http://XXX.XXX.XXX.XXX/dashboard adresine gitmeliyiz. Yukarıda bulunan kullanıcı adı ve parolayı girdikten sonra aşağıdaki gibi bir ekranla karşılaşacağız.

Instance Oluşturma Aşamaları

Proje oluşturma

Instance oluşturabilmemiz için öncelikle bir proje oluşturmamız gerekmektedir. Kurulumdan sonra halihazırda açık olan admin kullanıcımızla Identity > Projects, sekmesi altında Create Project butonuna tıklıyoruz. Gerekli bilgileri oldurduktan sonra projemizi oluşturuyoruz.

Kullanıcı Oluşturma

Proje oluşturduktan sonra bu projeye bir kullanıcı atamamız lazım. Identity > Users sekmesi altından Create User butonunu kullanarak kullanıcı oluşturuyoruz. Kullanıcı oluşturulurken bağlanacağı projeleri seçebiliriz.

Yeni ‘example’ isminde bir kullanıcı oluşturduk. Halihazırda açık olan admin kullanıcısından çıkıp example kullanıcısı ile giriş yapıyoruz.

Network Ayarı

Network Açma

Oluşturacağımız Instance’ın bir networke dahil olabilmesi için bir network oluşturuyoruz. Project > Network > Networks sekmesine girip Create Network butonuna tıklıyoruz. Network ve Subnet alt sekmelerinde aşağıdaki gibi ayarlamaları yapıp bitiriyoruz.

Açılan sayfanın son hali aşağıdaki gibi olmalı.

Router Ekleme

Project > Network > Router sekmesi altında Create Router butonuna tıklıyoruz. Gerekli bilgileri aşağıdaki gibi doldurup tamamlıyoruz.

Bu kısımdan sonra Project > Network > Network Topology sekmesinde Graph altsekmesine giderek router’ın üzerine tıklıyoruz. Açılan pop-up ekranda Interfaces başlığı altında bulunan Add Interface butonuna tıklıyoruz. Gerekli bilgileri aşağıdaki gibi doldurup Submit diyoruz.

Security Groups

Project > Network > Security Groups sekmesi altında oluşturduğumuz bu networkümüz için bazı kurallar tanımlamamız gerekiyor. Önce bir Security Group oluşturuyoruz.

Sonrasında açtığımız Security Group un yanında bulunan Manage Rules butonuna tıklıyoruz. Burada gerekli yerleri doldurarak kuralları girebiliriz.

Floating IP

Makinemize erişebilmek için bir Floating IP allocate etmemiz gerekiyor. Project > Network > Floating IP sekmesinde Allocate IP To Project butonunu kullanarak bir IP adresi alıyoruz.

Key Pair

Makinemize SSH ile bağlanabilmek için bir key pair oluşturmamız gerekmekte. Project > Compute > Key Pairs sekmesi altında Create Key Pair butonuna tıklıyoruz ve key pair’e bir isim veriyoruz. Key Pair oluşturulduğunda sistemimize bir adet .pem uzantılı bir dosya inecektir. Bu dosyayı ssh ile bağlanırken kullanacağız.

Image Oluşturma

OpenStack ilk kurulumda default olarak bize cirros isminde bir image dosyası sunar. Kendi image dosyamızı yüklemek istersek Create Image butonuna tıklayarak aşağıdaki gibi yükleyebiliriz.

Instance Oluşturma

Project > Compute > Instance sekmesi altında bulunan Launch Instance butonuna tıkladığımızda karşımıza gelen penceredeki bilgileri aşağıdaki gibi dolduruyoruz.

Source kısmında bizden kurulumun yapılacağı alan bilgilerini ve bir image dosyası seçmemizi istiyor. Image dosyasını seçmek için Available kısmında bulunan image dosyalarının en sağında bulunan üzerinde yukarı bakan ok olan butona basmamız gerekiyor. Seçtiğimiz Image dosyası Allocated kısmına geçecektir.

Flavour kısmında bizden Virtual CPU, RAM ve Disk bilgilerini istiyor. Available kısmında bize sunulan seçeneklerden birini üzerinde ok bulunan tuşa basarak seçiyoruz.

Network sekmesinde oluşturduğumuz ve privateNetwork ismini verdiğimiz networkümüzü seçiyoruz.

Security Groups kısmında oluşturduğumuz ExampleSecurity ismindeki grubu seçtik.

Key Pair sekmesinde oluşturduğumuz key pair i seçiyoruz.

Sonrasında Launch Instance Butonuna tıklayarak kurulumun bitmesini bekliyoruz.

Kurulum bittikten sonra Project > Network > Floating IP sekmesi altında oluşturduğumuz IP adresinin yanında bulunan Associate butonuna tıklayarak eşlemeyi tamamlamamız gerekmektedir.


Bu kısımdan sonra konsol ekranımıza geçiyoruz.

ip netns show komutunu kullanarak oluşturduğumuz router’ın ID bilgisini kontrol ediyoruz.

ip netns exec <ROUTER_ID BİLGİSİ> ip a komutunu kullanarak router ın bağlantı bilgilerini inceleyebiliriz.

Key Pair oluştururken sistemimize indirdiğimiz .pem uzantılı dosyanın bulunduğu dizine gidiyoruz. (Bizim sistemimizde bu dosya ExampleKeyPair.pem ismine sahip.)

ssh -i ExampleKeyPair.pem [email protected]

komutu ile ssh bağlantımızı sağlayabilriz. Bu bağlantıda ExampleKeyPair.pem key pair dosyamız, ubuntu Instance içerisine kurduğumuz image dosyamızın varsayılan kullanıcısı ve XXX.XXX.XXX.XXX IP adresi ise bizim Associate ettiğimiz Floating IP adresidir.

8.8.8.8 IP adresine ping atarak bağlantıyı doğrulayabiliriz.

Kurulum Yaparken Olası Karşılaşılabilecek Sorunlar

No route to host

stack@openstacksrv:~$ sudo ssh -i ExampleKeyPair.pem [email protected]
ssh: connect to host XXX.XXX.XXX.XXX port 22: No route to host

Project > Network > Floating IP sekmesi altında oluşturduğumuz IP adresinin yanında bulunan Associate butonuna tıklayarak eşlemeyi tamamlamamız gerekmektedir.

Yetersiz İzin

stack@openstacksrv:~$ sudo ssh -i ExampleKeyPair.pem [email protected]

The authenticity of host 'XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX)' can't be established.
ECDSA key fingerprint is SHA256:cqvILtQT0/M6zm5MI/xudqC0ZuVoU1vn/mWZ68v1JT0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'XXX.XXX.XXX.XXX' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'ExampleKeyPair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "ExampleKeyPair.pem": bad permissions
Permission denied (publickey).

ExampleKeyPair.pem dosyasına aşağıdaki komut ile çalıştırma izni vererek sorun çözülebilir.

$ chmod +x ExampleKeyPair.pem

Kullanıcı ve Grup Bilgisi

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'ExampleKeyPair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "ExampleKeyPair.pem": bad permissions
Permission denied (publickey).

Kurulum yapılırken ExampleKeyPair.pem dosyasının oluşturulduğu kullanıcı dan farklı bir kullanıcı ile SSH bağlantısı yapılmak isteniyorsa böyle bir hata alınması muhtemeldir. Dosyanın kullanıcı ve grup bilgisi değiştirilmesi gerekiyor.

stack@openstacksrv:~$ ls -al ExampleKeyPair.pem
-rwxrwxrwx 1 root root 1679 Jun 27 11:04 ExampleKeyPair.pem

Burada da görüleceği üzere biz stack kullanıcısı ile SSH bağlantısı yapmaya çalışıyoruz fakat .pem dosyası root kullanıcısı tarafından oluşturulmuş. Aşağıdaki komutlar yardımı ile bu sorunu çözebiliriz.

$ sudo chown stack ExampleKeyPair.pem
$ chgrp stack ExampleKeyPair.pem

Bu değişim sonrasında ExampleKeyPair.pem dosyamızın bilgileri aşağıdaki gibi oldu.

stack@openstacksrv:~$ ls -al ExampleKeyPair.pem
-rwxrwxrwx 1 stack stack 1679 Jun 27 11:04 ExampleKeyPair.pem

‘Member’ Bulunamadı

Could not find default role "Member" in Keystone

Yukarıdaki gibi bir hata ile karşılaşılma durumunda Identity > Roles sekmesi altında bulunan member isimli kullanıcının rol ismini Member olarak değiştirmemiz sorunu çözmek için yeterli olacaktır.

Yazımı beğendiniz mi? Yorum yapın.

©

2022

| Burak Kıymaz
Top