Veritabanı olarak MariaDB kullanılmaktadır. Veritabanları birbirleriyle ilişkili bilgilerin depolandığı alanlardır. Lider Sunucu veritabanıdır. Bir kez kurulur.
Aynı parola 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 konsol(Uçbirim) da aşağıdaki komutun çalıştırılması yeterli olacaktır;
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ılmalıdır, bunun için konsolda;
ş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.
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.
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"**
Komutu ile “yapılandırma(konfigürasyon) kullanıcısı” şifresi girmenizi isteyecektir. Bu şifre LDAP sunucunuzun yapılandırma erişimi için gerekmektedir.
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ı, **$config_admin_pwd** 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.
komutu ile ldap'a Roles grubu eklenir. Bu komut sonrasında alınacak yanıt;
Enter LDAP Password:
adding new entry "ou=Roles,dc=liderahenk,dc=org"
şeklinde olmalıdır. Daha sonra;
sudo systemctl restart slapd.service
komutu ile OpenLDAP yeniden başlatılır. OpenLdap'ta oluşan Roles grubu altına roller tanımlanır.
####Örnek Rol Tanımlama####
Basit bir anlatımla bu grup altına bir rol tanımlayalım. Aşağıda satırları;
dn: cn=role1,ou=Roles,base_dn
objectClass: sudoRole
objectClass: top
cn: role1
sudoUser: pardus
sudoHost: ALL
sudoCommand: ALL
şeklinde örnek bir rolü;
pico ornek_role.ldif
ile açılan ekrana yapıştırarak **role1** alanına tanımlamak istediğiniz rolün ismini, **base_dn** kısmına ldap base_dn (Örn: dc=liderahenk,dc=org) tanımlaması yapın. Daha sonra;
komutu ile base_dn yazılarak yukarıdaki örnek rol sisteme eklenir. Örnekler için [https://linux.die.net](https://linux.die.net/man/5/sudoers.ldap) adresini ziyaret edebilirsiniz.
* **liderServiceAddress** değeri karşısına Lider Sunucu adresi tanımlanır. Bu değer **http://lider.liderahenk.org:8181** örneğinde olduğu gibi **lider.liderahenk.org** lider sunucu adresi ve **8181** portu yazılarak tanımlanmalıdır.
Bütün ahenklerin bağlandığı bileşendir. Lider Sunucu ve ahenkler bu bu bileşen üzerinden haberleşirler. Bir kez kurulur. Xmpp (Ejabberd) "Genişletilebilir Mesajlaşma ve Varlık Protokolü" olarak adlandırılır.
***/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.
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;
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.
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;
komutu ile kurulum tamamlanır. Kurulan bu dosya sunucu bilgileri **Lider Sunucu** konfigurasyonunda gereklidir. Dosya sunucu lider sunucudan farklı bir makine olacaksa;
komutları ile lider sunucu adımlarında kullanılacak dosya-dizinler oluşturulur. Bu dosya sunucunun ip adresi ve kullanıcı adı ve yukarıda oluşturulan dosya-dizin yolları**lider sunucu konfigürasyonunda** kullanılacaktır.
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 iletişim sağlayarak arayüzden yönetime olanak sağlar. Bir kez kurulur.
Pardus 17 sürümlerinde 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.
Bu adımda OpenLdap, XMPP ve Dosya sunucu ayarlarının lider sunucuya tanımlanması yapılır. Bu konfigurasyonlar sonucunda (veritabanı hariç) bileşenler birbirleri ile haberleşirler. Lider-sunucu yapılandırma dosyasının düzenlenmesi için;
NOT :Lider sunucu cluster yapıda kurulacaksa xmpp.resource değeri 2 sunucuda ayrı ayrı tanımlanmalıdır. Örneğin, 1.ci sunucuya Smack, 2.ci sunucuya Smack1 olarak yazılmalıdır.
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ı ve yukarıdaki dosya sunucu konfigürasyonuna tanımlanmalıdır.