Lider Ahenk Kurulumu ve Yönetimi

Lider Ahenk Kurulumu ve Yönetimi

 

Lider Ahenk’in bileşenleri.

Veritabanı Sunucusu (MariaDB)
LDAP (slapd)
XMPP (Ejabberd)
Dosya Sunucu
APACHE KARAF (Lider)

LiderAhenk kurulumu için gerekli paketler “repo.liderahenk.org” deposunda bulunmaktadır. Deponun sisteminize tanımlanması için uçbirim(konsol)da;

Komutları ile “liderahenk-archive-keyring.asc” key dosyası indirilerek sisteme yüklenmelidir. Ardından;

Komutu ile depo adresi “/etc/apt/sources.list” dosyasına eklenir. Bu adımı terminalde bir metin editörü (vi,nano,pico) yardımı ile ;

Satırını “/etc/apt/sources.list” dosyasına elinizle de tanımlayabilirsiniz. Daha sonra;

Komutu ile güncel paket listesi alınarak kurulumlara başlanmalıdır.

Veritabanı Sunucusu Kurulumu

Veritabanı olarak MariaDB kullanılmaktadır. Veritabanları birbirleriyle ilişkili bilgilerin depolandığı alanlardır. Lider Sunucu veritabanıdır. Bir kez kurulur.

Kurulum işlemleri aşamasında mariadb-server root şifresi ekrana gelir.

Bu örnekte root şifresi SIFRE olarak ayarlanmıştır.

Aynı şifre tekrar girilip enter tuşu ile kurulum işlemine devam edilir. Kurulum işlemi başarı ile gerçekleştikten sonra artık mariadb-server kurulumu tamamlanmış demektir.
Kurulum başarı ile sonlandıktan sonra LiderAhenk sistemi için utf8 karakter setini kullanan liderdb adında bir veritabanı oluşturulması gerekiyor. Bu işlemi tamamlamak için Linux konsol da aşağıdaki komutun çalıştırılması yeterli olacaktır.

Not: Eğer mariadb-server kurulu olan sunucu lider kurulumu yapılacak sunucudan bağımsız bir sunucu olacak ise, mariadb konfigürasyon dosyasında (/etc/mysql/my.cnf ) yer alan bind-address parametresi satırının önüne # simgesi yazılarak yorum şekline getirilmelidir. Bu sayede servis başka sunucuların erişimine açılmış olacaktır.

Şeklinde bu satır kapatılabilir veya lider-sunucu ip adresi yazılabilir. Lider sunucunun veritabanı sunucusundaki veritabanına ulaşması için liderdb database grant yetkilerinin verilmesi gerekir. Bunun için;

İle giriş yapılır.

İle veritabanı seçilir.

Komutu ile 41 karakter hexadecimal şifre üretilir. Daha sonra

Komutu ile grant yetkisi verilir.

Komutu ile mariadb’den çıkılır.

Yapılan düzenlemerin geçerli olması için yukarıdaki komut çalıştırılarak mariadb servisi yeniden başlatılır.
Veritabanın doğru şekilde kurulduğunu kontrol etmek için, veritabanının kurulu olduğu makinenin komut satırına gelerek;

Yazılarak (Şifre mariadb-server kurulum adımında belirlenen root şifresidir.) mariadb monitor ekranına giriş yapılır.

Veritabanlarının listesini alırız. liderdb veritabanının listede olduğu görülür ise veritabanı başarılı şekilde oluşturulmuştur.

LDAP Sunucusu

LDAP bileşeni için bu örnekte OpenLDAP kullanılacaktır. Lider ahenk, kullanıcı ve makine yönetimi için LDAP’a ihtiyaç duymaktadır. Kullanıcı ve makine bilgileri LDAP üzerinde tutulur ve Lider-Console (LiderAhenk arayüz uygulaması) ‘dan bu ldap’a bağlanarak politika yönetimi yapılır. Bir kez kurulur.

