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.
İ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
Ş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
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.
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ş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.
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.
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ı.
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.
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.
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.
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.
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.
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.
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.
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
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
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.