IT & IoT Security | Cloud | It's all about the life itself

Nothing in life is as important as you think it is, while you are thinking about it.

Openstack ile alıştırmalar 1

Merhaba,

Openstack nedir?” ile başlayacak olursak kısaca , “dünyada en hızlı büyüyen açık kaynak kodlu bulut projelerinden biridir” şeklinde tanımlayabiliriz. Biraz daha detaya inecek olursak “genel” ve “özel” bulut ortamlarında kullanabileceğiniz(mevcutta geniş çapta kullanımı olan) bulut işletim sistemidir.

IaaS – PaaS – SaaS üçlemesinden IaaS içinde yer almasının yanı sıra, Openstack tarafında başlayan güncel projeler ile(Ör: Magnum) PaaS içinde yer alan servisler de geliştirilmiştir. Mikro-servis uygulamalar için ochestration sağlayan en popüler yazılım ile , kubernetes – k8s , entegre çalışabilmektedir.

Bulut işletim sistemi şeklinde tariflediğimiz yapının önemli parçalarına( core projects ) göz atalım.

Nova

Compute servisidir. Hypervisor değildir. Hypervisor’a bağlantı sağlar. Instance(VM) ‘ların yaşam döngüsünden sorumludur.

Neutron

“Software defined networking” servisini sağlar. Bu katman sayesinde, her müşteri kendi sanal network altyapısını oluşturur ve yönetir.

Swift

Storage katmanında ölçeklenebilirlik sağlar. Uygulamalarınız RESTful API ile bu object tabanlı storage’e erişmesi mümkündür.

Glance

Image servisidir. Peki “Image servisi” nedir? 🙂  Instance oluşturmak istediğinizde, işletim sistemi sıfırdan kurulmaz. Image servisine eklediğiniz base image ‘dan üretilir. Şu adresten çeşitli image’ları tedarik edebilirsiniz.

http://docs.openstack.org/image-guide/obtain-images.html

Cinder

Genel bulut servislerini kullananlar hemen hatırlayacaktır. VM diskleri çoğunlukla ephemeral ‘dır.(genelde diskleri kalıcı değildir) Cinder, block based storage hizmeti sağlar. Bu servis ile instance ‘lara ek kalıcı diskler bağlayabilirsiniz.

Keystone

Authentication ve authorization için kullanılır. Bu servis içinde user ve role oluşturulur ve projelere atanır. Varsayılan olarak MariaDB ‘yi kullanır.

Üstte bahsettiğim 6 servis, bu yazıyı yazdığım an itibarıyla “6 core projects of openstack” olarak geçmektedir.

Bunların dışında kalanların bazıları:

Horizon > dashboard

Ceilometer > usage metering & billing

Heat > AWS CloudFormation benzeri

Trove > database as a service (relational ve non relational)

Sahara > big data servisi

Ironic > bare metal deployment

Zaqar > openstack messaging service

Manilla > shared file system service (share-based)

Designate > DNS as a service

Barbican > security & key management service

Magnum > container management service , kubernetes entegrasyonu sağlıyor.

Murano > application catalog servisi

Congress > Policy as a service (Governance and Compliance as services)

Dahası ve detayları için https://www.openstack.org/software/project-navigator/

Kurulumuna geçebiliriz. İncelemek , fikir sahibi olmak veya PoC amaçlı  ilk denemelerinizi yapıyorsanız CentOS üzerinde packstack ‘i kullanarak (“1” sunucu üzerinde) hızlıca kurabilirsiniz.

https://www.rdoproject.org/install/packstack/

Şu sürümü download edip kullandım.

CentOS Linux release 7.4.1708 (Core)

CentOS işletim sistemini kurarken static IP adresi ile ilerleyiniz(veya kurulumdan sonra da static IP adresi belirleyebilirsiniz). Hazırlık işlemleri oldukça kısa olup aşağıdaki gibidir.

  • yum install -y https://rdoproject.org/repos/rdo-release.rpm
  • systemctl stop NetworkManager; systemctl disable NetworkManager
  • yum install -y centos-release-openstack-pike
  • yum install -y openstack-packstack openstack-utils
  • packstack –gen-answer-file /root/answers.txt (iki adet dash karakteri)

Neutron servisi NetworkManager ile çalışamadığından onu devre dışı bıraktıyor.

Cevap dosyası üretirken python’dan kaynaklı şu hata ile karşılaşabilirsiniz.

ERROR : No module named pkg_resources

Şu komutlar ile kurulumu tazeleyin 🙂

yum install python-pip
pip install –upgrade pip (iki adet dash karakteri)

Ardından cevap(answer file) dosyasını üretebilirsiniz. Cevap dosyasında aşağıdaki değişiklikleri yapmıştım.

CONFIG_NTP_SERVERS=pool.ntp.org
CONFIG_KEYSTONE_ADMIN_PW=parola
CONFIG_DEFAULT_PASSWORD=parola
CONFIG_HORIZON_SSL=n
CONFIG_PROVISION_DEMO=n

Zaman önemli! NTP yapılandırmasına dikkat etmeliyiz. Keystone zaman duyarlı çalışıyor! NTP server olarak belirlediğini adres, erişilebilir olmalı. Horizon(dashboard) için sertifikanız varsa, onu kullanarak SSL’i “n” yerine “y” yapabilirsiniz. Kurulum sürecinin Demo tenant’ını otomatik olarak oluşturmasını isterseniz, DEMO=y şeklinde seçebilirsiniz. Answer file içinde bunların dışında fazlaca yapılandırma var. İnceleyebilirsiniz.

Artık kurulum komutunu çalıştırabilirsiniz.

packstack –answer-file /root/answers.txt (iki adet dash karakteri)

Test ortamımda yaklaşık 25 dakika sürdü. İşlem hatasız tamamlanırsa aşağıdakine benzer bir görüm ile sonlanacaktır.

Horizon( dashboard) ‘a erişim vb. çeşitli bilgiler üstte yazmaktadır.

[root@node1 ~]# cat keystonerc_admin komutu ile dashboard ‘da kullanacağınız username ve password bilgilerine ulaşabilirsiniz.

Dashboard’a göz atalım ve yazımı fazla uzatmadan bitireyim 🙂

Horizon’un ilk görünümü üstteki gibidir. Diğer alıştırmada görüşmek üzere 🙂

Herkese sorunsuz ve neşeli günler dilerim.