Komut sonrasında paket yöneticisi slapd kurulumu için ön gereksinimler var ise kurulacak bu bileşenlerin listesini gösterir ve kurulum için onay bekler.
Enter tuşu yardımı ile kurulum onaylandıktan sonra, doğrulanmamış paketler var ise tekrar bu paketlerin kurulumu için e/Eonay ekranı gösterilir. E yazıp Enter tuşuna basarak bu işlemi de onayladıktan sonra paket yöneticisi gerekli paketleri indirme ve kurma işlemine başlar.
Slapd kurulum sırasında kullanıcıdan bir yönetici (administrator) parolası belirlenmesini ister. Bu örnekte kullanıcı parolası SIFRE olarak belirlenmiştir.

Parola bilgisi olarak SIFRE girildikten sonra paket parolayı doğrulamanız için sizden tekrar girmenizi isteyecektir.

Tekrar SIFRE girdikten sonra enter tuşuna tıklayarak kuruluma devam edilir.
Paket yöneticisi slapd servisini başlattıktan sonra kurulumu tamamlar. Open LDAP temel kurulumu bu şekilde tamamlanmış olur.
Şimdi ldap dizin(veritabanı) ve dizin yöneticisi kullanıcısı oluşturmak için openldap konfigürasyonu yapalım. Bunu için;

Komutu çalıştırılmalıdır.

Hayır seçeneği seçilerek devam edilir.

Bu adımda temel “dn” adı verilir. Örneğin; “liderahenk.org” şeklinde alan adı girilerek “dc=liderahenk,dc=org” şeklinde temel DN’ye sahip dizin oluşturacaktır. “liderahenk.org” şeklinde “dn” bu alana yazılır.

Bu adımda örgüt adı (organizational name) girilmelidir. Bu alana kurum adı veya birim adı girilebilir. Örneğin; “LiderAhenk”

Slapd konfigure edilirken tekrar şifre ister, bir önceki adımda verilen şifre SIFRE verilir.

Aynı şifre girilerek Enter tuluna basılır.

Yukarıdaki seçeneklerden “HDB” seçilerek devam edilmelidir.

Slapd paketi tamamen kaldırıldığında veritabanının da kaldırılması için Evet seçeneği seçilerek devam edilmelidir.

Eski veritabanı taşıma sorusuna Hayır cevabı verilerek devam edilir.
Bu örnekte;
• Ldap domain adı : liderahenk.org
• Ldap dizin(Veritabanı) adı : dc=liderahenk,dc=org
• Ldap dizin(Veritabanı) Yönetici Kullanıcısı : cn=admin,dc=liderahenk,dc=org
• Ldap dizin(Veritabanı) Yönetici Kullanıcısı Şifresi : SIFRE

İşlem adımlarının kontrolünü yapalım. Bunun için bir ldap arayüzüne ihtiyacımız var. Bu örnekte test işlemi için Apache Directory Studio kullanılacaktır. Apache Directory Studio ldap arayüzünü https://directory.apache.org/studio/download/download-linux.html adresinden indirip kullanabilirsiniz.

Apache directory studio açıldıktan sonra sol tarafta bulunan bağlantılarım(connections) bölümüne sağ tıklayarak yeni bağlantı oluştur seçilir.

Burada ;
• Bağlantı adı (İsteğe bağlı bir bağlantı adı)
• Hostname (İp, sunucuda açılıyorsa localhost girilebilir)
• Port (Ldap portu)
bilgileri girilir.

Bağlantıyı kontrol et ile (Check network parameters) ile bağlantının doğruluğu kontrol edilir.

Bağlantı başarılı olmalıdır.

Ldap dizin (veritabanı) yöneticisi kullanıcı adı ve şifre(SIFRE olarak tanımlanmıştı) yazılarak, kullanıcı otantikasyonu test edilir.

Bağlantı başarılı sonucu vermelidir.

Bir sonraki adımda, Base DN ayarlaması yapılır. Buraya daha önce oluşturulan dizin(veritabanı adı girilir.) ve bitir ile bağlantı gerçekleştirilir.
LDAP sunucunuzun yapılandırma erişimi için bir şifre belileyin ve bunu LDAP şifre satırı haline getirin. Bunun için;

