Category Archives: HowTo

Microsoft SQL Server 2017 on Linux AG Cluster Type None and External

Merhaba,

Bu makale Pacemaker ve Microsoft SQL Server on Linux yazılarının devamı niteliğinde olup, öncesinde bir göz atmanızda fayda olacağı düşüncesindeyim çünkü ilgili yazılardaki cluster kurulumu veMicrosoft SQL Server kurulumları bu makalede yok. Biraz uzun ama keyifli bir yazı olduğunu düşünüyorum.

Windows üzerindeki Availability Group (AG) yaratabilmek için Windows Server Failover Cluster (WSFC), Linux üzerinde ise WSFC’e karşılık Pacemaker kullanılıyor.

Windows üzerinde WSFC rolü çok büyük;  failover, health monitoring ve resource management dışında metadata bilgisinin ki içersinde hem WSFC konfigürasyonu, host edilen uygulama konfigürasyonu, node’lardaki değişikliklerin güncellenmesi ve bunların cluster’a yayılması gibi işlevleri var.

Linux üzerinde Microsoft SQL Server 2017 AG konfigürasyonu için iki tip cluster tipi mevcut, bunlardan biri EXTERNAL diğeri ise NONE. Aralarındaki fark ise kısaca ;

  • NONE, pacemaker ihtiyacı olmadan, sadece read scale ve manuel failover için kullanılıyor.
  • EXTERNAL, pacemaker kullanarak, otomatik failover sağlamak ve devamlığı artırmak için kullanılıyor.

Linux üzerinde WSFC servisi olmadığından bu konfigürasyon bilgileri (metadata) SQL Server instance tarafından master database’inde tutulmaya başlıyor buda bize herhangi bir witness olmadığında (file-share witness gibi) konfigürasyonun tutulacağı problem anında cluster’ın ayakta kalmasını sağlayacak üçüncü bir üyenin olması gerekliliğini yaratıyor, böylece bu üç node’a dağıtık bir metadata bilgisinin olmasını sağlıyor.

Yani kısacası, EXTERNAL tipinde yani Linux üzerinde otomatik failover olacak şekilde bir AG kuracaksanız, üç adet node’a ihtiyacınız var. Buda size üç adet lisans anlamına geleceğinden gözleriniz parlayabilir fakat şöyle bir hinlik yapılmış 🙂

Read the rest of this entry

Advertisements

Microsoft SQL Server 2017 on Linux

Merhaba,

Sonunda Active Directory olmadan, WSFC olmadan, Windows işletim sistemi olmadan Linux üzerinde MS SQL Server 2017 kurmak ve Availability Group oluşturmak mümkün sadece bazı desteklenmeyen özellikler ve servisler dışında ki MS SQL Server 2019 Preview’de gözüken bu engellerin çoğunun kalkıyor olması.

AD olmaması ve WSFC olmaması güzel fakat bir sonraki Availability Group kurulumlarında göreceksiniz ki bize ekstra birkaç kuruluma sebebiyet verecek.

Dikkat edilmesi gereken konulardan biri yedekleme, burada DPM gibi Veeam gibi Microsoft’un VSS’ini kullanan teknolojiler buraya uymuyor. Yedekleme metodlarınızı gözden geçirmelisiniz.

Screen Shot 2018-10-10 at 11.32.46

Read the rest of this entry

vCloud Director Boş Tenant Sayfası ve No Datacenters are available hatası

Merhaba,

Büyük bir merakla beklediğim vCloud Director 9.1 ve yeni tenant GUI’yi sonunuda test edip kurma şansım oldu.

Sadece vCloud Director değil, vCenter 6.7 , vSphere 6.7 , NSX 6.4 , vSAN 6.7 hatırlama ve kurma şansıda verdi bana.

Kurulumu tamamlanıp ile organizasyonu açıp login olduğunuzda eksi ara yüzü görünce bir dumur oluyorsunuz.

Akabinde yeni tenant link’ini keşfediyorsunuz. https://v91.dorukcloud.com/tenant/vahrictest/

Sonra artçı depremler gibi , önünüze bomboş bir sayfa ve “No Datacenters are available” gibi bir ekranla karşılaşıyorsunuz.

Aklınız Public Address kısmı geliyor ayarlarda eskiden iki üç ayarın yapıldığı 🙂 şimdi ise http için ayrı https için ayrı hatta sertifika zincirini bile girmeniz gerekiyor.

Sertifikayı browser’ınızdan alıp x.509 formatında root, intermediate ve domain sertifikası ile beraber ilgili kısma eklemeniz gerekiyor….

Ama değdi , güzel olmuş …

Sağol Mert Erdil kardeşim uyardığın için , ilk post problemin kendisi gibi boş olmuş ….

VM

vCloud Director 9.1 SSL Değişikliği

Merhaba,

Aslında SSL sertifikasını değiştirmek gibi bir niyetim yoktu fakat yanlış sertifikayı yükleyince birazda keytool openssl komutlarını unutunca bir referans olsun istedim.

Her farklı version’da farklı komut ve şekiller var gibi  duruyor onun için dikkat ilgili komutlar çalıştırılan herşey vCloud Director 9.1’de test edilmiştir.

