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.
![MariaDB Şifre-1](images/mariadb-sifre-1.png)
Bu örnekte root şifresi **SIFRE** olarak ayarlanmıştır.
![MariaDB Şifre-1](images/mariadb-sifre-2.png)
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.
mysql -uroot -pSIFRE -e "CREATE DATABASE liderdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"
Not: Eğer mariadb-server kurulu 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;
şeklinde bu satır kapatılabilir(yorum haline getirilir, bu konfigurason sonucunda veritabanına sadece o makineden erişim sağlanabilir) veya;
bind-address = 0.0.0.0
şeklinde yazılabilir(Bu sayede servis başka sunucuların erişimine açılmış olacaktır) veya;
bind-address = lider-sunucu-ip
lider-sunucu-ip adresi yazılabilir(Bu sayede servis sadece lider sunucunun erişimine açılmış olacaktır).
Bu ayarı nasıl bir yapı kurulacaksa ona göre şekillendirilmelidir. Tek bir sunucuda tüm lider bileşenleri olacaksa bu alana lider-sunucu-ip adresi yazılarak ilerlenebilir.
```
Lider sunucunun veritabanı sunucusundaki veritabanına ulaşması için liderdb database grant yetkilerinin verilmesi gerekir. Bunun için;
komutu ile 41 karakter hexadecimal şifre üretilir. Daha sonra
grant all privileges on * to root@' %' identified by 'hexadecimal_karakterler' ;
komutu ile grant yetkisi verilir.
exit
komutu ile mariadb'den çıkılır.
sudo systemctl restart mysql.service
Yapılan düzenlemerin geçerli olması için yukarıdaki komut çalıştırılarak mariadb servisi yeniden başlatılır.
##LDAP Sunucu##
LDAP bileşeni için bu örnekte OpenLDAP kullanılacaktır. LiderAhenk, 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.
sudo apt install slapd ldap-utils
komut sonrasında paket yöneticisi slapd kurulumu için ön gereksinim ya da gereksinimler var ise kurulacak bu bileşenlerin listesini gösterir ve kurulum için **E/e** onay bekler.
**Enter** tuşu yardımı ile kurulum onaylandıktan sonra, doğrulanmamış paketler var ise tekrar bu paketlerin kurulumu için **e/E** onay 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.
![Slapd Şifre-1](images/slapd-passw-1.png)
Parola bilgisi olarak **SIFRE** girildikten sonra paket parolayı doğrulamanız için sizden tekrar girmenizi isteyecektir.
![Slapd Şifre-2](images/slapd-passw-2.png)
Yine SIFRE girdikten sonra **enter** tuşuna tıklayarak kurulumun devam etmesi sağlanır.
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;
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.
![Slapd Örgüt Adı](images/slapd-orgut-adi.png)
Bu adımda örgüt adı (organizational name) girilmelidir. Bu alana kurum adı veya birim adı girilebilir. Örneğin; **“LiderAhenk"**
İş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.
![ADS Yeni Bağlantı](images/ads-yeni-baglanti.png)
Ldap dizin (veritabanı) yöneticisi kullanıcı adı ve şifre(SIFRE olarak tanımlanmıştı) yazılarak, kullanıcı otantikasyonu test edilir.
![ADS Bağlantı Son](images/ads-baglanti-dogrula-son.png)
Bağlantı başarılı sonucu vermelidir.
![ADS Base DN](images/ads-base-dn.png)
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;
sudo su
slappasswd
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.
New Password: <şifrenizigiriniz>
Re-enter new password: <şifrenizitekrargiriniz>
{SSHA}KopyalayacağınızŞifreSatırı
ekranda beliren şifreyi kopyalayınız ve bu şifreyi;
şeklinde kopyalayın, OpenLDAP sunucunuzu durdurun ve bunun için aşağıdaki komutu çalıştırın.
systemctl stop slapd.service
OpenLDAP sunucunuzu aşağıdaki komut ile yeniden başlatabilirsiniz.
systemctl start slapd
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
komutu ile ldif ldap'a yüklenir. Burada **cn=admin,cn=config** config kullanıcısı, **$CNCONFIGADMINPASSWD** yapılandırma(konfigürasyon) kullanıcısı şifresidir. Bir önceki adımda belirlenmiştir. Örneğin;
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.
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.
![ADS RN Add](images/ads-rn.png)
“RDN” alanı “cn” olarak belirlenir ve “liderAhenkConfig” yazılarak devam edilir.
Bunun ardından liderServiceAddress değişkenine
![ADS liderServiceAddress](images/ads-http.png)
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 127.0.0.1 olmamalıdır !
Lider konsol kullanıcısı oluşturmak için Ldap temel düğümü üzerinde sağ tıklanarak;
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;
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.
**“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).
***/opt/ejabberd-16.06/conf/ejabberd.yml*** 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;
sudo pico /opt/ejabberd-16.06/conf/ejabberd.yml
Açılan dosyada aşağıdaki satırlara gerekli bilgiler tanımlanı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.
cd /opt/ejabberd-16.06/bin
sudo ./ejabberdctl start
daha sonra
sudo ./ejabberdctl status
komutu ile alınan çıktıda
The node ejabberd@localhost is started with status: started
ejabberd 16.06 is running in that node
cevabı alınmış olmalıdır. Aksi halde yml dosyasına dönülerek ayarlar kontrol edilmelidir.
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.
cd /opt/ejabberd-16.06/bin
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ıcsıı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.
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;
./ejabberdctl stop
servisi durduruyoruz.
./ejabberdctl live
komutu ile ejabberd sunucusu çalıştırı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 çılır ve;
./ejabberdctl start
ile ejabberd sunucusu tekrar 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, 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.
Pardus 17 üzerinde java kurulu olarak geldiği için bu adıma gerek yoktur. Lider Sunucu Pardus Sunucu sürümü üzerine kurulacaksa aşağıdaki adımlar uygulanmalıdır.
sudo cp lider-distro-all_1.1.tar.gz /opt && cd /opt
komutu ile /opt dizini altına atınız;
sudo tar -xvf lider-distro-all_1.1.tar.gz
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.
cd /opt/lider-distro-1.1/bin
ve bu klasör içerisindeyken, uygulamayı başlatmak için uygulama dosyası aşağıdaki gibi çalıştırılır.
Karaf uygulaması çalıştığında konsol uygulama ekranına düşer, karaf modülleri ayağa kalkması beklenir. Bu esnada **tr.org.liderahenk** ile başlayan konfigurasyon dosyaları oluşur. 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.
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.
Dosya sunucu kullanıcı adı, şifre bilgieri tanımlanır. Lider sunucudan farklı bir makine dosya sunucu olarak kullanılacaksa **ip_adresi** 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.
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.