Komutu ile “yapılandırma(konfigürasyon) kullanıcısı” şifresi girmenizi isteyecektir. Be şifre LDAP sunucunuzun yapılandırma erişimi için gerekmektedir.

Ekranda beliren şifreyi kopyalayınız ve bu şifreyi;

Dosyanın içerisindeki olcRootDN: satırının altına
olcRootPW: {SSHA}KopyalayacağınızŞifreSatırı
Şeklinde kopyalayın, OpenLDAP sunucunuzu durdurun ve bunun için aşağıdaki komutu çalıştırın.

OpenLDAP sunucunuzu aşağıdaki komut ile yeniden başlatabilirsiniz.

Burada yapılandırma(konfigürasyon) yöneticisi kullanıcı adı “cn=admin,cn=config” dir. Şimdi lider ahenk şemalarını ldap’a yükleyelim. Bu şemelar ldap düğümleri oluşturma adında, düğümlere
– parduAccount
– pardusLiderAhenkConfig
– pardusLider
nesne sınıflarını oluşturmayı sağlar. Daha sonra liderahenk.ldif dosyası konsolda

Adresinden indirilerek /tmp klasörü altına kopyalanır. Lider ahenk şemaları varolan ldap’a yüklenmelidir. Bunun için ;

Komutu ile ldif ldap’a yüklenir. Burada cn=admin,cn=config config kullanıcısı, $CNCONFIGADMINPASSWDyapılandırma(konfigürasyon) kullanıcısı şifresidir. Bir önceki adımda belirlenmiştir. Örneğin;

Şeklinde olmalıdır.

Bu dosya herhangi bir ldap arayüzü ile ldap’a bağlanarakta sisteme yüklenebilir. Bu yüklemeden sonra ldap yeniden başlatılmalıdır. Bunun için aşağıdaki komutu çalıştırın.

NOT : Ldap yeniden başlatılmaz ise lider nesne sınıfları ldap düğümleri oluşturulurken görüntülenmeyecektir.

Apache Directory ile Ldap üzerinde;
* liderAhenkConfig Düğümü
* lider_console Kullanıcısı
* Ahenkler, Kullanıcılar Gurubu
düğümleri oluşturulur. Temel DN (bu örnekte dc=liderahenk,dc=org) üzerine;

Sağ tıklandıktan sonra “new/New Entry” adımları izlenerek oluşturulur.

“Sonraki(Next)” tuşuna tıklayarak devam edilir.

LiderAhenkConfig düğümü için “pardusLiderAhenkConfig” nesnesini seçip “Ekle(Add)” ile resimde görüldüğü üzere “Seçilmiş nesne sınıfı(Selected object classes)” bölümü eklenir. Bir sonraki adım için “Sonraki(Next)” tuşuna tıklayarak devam edilir.

“RDN” alanı “cn” olarak belirlenir ve “liderAhenkConfig” yazılarak devam edilir. Bunun ardından liderServiceAddress değişkenine

lider sunucu ip adresi http://x.x.x.x:8181 olarak yazılır. Burada lider sunucu ip adresi ahenk makinelerinin ve lider sunucunun erişebileceği şekilde olmalıdır. Not:Belirlenecek ip adresi localhost yani 127.0.0.1 olmamalıdır !

Lider konsol kullanıcısı oluşturmak için Ldap temel düğümü üzerinde sağ tıklanarak;

pardusAccount, pardusLider nesne sınıfları ve

inetOrgPerson nesne sınıfları seçilerek “Ekle(Add)” tuşuna tıklanarak “Seçilmiş nesne sınıfı(Selected object classes)” alanına eklenenir.

“RDN” alanı “cn” olarak belirlenir ve “lider_console” yazılarak lider konsol kullanıcısı oluşturulur.

Lider konsol kullanıcı şifresi belirlenir. “Tamam(OK)” tuşuna tıklanarak düzenleme tamamlanır.

Ldap düğümü üzerinde “lider_console” seçili iken ;

Sağ tıklanarak gelen menüde “Yeni Öznitelik (New Attribute)” seçeneğine tıklanır ve aşağıdaki resimde görülen “Öznitelik Tipi(Attibute type)” alanı açılır. Bu alanda;