Yine eski sürüm dökümanlarında “/opt/vmware/vcloud-director/bin/configure” kullanılmış, burada gerek yok, asil işi yapan “cell-management-tool” uygulaması ve bu konu için alt komut “cell-management-tool certificates”

vCloud Director 9.1 halen JCEKS keystore tipini kullanıyor, dikkat ben atladım PKCS12’de destekliyordur diye 🙂 desteklemiyormuş.

Bu dökümanda sertifika isteği yaratmayı değil elimizde imzalı bir sertifika olduğunu düşünerekten hareket ediyorum.

Bu arada sslshopper’da ne güzel yazmış tüm gerekli komutları 🙂 https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html

Yapıcağımız işlem üç adımdan oluşuyor

  1. Yeni bir keystore yaratıp sertifikaları buraya import edeceğiz
  2. Yeni keystore’u cell-management-tool eskinin yerine devreye alacağız
  3. Değişiklik devreye girsin diye vCloud Director cell’e ait servisi tekrardan çalıştıracağız

Elimizde bir pfx olduğunu düşünelim, önce ilgili private key’i elde edelim ki http ve consoleproxy için iki ayrı sertifika yaratalım kendisinden.

openssl pkcs12 -in elimizdeki.pfx -out certificate.cer -nodes

certificate.cer’i edit’lediğinizde “—–BEGIN PRIVATE KEY—–” ve “—–END PRIVATE KEY—-”  aralığını private.key dosyasına yazın.

Şimdi http ve consoleproxy için birer pfx yaratalım yeni alias’larıyla

openssl pkcs12 -export -in certificate.cer -inkey private.key -name http -out http.pfx -passout pass:pfx_i_koruyalim_şifresi

openssl pkcs12 -export -in certificate.cer -inkey private.key -name consoleproxy -out consoleproxy.pfx -passout pass:pfx_i_koruyalim_şifresi

Şimdi yeni bir keystore yaratalım bu sertifikalardan , elimizde ilgili sertifika sağlayıcının root ve intermediate sertifikalarınında hazır olduğunu düşünelim.

Dikkat sertifika yolu sizde farklı olabilir 😀
Burada yeni yarattığımız keystore “certificate3”

keytool -importkeystore -srckeystore /root/http.pfx -srcstoretype PKCS12 -destkeystore certificate3.ks -deststoretype JCEKS -deststorepass pfx_i_koruyalim_şifresi -srcalias http -destalias http -srcstorepass pfx_i_koruyalim_şifresi

keytool -importkeystore -srckeystore /root/consoleproxy.pfx -srcstoretype PKCS12 -destkeystore certificate3.ks -deststoretype JCEKS -deststorepass pfx_i_koruyalim_şifresi -srcalias consoleproxy -destalias consoleproxy -srcstorepass pfx_i_koruyalim_şifresi

Root sertifikasını store’a eklerken size buna güveneyim mi diye sorabilir yes deyip geçin şaşırmayın

keytool -importcert -alias root -file /root/addtrustexternalcaroot.crt -storetype JCEKS -keystore certificate3.ks -storepass pfx_i_koruyalim_şifresi

keytool -importcert -alias intermediate -file /root/comodorsaorganizationvalidationsecureserverca.crt -storetype JCEKS -keystore certificate3.ks -storepass pfx_i_koruyalim_şifresi

Eğer durum ne oldu diye görmek isterseniz

keytool -list -keystore certificate3.ks -storetype JCEKS -storepass pfx_i_koruyalim_şifresi

Intermediate olan sertifikayı silmek isterseniz

keytool -delete -alias intermediate -keystore certificate3.ks -storepass pfx_i_koruyalim_şifresi

Bu işlemden sonra ilgili keystore’un owner bilgilerini güncelleyelim

chown vcloud:vcloud certificate3.ks

Burada her bir alias için http ve consoleproxy ayrı ayrı sertifikayı değiştiriyoruz

/opt/vmware/vcloud-director/bin/cell-management-tool certificates -j -s /opt/vmware/vcloud-director/jre/bin/certificate3.ks -w pfx_i_koruyalim_şifresi

/opt/vmware/vcloud-director/bin/cell-management-tool certificates -p -s /opt/vmware/vcloud-director/jre/bin/certificate3.ks -w pfx_i_koruyalim_şifresi

Eğer hangisi consoleproxy hangisi http diye merak ettiyseniz 🙂

/opt/vmware/vcloud-director/bin/cell-management-tool certificates -h

Şimdi servisi kapayıp açalım ..

service vmware-vcd stop

service vmware-vcd start

Herşey yolunda olmalı ….

VM

vcsa 6.5 installer error – There is no ovftool :)

When tried to install vcsa 6.5 from my mac , i got an error like below , i guess each time install everybody will be faced with it

Copy “vcsa” folder inside the iso to related folder in the installer log 🙂

/private/var/folders/sl/dfqvsnj548g7wsq94wrmn3tm0000gn/T/AppTranslocation/

Then get back and click next again , also in vcsa folder you will see the vcsa.ova file too !

VM

