Öncelikle OpenStack Nedir?

OpenStack, bulut bilişim altyapısını oluşturmak ve yönetmek için kullanılan açık kaynaklı bir platformdur. Büyük ölçekli özel ve genel bulutlar için ideal bir çözümdür. OpenStack, kullanıcıların donanım kaynaklarını sanal olarak kullanabilmelerini sağlayan modüler bir yapıya sahiptir.

OpenStack Bileşenleri

OpenStack’in başarısının anahtarı, birbirinden bağımsız ancak birlikte çalışabilen birçok bileşeni içermesidir. İşte OpenStack’in en önemli bileşenleri:

1. Compute (Nova):

Açıklama: Sanal makinelerin (VM) yaratılması, yönetimi ve otomasyonu için kullanılan bileşendir.

Özellikler: Hypervisor desteği, ölçeklenebilirlik, esneklik.

2. Networking (Neutron):

Açıklama: Ağ bağlantılarını yönetmek ve sanal ağlar oluşturmak için kullanılır.

Özellikler: VLAN desteği, dinamik IP atamaları, güvenlik grupları.

3. Storage (Swift ve Cinder):

Swift: Nesne depolama için kullanılır. Büyük miktarda veriyi dağıtık ve yedekli bir şekilde saklamaya olanak tanır.

Cinder: Blok depolama için kullanılır. VM’ler için kalıcı depolama sağlar.

4. Identity (Keystone):

Açıklama: Kimlik doğrulama, kullanıcı yönetimi ve izinlerin yönetimi için kullanılır.

Özellikler: Multi-tenancy, rol tabanlı erişim kontrolü, API token yönetimi.

5. Dashboard (Horizon):

Açıklama: Kullanıcıların OpenStack’i bir web arayüzü üzerinden yönetmesini sağlayan bileşen.

Özellikler: Kullanıcı dostu arayüz, projelerin ve kaynakların kolay yönetimi.

6. Image Service (Glance):

Açıklama: VM imajlarının saklanması, yönetimi ve dağıtımı için kullanılır.

Özellikler: Çoklu format desteği, versiyonlama, imaj paylaşımı.

7. Orchestration (Heat):

Açıklama: OpenStack kaynaklarını tanımlamak ve yönetmek için şablon tabanlı bir orkestrasyon motoru.

Özellikler: Otomasyon, tekrarlanabilir dağıtım, altyapı yönetimi.

8. Telemetry (Ceilometer):

Açıklama: Kullanıcıların bulut kaynaklarının kullanımını izlemelerine ve faturalandırmalarına olanak tanır.

Özellikler: Ölçümleme, izleme, alarm yönetimi.

9. Bare Metal Provisioning (Ironic):

Açıklama: Fiziksel makinelerin yönetimini ve otomatikleştirilmiş dağıtımını sağlar.

Özellikler: Fiziksel donanım yönetimi, bare-metal sunucuların otomatik kurulumu.

10. Container Orchestration (Magnum):

Açıklama: Docker konteynerlerini ve Kubernetes kümelerini OpenStack üzerinden yönetir.

Özellikler: Konteyner altyapısı, ölçeklenebilirlik, entegrasyon.

Diğer OpenStack bileşenlerini incelemek için buradan erişebilirsiniz.

OpenStack Victoria: Öngerekliliklerin Kurulumu

OpenStack Victoria sürümünü başarıyla kurabilmek için, aşağıdaki bileşenlerin ve hizmetlerin sistemde hazır olduğundan emin olmalısınız. Bu bileşenler, OpenStack’in temel işlevselliğini sağlayan önemli hizmetlerdir.

1. Control Node:

İşletim Sistemi: Ubuntu Server 20.04 (LTS)

Control node, OpenStack bileşenlerinin büyük bir kısmının çalıştığı ana düğümdür. Yönetim, izleme ve kontrol işlemleri burada gerçekleştirilir.

2. MariaDB:

OpenStack’in veritabanı yönetim sistemi olarak kullanılır. Veritabanı bağlantılarını yönetir ve bileşenler arasındaki veri tutarlılığını sağlar.

Daha fazla bilgi için MariaDB resmi web sitesi ziyaret edilebilir.

3. RabbitMQ:

RabbitMQ, OpenStack bileşenleri arasında mesajlaşmayı sağlayan bir message broker’dır. Bileşenlerin birbirleriyle etkili bir şekilde iletişim kurmasını sağlar.

Daha fazla bilgi için RabbitMQ resmi web sitesi ziyaret edilebilir.

4. Memcached:

Memcached, dağıtık bir bellek nesne önbellekleme sistemidir. OpenStack bileşenleri arasında verilerin hızlı bir şekilde önbelleğe alınmasını sağlar.

Daha fazla bilgi için Memcached resmi web sitesi ziyaret edilebilir.

5. NTP Sunucusu (Chrony):

OpenStack bileşenlerinin doğru zaman senkronizasyonu için bir NTP (Network Time Protocol) sunucusu kullanılır. Chrony, bu amaçla kullanılan popüler bir NTP sunucusudur.

Chrony kurulumu ve yapılandırması, ağdaki tüm düğümlerin doğru zaman ile senkronize olmasını sağlar.

Ek Gereksinimler

OpenStack Victoria’nın sorunsuz bir şekilde çalışabilmesi için aşağıdaki gereksinimler de dikkate alınmalıdır:

Python: OpenStack bileşenlerinin büyük bir kısmı Python ile yazıldığından, uygun Python sürümü sistemde kurulu olmalıdır.

Open vSwitch: Ağ yönetimi için kullanılan bir sanal anahtarlama platformudur.

Libvirt: Sanal makinelerin yönetimi için kullanılan bir kütüphanedir.

DNS ve DHCP Sunucuları: Ağ yapılandırmalarının doğru bir şekilde yapılabilmesi için DNS ve DHCP sunucularının düzgün çalışması gereklidir.

Bu gereksinimler, OpenStack’in işlevselliğini tam anlamıyla sağlamak için kritik öneme sahiptir. Kuruluma başlamadan önce, bu bileşenlerin ve hizmetlerin sistemde hazır olduğundan emin olmanız önemlidir.

Ntp Server Kurulumu(chronyd)

apt -y install chrony
nano /etc/chrony/chrony.conf
#Varsayılan satırlar kapatılır ve 17.satıra chrony server IP veya dns ismi girilir.
#pool ntp.ubuntu.com iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool dns_server_IP/DNS iburst
#Dosyanın sonuna Saat'leri ntp server’den alacak clientların subnet'ine izin verilir.
allow NTP_SERVERDEN_ZAMANI_ALACAK_SUBNET
systemctl restart chrony
systemctl enable chrony
chronyc tracking

MariaDB Server Kurulumu

apt -y install mariadb-server
nano /etc/mysql/mariadb.conf.d/50-server.cnf
#Karakter set’in aşağıdaki gibi olmasını kontrol etme
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci
systemctl restart mariadb
systemctl enable mariadb

MariaDB başlangıç ayarlarının konfigurasyonu için;

mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
# set root password
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
# remove anonymous users
Remove anonymous users? [Y/n] y
 ... Success!
# disallow root login remotely
Disallow root login remotely? [Y/n] y
 ... Success!
# remove test database
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
# reload privilege tables
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB! 
# connect to MariaDB with root
# [Unix_Socket] authentication is default

Ubuntu Openstack Repository’sini ayarlama

apt -y install software-properties-common
add-apt-repository cloud-archive:victoria
apt -y update
apt -y upgrade

RabbitMQ, Memcached Kurulumu

apt -y install rabbitmq-server memcached python3-pymysql
#Kullanıcı ekleme ve şifre verme
rabbitmqctl add_user openstack password
Creating user "openstack" ...
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 28.satır değiştirilir: Normalde 127.0.0.1 Ipsi fakat server dışından DB’ye erişmek için değiştirmek gerekir.
bind-address = 0.0.0.0
# 40.satır değiştirilir ve aktif edilir.: # default değeri 100 fakat Openstack Ortamı için yeterli sayı değil.
max_connections = 500
nano /etc/memcached.conf
# 35.satır değiştirilir: default’ta 127.0.0.1 sadece lokal IP dinlenir. Openstack’teki tüm IP’leri dinlemesi için.
-l 0.0.0.0
systemctl restart mariadb rabbitmq-server memcached

Temel bileşenleri bu adımlarla kurmuş olduk. Bir sonraki makalede KeyStone kurulumuna anlatacağım.