Öznitelik tipi(Attribute type) liderPrivilege olarak seçilir. Bu alan lider konsol kullanıcısının yetkisinin belirlendiği alandır ve değer olarak;

[TASK:dc=liderahenk,dc=org:ALL:true] şeklinde belirlenir. Aynı şekilde yeni bir öznitelik ekleyerek [REPORT:ALL] verilir.
Burada dc=liderahenk,dc=org yerine ilgili veritabanı temel ismi yazılır. Bu temel isim ilgili kullanıcının yönetmesini istediğimiz düğüm anlamına gelmektedir. Bu kullanıcıya veratabanı temel ismini vererek bütün ldap ağacını yönetebilir demiş oluyoruz. ALL bütün eklentileri yönetebilir anlamına gelmektedir. True ise aktif durumda olduğunu gösterir.
Ahenkler, Kullanıcılar grublarını oluşturmak için ldap temel ismine sağ tıklayarak yeni düğüm oluştur seçeneği seçilir. Nesne sınıfını belirlemek içim “Next” tuşuna tıklayarak devam edilir.

Ahenkler düğümü için gelen menüde “organizationalUnit” nesne sınıfı eklenir.

“RDN”: alanı “ou” olarak belirlenir ve “Ahenkler” yazılarak grup oluşturulur. Ahenkler grubu seçili iken sağ tıklanır, gelen menüde “New Attribute” seçillerek “Attribute Type” alanına “description” yazılır ve “Finish”‘e tıklanır. Daha sonra bu alana “pardusDeviceGroup” yazılır. Bu adım “Ahenkler” grubu gibi oluşturulan tüm ahenk gruplarına uygulanmalıdır.
Aynı adımlar takip edilerek “Kullanıcılar” gurubu oluşturulur(Description tanımlaması sadece ahenk gruplarına uygulanır, kullanıcı gruplarında bu adıma gerek yoktur).

Son durumda ldap ağacı üzerinde son durum;

Şeklinde olmalıdır.
##XMPP Sunucu##
Xmpp (Ejabberd) “Genişletilebilir Mesajlaşma ve Varlık Protokolü” olarak adlandırılır. Komut satırında;

Adsinden indirilir;

Bütün ahenklerin bağlandığı bileşendir. Lider Sunucu ve ahenkler bu bu bileşen üzerinden haberleşirler. Bir kez kurulur. İndirilen dosya konsolda;

Kurma işlemi başlatılır.

Kurulum için konsolda;

Adresinde bulunan ejabberd.yml dosyasını;

Dosyasının yerine kopyalayınız. Kopyalama işleminden sonra gerekli konfigürasyon için aşağıdaki yolları izleyiniz.

Not: Bu konfigürasyon “ejabberd ejabberd-16.06” versiyonuna göre ejabberd.yml dosyasında yapılmıştır. Farklı bir sürümde yml dosyası değiştiği için bu yml için belirlenen ayarlar değişkenlik gösterebilir. Bu nedenle sürüm ve yml dosyalarının yukarıda kurulan sürümlerle aynı olmasına dikkat ediniz.
ejabberd.yml dosyasını konsolda bir editör ile açınız;

Localhost satırı kapatılır, altına kullanılacak *#SERVICE_NAME (Örn: liderahenk.org) tanımlaması yapılır.

ldap server farklı bir bilgisayarda ise ip, lider sunucu ile aynı bilgisayar ise localhost satırı açık kalmalıdır.

ldap rootdn(Örn:”cn=admin,dc=liderahenk,dc=org”) tanımlaması değiştirilir.

host_config (Örn: “im.liderahenk.org”: )satırları yukarıdaki şekilde olmalıdır.

Not: Ejabberd.yml dosyası çok hassas bir dosyadır, herhangi boşluk veya karakter hatasında çalışmayabilir. Bu nedenle konfigurasyon dosyasında mümkün olduğu kadar varolan ayaların üzerinde değişiklik yapılarak gidilmelidir. Yeni satır eklemek veya başka bir yerden veri kopyalamak hataya neden olabilmektedir.