Parted util failed with message: Error: The primary GPT table states that the backup GPT is located beyond the end of disk

Bu hatayi ilk kez vSphere 6.5 ile VSAN testi yapmak istedigimde daha onceden tanimli olan bir RAID0 konfigrasyonunu sifirladigimda karsilastim.

Haliyle akla gelen LiveCD ile acmak , Hiren’s.BootCD kullanmak veya daha otesi Windows makineye diskleri baglayip diskleri sifirlamak gibi seyler …

Daha enteresan olan ise vmware’in vSAN kurulumlarinda ilgili diskleri sisteme ekleme durumlarinda problemle karsilasildiginda (uzerinde partition var ise) onedigi partedUtil

Ne yalan soyliyim daha once kurulum sirasinda Alt+F1 ile konsola dusup hic default username/password ne diye aklima gelememisti, kendileri root ve enter ile bos gecin oluyorlar.

Sonrasi daha guzel diskler nerede ?

ls /vmfs/devices/disks/

Diskleri naa.xxxxxx.xxxxx , partitionlari :1  , :2 olarak goreceksiniz.

partedUtil ile yapilan fix , delete gibi gereksiz denemeler hic bir ise yaramdi , hep silmeye konsantre oldugumdan uzerine yazabilecegim aklima bile gelmemisti. Ilgili diski kullanarak bir msdos partition yaratalim.

partedUtil setptbl /vmfs/devices/disks/naa.600508b1001ce940a7831ba05a5475d3 msdos

Simdi tekrar ls cekin ve partitionlar nasil gitmis gorun

Gerekli diger disklerdeki problemleri giderdikten sonra Alt+F2 ile yola devam ..

VM

Openstack Security Group ve FWaaS , sadece cli !

Openstack neutron iki farkli katmanda guvenlik saglar. Ilki port bazli ki instance yaratilirken oncelike port yaratilir ve bu port’a atanan Security Group dogrultusunda VM-to-VM ayni L2 networkunde dair koruma saglayabilirsiniz. Ikincisi ise Router uzerinde, ne zamanki iki farkli network’u veya instance’lari internet’e ve/veya internet’den instance’lara dogru erisim soz konusu oldugunda Router uzerinde uygulanan firewall kurallari devreye girer. Baska bir deyisle Neutron NSX gibi kuzey-guney ve bati-dogu yollari uzerinde koruma saglar.

Security Groups

Security Group(SG), nova security group(NSG) uyumludur, ingress(giris)/egress(cikis) yonunde kural tanimlamanizi bunuda ilgili neutron portlarina uygulamaniza, gercek zamanli kural degisiklikleri uygulamaniza izin verir.

Davranis sekli giris yonunde sadece matched(uyan) aksi taktirde drop. Egress keza ayni fakat her yeni Security Group yaratildiginda disariya dogru tum trafik izinlidir.

Openstack uzerinde varsayili olarak “default security group” mevcut olup disa dogru tum trafik , security group icersinde tum trafik izinli olup disardan gelecek tum trafige karsi kapalidir.

Security Group sonuc olarak bir iptables uyarlamasidir fakat ML2 + OVS entegrastonu biraz karisiktir ve sirf iptables uygulanabilsin diye OVS ile instance arasinda linux bridge entegre edilmistir, ornek bir cizimi asagida gorebilirsiniz.

screen-shot-2016-10-18-at-11-25-05

Read the rest of this entry

sslvpnd can cause ha sync /Webinterface unresponsive issue? -another Fortinet story-

Today we faced Fortinet web interface become unresponsive,  we find out some articles and expect that killing/restarting httpd will be enough but we faced policy load issues for example try to list rules but we have empty response and after some time its gone and need to restart httpd to access webui again.

Then after some investigation we saw that cluster checksum is not consistent (command:diagnose sys ha cluster-csum)

Tried to sync ha config but not succeed (command:exec ha synchronize start) (for more pls check)

Then somehow we maybe did not prioritise  but cluster member which web interface is working but first snmp service stop response and then sslvpn connections are start to not work ! in this time what i remember we changed the password of sslvpn user but i don’t think that this help us but when we kill the sslvpnd magically non-responsive fortinet box become to run , after all checked ha csum its worked and snmp also start to work !

Actually if we did not try this (also vendor said that related firmware have a bug) we have to restart nodes and this will cause some downtime  . Version is 5.2.6

Some good link for debugging ha http://kb.fortinet.com/kb/documentLink.do?externalID=FD36494

diag  debug enable
diagnose  debug  console  timestamp enable
diag debug application hasync -1
diag debug application hatalk -1
execute ha synchronize start

When you can not kill process gently -another Fortinet story-

I expect that you know the pid but if its not you have two ways

Option 1

Walter (global) # diag test app snmpd 1

snmpd pid = 161

Option 2 (somehow related commands are not return some processes pids, then start to use fnsysctl )

List pid files then get pid id from related file

Walter (global) # fnsysctl ls /var/run/

Walter (global) # fnsysctl cat /var/run/snmpd.pid

161

Then execute (somehow diag sys kill 11 <pid_id> do not kill related pid)

Walter (global) # fnsysctl kill -9 161

thats it !