Ejabberd.yml konfigürasyon dosyası düzenlendikten sonra ejabberd sunucusu aşağıdaki komutlar yardımı ile yeniden başlatılır.

Daha sonra

Çalıştırılır, çıktının aşağıdaki gibi olması gerekir. Aksi halde yml dosyasına dönülerek ayarlar kontrol edilmelidir.
“The node ejabberd@localhost is started with status: started ejabberd 16.06 is running in that node”

Ardından gerekli grup ve kullanıcıların oluşturulması işlemine gelir. Bu işlemler için sırası ile aşağıdaki komutlar çalıştırılır. Komutlar /opt/ejabberd-16.06/bin dizini altında çalıştırılmalıdır.

ile bin dizini altına gidilir. Ejabberd Admin kullanıcısı oluşturmak için;

Şeklinde #SERVICE_NAME (Örn: im.liderahenk.org) bilgisi ve #ejabberd_admin_pass (Örn: SIFRE) bilgileri girilir. Alınan cevap;
“User admin@#SERVICE_NAME successfully registered”

Şeklinde olmalıdır. Admin kullanıcısından sonra birde KARAF tarafından kullanılacak lider_sunucu(Farklı bir isim verilerbilir, fakat bu kullanıcı adı Karaf kurulumunda da verileceği için not edilmelidir) kullanıcısı oluşturulmalıdır. Bu senaryoda sadece 1 adet lider sunucusu olacağı varsayılarak lider_sunucu adında sadece 1 adet kullanıcı oluşturulmuştur. Eğer birden fazla lider sunucusu çalıştırılacak ise her birisi için aşağıdaki gibi bir kullanıcı oluşturulmalı ve daha sonra tanımlanacak lider yapılandırma ayarlarında her bir lider sunucusu için girilmelidir.

Bu şifreler daha sonra yapılandırma ayarlarında kullanılacak olduğu için unutulmamalıdır.

NOT: Ejabberd sunucusu lider ve diğer sunuculardan bağımsız ayrı bir sunucu üzerinde çalıştırılacak ise, yukarıdaki konfigürasyon örneğinde yer alan portların dışarıdan ulaşılabilir olması için gerekli firewall ayarlarının yapılması gerekmektedir.
Xmpp sunucusunun son durumda hatasız kurulduğunun testlerinin yapılması için;

Servis durdurulup tekrar başlatılır.
Bu çalışma sırasında ejabberd herhangi bir hata alıp çıkmıyor ve açık kalıyorsa kurulumumuz doğru yapılmış demektir. Aksi durumda kurulum adımını tekrar kontrol ediniz. Bu adımdan sonra “CTRL+C ” ile live çalışma modundan çıkılıp ejabberdctl başlatılır.

Dosya Sunucu

Eklentilerin üzerinde tutulacağı ve mesajlaşma ile yapılamayacak boyuttaki işlemlerin (ssh şeklinde) dosya aktarımı için kullanıcılacak sunucudur. Herhangi bir ssh ile erişimi sağlanacak bilgisayar olabilir, tercihen lider sunucuyu kullanıyoruz. Aşağıdaki paketler dosya aktarımı ve iletişim için gereklidir;

Lider Sunucu

Lider Sunucu, liderahenk uygulamasının merkezinde yer alır. Xmpp ile bütün ahenklerin yönetimi bu sunucu üzerinden yapılır. Bunun yanında üzerindeki rest servisler ile Lider-Console ( LiderAhenk arayüz uygulaması ) ile ilteşim sağlayarak arayüzden yönetime olanak sağlar. Bir kez kurulur.
JAVA_HOME çevresel değişkeni sisteme tanımlanmalıdır. Bunun için;

İle sistemde kurulu java sürümü ve yolu görüntülenir. Eğerbir java sürümü yoksa;

İle açılan dosyanın en atına;

ve

Burada {sdk ev dizini} ile belirtilen yere sdk ev dizini adı gelir. Bu adımdan sonra

ile yeni çevresel değişkenler sistem tarafından tanınmış hale gelir. (Bu adımda makinenin yeniden başlatılması önerilir. ) Bu işlemin testi için;

Ekrana oracle sdk ev dizini yolunu ekrana çıktı olarak veriyorsa işlem doğru yapılmış demektir.

Lider Sunucu’yu;

Adresinden indirerek;

İle /opt dizini altına atınız;

komutu ile açınız.

Lider-sunucu (karaf) uygulamasının bir servis olarak ayarlanması için öncelikle uygulama manuel olarak başlatılır. Bunun için lider-sunucu dosyalarının bulunduğu klasöre aşağıdaki komut ile gidilir.

Bin klasörüsünün içerisinden, uygulama başlatılır.
Karaf uygulaması çalıştığında konsol uygulama ekranına düşer, karaf modülleri ayağa kalktıkması beklenir. Ayağa kaltığını anlamak için konsola list yazılır ve uygulama durumları karaf üzerinde listelenir. Liste içerinde uygulama durumunda failure durumu varsa, sorun giderme başlığında lider sunucu adımında kurulum kontrolleri yapılarak kuruluma devam edilir. bin/karaf Servis dosyalarının oluşturulması için aşağıdaki komut karaf konsolda çalıştırılır.

Bu komut servis olarak çalışması için gerekli dosyaların oluşmasını sağlar. Bu komut ile karaf konsolunda yer alan şeklinde bir takım yazılar belirir. Karaf bu adımdan sonra durdurulur.
Karaf konsolda ;

Yazılarak kapanması sağlanır.Burada yer alan;

Çalıştırılır, artık karaf, servis olarak çalışmaya hazırdır.
Lider-sunucu yapılandırma dosyasının düzenlenmesi

Bu dosya düzenlenmek için açılır;

Tüm sunucular aynı ip’de ise localhost değeri kalabilir, farklı ipler bu alanlara tanımlanmalıdır. Ldap admin şifresi vd dn bilgileri tanımlanır.

Tüm sunucular aynı ip’de ise localhost değeri kalabilir, farklı ipler bu alanlara tanımlanmalıdır. Ejabberd da oluşturulan lider_sunucu ve host bilgileri yukarıdaki şekilde tanımlanır.
Ahenklerin hangi ou altında görüleceği bilgisi aşağıdaki gibi tanımlanır. Bu bilgi daha önce Ldap kurulumunda oluşturulan Ahenkler gurubudur.

Ldap base dn bilgisi tanımlanır.

Dosya sunucu kullanıcı adı, şifre bilgieri tanımlanır. Lider sunucudan farklı bir makine dosya sunucu olarak kullanılacaksa localhost değeri yerine ip bilgisi tanımlanmalı ve o makinede ssh portu açık, kullanıcının erişm bilgileri doğru tanımlanmalıdır.

Dosyaları dosya sunucu üzerinde konsolda;

komutları ile (kullanici_adi dosya sunucudaki kullanıcını home dizinidir) oluşturulmalıdır. Bu dizin ve dosyalar farklı adreslere tanımlanabilir, fakat bu tanımlamalara göre dosya ve dizinlerin oluşturulma işlemi gerçekleştirilmelidir.
Daha sonra

dosyasında;

Veritabanı konfigürasyonu yapılır. localhost alanına ip bilgisi,port, veritabanına erişimi olan kullanıcı ve şifre bilgisi tanımlanır.

Lider sunucu;

Yeniden başlatılarak lider sunucu kurulumu tamamlanır. Karaf servisinin başladığından emin olmak için

Çıktısına bakılır. Eğer “start” durumda değilse alternatif olarak;

Karaf çalıştırılır. Karaf servis olarak çalıştırılmışsa;

Şifre “karaf” ile sunucu durumu izlenebilir. Hatalı bir durum kontrolu için karaf konsolda;

Lider servislerinin aktif olmadığını görmek için karaf konsolda;

komutu çalışıtırılmalıdır.

Yararlanılan kaynaklar : https://github.com/Pardus-LiderAhenk/lider-ahenk-docs/blob/master/1.1.0/elle-kurulum/liderahenk-elle-kurulum.md