Çarşamba, Haziran 29, 2022

Sunucu Sıkılaştırma (Server Hardening)


Sunucu sıkılaştırması [1] siber güvenlik şemsiyesinin altında “sistem yöneticilerinin” mutlaka üzerine düşünmesi ve vakit kaybetmeden uygulamaya başlaması gereken bir kavramdır. O halde önce ne olduğunu açıklayalım;

Sunucu sıkılaştırması, sunucuların “daha” güvenli olması için gereken tüm önlemlerin standart olarak uygulanması ve ihtiyaçlara göre geliştirilmesi sürecidir.

İşletim sistemleri genel olarak güvenliği ön plana koyuyor gibi görünse de pek çok sıkı güvenlik önlemini aslında “kullanıcı inisiyatifine” bırakır. Bunun temel sebebi de “kullanıcı dostu” olabilmektir. Ancak özellikle “sunucu işletim sistemleri” için risk düşünülenden daha büyük olur. Ufak bir risk analizi yapıldığında bile bu ortaya çıkacaktır.

Öyleyse, bu işe nerden başlamalıyız?

Öncelikle bütüncül bir yaklaşımla tüm sistemlerdeki minimum güvenlik gereksinimlerini ortaya çıkarılmalıdır. Olmazsa olmaz gereksinimler harici elbette her sektörün, kurumun ve hatta kullanıcı grubunun farklı güvenlik ihtiyaçlarının olduğunu görülecektir.

Ardından hızlıca bir kontrol listesi çıkarmak da ilk adımlardan biridir. Kontrol listesi daha önce de belirttiğim gibi her ihtiyaca göre farklılık gösterse de genel kabul görmüş “olmazsa olmaz” listelerden başlamak en iyisidir. Elbette kontrol listesi Windows ve Linux sunucular için farklı olacaktır. En temel kabul edilen ve listenin başına eklenmesi gereken sıkılaştırma adımlarını ayrı ayrı inceleyelim;

Genel Sıkılaştırma Kuralları:

İşletim sistemlerinden bağımsız olarak tüm sistemlerde mutlaka olması gereken sıkılaştırma adımlarından birkaç tanesini sıralayabiliriz;

· Mutlaka kullanıcı parolalarının belli sıklıkla değiştirilmesi, kompleks olması gibi genel kural zorunlu tutulmalıdır.

· Kullanılmayan kullanıcılar etkisizleştirilmelidir. Bu madde için belli bir süre logon olmayan kullanıcıların otomatik olarak disable olması sağlanabilir.

· Backup/restore süreçleri planlamalı ve düzenli olarak test edilmelidir.


Windows Sunucu Sıkılaştırma:

Windows sunucuların bir Active Directory domainine bağlı olduğunu öngörerek pek çok sıkılaştırma özelliği Group Policy’ler aracılığı ile tüm domaine yollanabilir ve kolayca tüm sistem aynı seviyeye ulaştırılabilir. Bunun için zaten Active Directory ile gelen kurallardan da faydalanılabilirken, kendi kurallarınızın yazılabilmesi de mümkündür.

Windows sunucular için yazılabilecek temel sıkılaştırma kontrol listesi yaklaşık olarak aşağıdaki şekilde başlayabilir;

Kullanıcı İşlemleri;

* Guest hesabı mutlaka disable edilmiş olmalıdır. (Genelde yeni nesil Windows Sunucularda zaten disable durumdadır. Daha çok bakış açısı hakkında fikir vermesi için ekledim bu maddeyi J)

* Local Administrator hesabı disable edilmelidir İhtiyaç varsa da bir local kullanıcı oluşturulmalı ve Administrators grubuna eklenmeli.

* Mutlaka UAC (User Account Control) aktifleştirilmelidir.

Network;

* Windows Firewall etkinleştirilmelidir. Sadece gerekli portlar/uygulamalara izin verilmelidir. (Eğer 3 parti bir firewall kullanılmıyorsa)

* RDP Servisi sadece local erişime mümkünse belli IP’lere tanımlanmalıdır.

* İhtiyaç yoksa mutlaka internet çıkışı engellenmeli. İhtiyaç için bile kontrollü olmasına dikkat edilmelidir.

* NTP (Network Time Protocol) aracılığı ile mutlaka tüm sunucuların saatleri senkron olmalıdır.

* IPv6 kullanılmıyorsa disable edilmeli

Uygulama ve Servisler

* Antivirüs & Antispyware mutlaka kurulu olmalı ve merkezi bir antivirüs & antispyware sunucu tarafından denetlenip, güncellenmelidir.

* Kullanılmayan Windows Servisleri mutlaka kapatılmalı & kaldırılmalı (File share, printer vs.)


Windows update

* Sunucular mutlaka Windows güncellemelerini otomatik almalı ve mümkün olan en kısa zamanda yeniden başlatılmalıdır.


Linux Sunucu Sıkılaştırma:

Linux sunucular genel görüşte büyük bir önyargı olarak “güvenli” kabul edilirler. Hatta işletim sistemi güncellemelerinin bile önemsenmediği görülebilir. Ancak bu önyargı çok büyük zararlara sebep olabilir. Bu yüzden başta işletim sistemi düzenli güncellemelerinin planlaması ve uygulanması düşünülmelidir. Ayrıca kontrol listesi için de aşağıdaki maddeler ele alınabilir;

* SELinux mutlaka aktif olmalıdır.

* Root login disable edilmelidir. Gerekli kullanıcılar için sudo yetkisi tanımlanmalıdır.

* İhtiyaç yoksa mutlaka XWindow silinmelidir. Dağıtıma göre eğer izin veriyorsa en başta kurulmamalıdır.

* /usr, /home, /var, /var/log, /tmp dizinleri farklı disk bölümlerine (partition) tanımlanmalıdır.

* Disk Kotaları belirlenmelidir.

* IPv6 kullanılmıyorsa disable edilmeli

* SSH için password tabanlı login yerine public key tabanlı login düşünülmelidir.

* SSH için ek güvenlik önemleri düşünülmelidir. SSH Linux sunucuların dışarıya açılan kapısı olduğu için bu konu belki başlı başına bir makale konusu olabilir. Ancak vekil sunucu üzerinden bağlanmak vs. gibi yöntemler araştırılmalı ve uygulanmalıdır.

* Official repository dışından uygulama kurulumları&güncellemeleri engellenmeli
 

Uygulama Sıkılaştırma:


Uygulama sıkılaştırılması (Application Hardening) ise daha çok yazılım geliştirme süreçlerinde dikkate alınması gereken ve mutlaka uygulanması gereken bir kısımdır. Güvenlik tek bir açıdan bakılamayacak kadar geniş ve bir anlamda şemsiye gibi kaplayan bir konu olduğu için bu makalede yol gösterici bir başlık olarak bulundurmak istedim. Özellikle uygulama geliştirme yapanlar mutlaka bu konuyu araştırıp üzerine çalışmalıdır.
 

Sonuç:

Sunucu (veya sistem) Sıkılaştırılması, bir kez yapılıp bırakılabilecek bir işlem değil, yaşayan, değişen ve sürekli iyileştirilip geliştirilmesi gereken bir süreçtir. Ayrıca sadece kurum için güvenlik ekibinin değil, aslında tüm çalışanların da katkı sağladığı bir kavramdır. Bu sebepledir ki, son cümlede mutlaka belgelendirmenin de önemine işaret etmek gerekir. Bu uzun ömürlü bir süreç olduğundan sıkılaştırma kontrol listeleri, adımları, önceki ve sonraki versiyonları açık ve erişilebilir olmalıdır.



Emre Karaoğlu

Nisan 2021 [2]


[1] İngilizce karşılığı “Server Hardening” diye sabitlense de Türkçe karşılığı birkaç farklı şekilde söylenebiliyor. Ben kendi adıma en uygun bulduğum “sıkılaştırma” karşılığını kullanmayı tercih ediyorum.
[2] Bu yazıyı Nisan 2021 yılında Arka Kapı Dergisinde yayınlanması için hazırlamıştım. Bu sebeple de hiç bir mecrada yayınlamadım. Dergi yayın hayatını bitirdiğine göre, emeğimi yayınlamakta sakınca görmedim. :)  

Çarşamba, Şubat 10, 2021

OPS Dünyasında 2021 trendleri :-)

Muhammed (Muhammed Hilmi Koca, twitter: @mhk_developer ), sanırım benden yaşça daha küçük (bu yüzden ismiyle hitap etmemden rahatsız olacağını sanmam) ve yaptığı işleri takip ettiğim kadarıyla başarılı, sevdiğim bir arkadaşımız. Tesadüfen twitter’da karşılaşıp takip etmeye değer buldum. Geçen yıl keyifle okuduğum “yazılımcılar için 2020trendleri” yazısının yenisini geçen günlerde yayınladı.(Yazılım Dünyasında 2021 Trendleri) Bir eksikle; bana sormamış benim fikrimi almamıştı.:p Şaka bir yana da yazıyı okurken aklımda “acaba bana sorsaydı, sistemci gözüyle 2021 trendleri ne yazardım?” diye düşündüm. Sistemci dediğime de bakmayın, eski tabirle öyle diyorum. Aslında “sistem/network/alt yapı” (kısaca OPS diyelim) tarafını düşünelim. Kabaca aşağıdaki gibi bir şeyler çiziktirdim; (tıkırdattım daha doğru olabilir gerçi)

2020 herkes için değişik bir yıl olunca 2021 beklentilerini de aynı oranda etkilediğini düşünüyorum. Tabi ki uzaktan çalışma modeli, kurumların da hızlıca bazı konulara entegre olmasını sağladı. Ancak bu önceden de uzaktan çalışmayı deneyen kurumların “eksiklerini, ihtiyaçlarını” ortaya çıkarırken, yeni başlayanlara da bir tecrübe geliştirdi. İşte bu tecrübeler 2021 yılına geçen yıldan daha çok ışık verecek gibi görünüyor. Uzaktan çalışma konusunda temel ihtiyacımız VPN tabi ki. Ancak çoğu kurumun hızlıca VPN sorununu zaten çözdüğünü düşünüyorum. Ancak gördüğüm kadarıyla çözülmesi gereken artık VPN güvenliği olacak. VPN aracılığı ile kuruma bağlanan cihazlar (notebooklar, cep telefonları vs) hem fiziksel hem de sanal saldırılara çok açık durumda. İlk adımda çözülmesi gereken konu bu olacak. Tabi ki “canı yanmadan” hareket eden kurumlar şanslı olacaklar.

Bunun dışında aklıma gelen bir diğer konu cloud entegrasyonu olacak gibi. Özellikle Office 365, Google GSuite gibi SaaS çözümleri hem hız, hem de esneklik açısında uzaktan çalışmaya destek sağlıyor. Kurumların sadece Office için değil, ERP gibi yazılımlar için de, artık cloud desteğini arayacağını düşünüyorum.

Buradan çıkan sonuçla cloud artık kurumlar için “tü kaka” olmaktan çıkıp, ajandalarda ciddi yer alan bir sonuç olduğunu göreceğiz. Zincirleme olarak tabi ki Server/Storage kullanımında da public cloud artış gösterecek. Zaten cloud kullanan kurumlara sözüm yok ancak, evden çalışmaya mesafeli davranan kurumlara, yaşadığı covid krizinin etkisi gibi, cloud’a da mesafeli çok kurum, çalışan ve yönetici biliyorum. İşte bu direnç de bu sayede kırılmış olacak. Tabi ki OPS çalışanları -halen cloud’a geçmedilerse- hızlıca uyum sağlamaya çalışacaklar. Bu da pek çok OPS çalışanı için bir fırsata dönecektir.

Ancak bence yılın kazananı yine “hybrid cloud” olur. Pek çok could provider da zaten “on-prem’de nasıl oluruz?” sorusunun yanıtını arayıp çözümler üretiyor. Amaç daha da çok “on-prem’i öldürmeyelim, cloud gibi yönetelim” mantığına gidiyor.

Bir diğer kısım ise Devops olacak mutlaka. Artık daha çok kurum Infrastructure as Code çözümlerine kafa yormaya başladı bile. Evet bu konular yeni değil ve gündeme de yeni gelmiyor. Ancak üstte de yazdığım tüm itici güçler, bu konuların popülerliğini ve zorunluluğunu daha da artıracak. Bu yıl OPS tarafı daha da çok yazılıma yaklaşacak ve en azından Phyton, Powershell ve/veya Bash konularına daha çok kafa yoracaklar. Özellikle Powershell’in Linux desteği ile belki popülerliği daha da artabilir diye düşünüyorum. Python hakkında ise fazladan bir şey yazmaya gerek dahi duymuyorum.

Tüm bunları yazarken işletim sistemi tarafında yeni gelen haberlere göre Windows’u daha çok 2021’de değil, iyisiyle kötüsüyle 2022’de konuşacak gibiyiz. Linux ise son yıllarda hızla artan popülerliğini artırmaya devam edecektir. Linux dünyasındaki Centos projesinin bitip yerine Rocky Linux geleceği duyulunca sular biraz durulsa da, sonuçlarını bu yıl görmeyi bekliyorum. 

Network tarafında ise SDN patlama yapacak gibi. Artık SDN yatırımlarının gerekliliğini anlatmak network uzmanları için daha kolay olmaya başladı. Tabi bu da başta Python olmak üzere, network uzmanlarını daha çok “yazılım okur yazarı” olmaya yaklaştıracak bu yıl.

Kendi küçük dünyamdan bakınca, hayat daha çok böyle göründü bana. Kısa kısa, sıkıcı olmamaya çalışarak. Umarım faydalı olur.

Sevgiyle…

Cumartesi, Mayıs 23, 2020

Mülakat sorularından derleme

Aklıma biraz geç geldi aslında ancak hem aklımda kalanlardan hem de her yerde bulunanlardan değil de, daha özel olanlardan yazmak istedim. İster mülakat sorusu deyin, ister sınav sorusu, güzel soruları biriktirmeye karar verdim. (Bu sorular (sorulanlar) bana İngilizce soruldu genelde, ama blog konseptim Türkçe içerik olduğu için ben yine Türkçe paylaşmak istedim.) Bu sorular zamanla artacak, hatta ben de "bu güzel olur" dediklerimi ekleyeceğim. Ayrıca aklınıza gelen soruları, varsa hatalarımı da yorumlara eklerseniz çok sevinirim.

Yanıtlar o konu hakkında kısa bir bilgi içeriyor. Ancak buradaki kısa bilginin detaylarını araştırıp öğrenmeyi tavsiye ederim. Çünkü eğer bir mülakattaysanız muhtemelen yanıtınızdan yeni sorular, konuyu üstün körü mü, yoksa detaylı mı biliyorsunuz diye yoklamalar olacaktır ;-) 

Ayrıca ufak ufak yorumlar da sorunun sonunda yıldızlı olacak.

Linux Soruları


1) LVM nedir?

- Logical Volume Management (LVM)kısa halidir. LVM, modüler disk kümeleri oluşturulmasını, böylece ihtiyaç halinde disk alanı üzerinde istenilen boyutlandırmanın yapabilmesini sağlar. 

* Evet bu soru çok klasikti. Ancak aslında aşağıdaki soruya giriş için bir olta diyebiliriz. Aslında bir çok soru böyle. Birbirini tamamladığını fark edeceksiniz :)

2)  LVM disk configuration nasıl yapılır?

- Aşağıdaki adımlar izlenmelidir. 
1. Fiziksel Volume oluştur:
    - pvcreate ile, yeni eklenen bir diski veya bir partition'ı veya SAN üzerindeki bir LUN'u sisteme fiziksel bir disk olarak tanıtıyoruz. 
     Örnek: 
     #pvcreate /dev/sdb
   * pvdisplay ve  pvs komutları ile disklerin durumu görülebilir

2. Volume Group oluştur:
    -  İçine logical volume'ler oluşturabilmek için Fiziksel volume'lerden bir grup oluşturuyoruz. 

   Örnek:
  # vgcreate vg-01 /dev/sdb /dev/sdc

 * vgdisplay ile volume grup'lar görülebilir. 
3. Logical Volume oluştur:
  - Logical Volume ile ihtiyacınız olan alanı mevcut volume grup içine oluşturmuş oluyoruz. 3 farklı şekilde oluşturulabilir.
  • Linear Volume
  • Striped Volume
  • Mirrored Volume
  Örnek:  
     # lvcreate -L 1G -n lv_linear vg-01

4. LVM'yi etkinleştir:
  - Volume group ve Logical Volume oluşturulduğunda LVM otomatik olarak etkinleşir. Ancak herhangi bir sebeple etkinleşmemişse lvchange veya vgchange ile etkinleştirme yapılabilir.

* Detay için bkz: https://linoxide.com/linux-how-to/lvm-configuration-linux/



3. DNS sorgusu nasıl çalışır?

Kullanıcı bir DNS sorgusu yolladığında, IP-İsim dönüşümünü sırasıyla buralarda arama yapar;

  1. Local Cache
  2. Hosts  dosyası kayıtları
  3. Local DNS Server kayıtları ( tip: Linux için resolv.conf altında)
  4. Root DNS
  5. TLD (Top Level Domain-Üst Düzey Alan Adları)
  6. SLD-Second Level Domain -  İkinci Seviye Alan Adı) 
  7. Alt alan sunucuları

 * Not: Bu seviyelerden herhangi birinde kayda erişilirse client-server arası doğrudan iletilir. DNS yolu ters giderek sonucu iletmez. Bu da sorulabilir :-)


4.  Root DNS nasıl çalışır/Özellikleri nelerdir?

IANA tarafından yönetilen toplam 13 tane DNS IP'si vardır. (Bu 13 IP'nin bağlı olduğu dünya üzerinde binden fazla sunucu (doğrusu instances) vardır) Gelen istekleri TLD(Top Level Domain – Üst düzey Etki Alanı) sunucularına yönlendirir. TLD bir domainde gördüğümüz son kısımdır. Örneğin, .....com.tr domanin'de tr TLD'dir ancak .....com adresinde TLD com'dur.

5. dig nedir? Nasıl kullanılır? 

Dig(domain information groper) komutu, linux sistemlerde DNS sorgusu yapmak için kullanılır. Ancak nslookup'a oranla çok daha detay bilgiler sunar. Dig ile o sunucu için MX kaydı, NS kaydı gibi diğer kayıt bilgilerine de ulaşılabilir.

# dig google.com 
# dig google.com -t MX

6. DNS Kayıtlar tipleri nelerdir?

A  (Host address)
AAAA (IPv6 host address)
ALIAS (Auto resolved alias)
CNAME (Canonical name for an alias)
MX (Mail eXchange)
NS (Name Server)
PTR (Pointer)
SOA (Start Of Authority)
SRV (location of service)
TXT (Descriptive text)


7. What is the functions of /opt, /proc, /sys folders?
 
/opt : Üçüncü parti kullanıcı programlarının kurulması içindir.

/proc : Süreçler, sistem belleği, bağlı aygıtlar, donanım yapılandırmalarıyla ilgili bilgileri içeren özel bir “sanal” dosya sistemidir. Bildiğimiz anlamda fiziksel dosyalar bulundurmaz; sistem durumuna dair bilgi içeren sanal dosyaları vardır. Windows'taki görev yöneticisi gibi düşünülebilir.


/sys : Çekirdek modüllerinin sanal bir yansımasının oluşturulduğu bir dizindir. Burada yapılan değişikliklerin bazıları çekirdeğe yazılır bazıları yazılmaz.


8. /sys dizinini yedekleyip, geri döndürülür mü?

Hem / proc hem de / sys, sistemin durumunu yansıtan ve çeşitli çalışma zamanı parametrelerini değiştirmenize izin veren (ve bazen doğrudan belleğe veya bir aygıta yazma gibi daha tehlikeli şeyler yapmanızı sağlayan) sanal dosya sistemleridir. Asla yedeklememeli veya geri yüklememelisiniz.

* Tavsiye: Hazır el atmışken Linux dizin yapısını öğrenmekte fayda var. :-) 


9. MTA nedir?

MTA, "Message (veya Mail) Transfer Agent" (Mail Aktarım Ajanı) kısaltmasıdır. Bir elektronik postanın gönderen sunucudan, alıcı sunucuya, SMTP protokolünü kullanarak aktarmak ve yönlendirmekten sorumludur. TCP/25 Portunda çalışır. Linux için Postfix, Qmail, sentmail, exim, zimbra sayılabilir.


10. Bir sunucuda çalıştırdığınız bir servis ve o servisin iletişim portu var. Bu portun çalışıp çalışmadığını nasıl (hangi araçla) test edersiniz?

Telnet

* Bu basit sorunun yeri bende ayrı. Bilememiştim. Daha doğrusu çok iyi bildiğim bu yanıt aklıma gelmemişti. Genelde daha spesifik düşünüyoruz. Netstat vs. demiştim. Ancak netstat portun açık olup olmadığını test eder, çalışmasını test ederken telnet kullanıyoruz. O yüzden yazmak istedim :-) 

11. Block based backup (Blok tabanlı yedekleme) ile File based backup (Dosya tabanlı yedekleme) arasında ne fark vardır?

Blok tabanlı yedekleme ile bir disk bloğunun yedeği bütün olarak alınır. İçinden tek bir dosya çıkarmak da mümkündür ancak uygun programı kullanılması gerekir. Daha kompleks ancak daha sağlıklı bir yedekleme sağlar.
Dosya tabanlı yedeklemede ise, sadece dosya veya dizin yedeklenir. Bir anlamda farklı bir ortama kopyalanır. Daha basittir, küçük sistemlerde az yatırım ile çözüm için tercih edilebilir. (rsync, dar, dump, tar, vs kullanılabilir) 

12.Bir kritere göre dosya bulan ve silen komut nasıldır?

find [aranacak dizin] -type f -name [dosya adı] -exec rm -rf {} \;


veya


find [aranacak dizin] -type f -name [dosya adı] | xargs rm -rf

* Kolay bir örnek. Ancak bu şekilde ufacık script örnekleri olabilir demek için yazdım bu soruyu da. Özellikle xargs, grep, awk gibi komutlara bir göz atmakta fayda var ;-)


13. Dosya sistemlerinde günlükleme (journaling) nedir? Avantajı nedir?


Günlükleme (journaling), dosya sistemi üzerinde yapılan işlemlerin loglarının başka bir yerde tutulmasınına denir. Bu özellik sayesinde yapılan son işlemlere ulaşılabilir. Bir sorun halinde sistem/dosya kurtarması için işe yarar.

14. Linux'ta en bilinen günlüklü dosya sistemleri hangileridir? 

Ext3, ext4, ReiserFS (günlüklemeyi ilk kullanan), XFS (en kararlı kabul edilen)

* Ext3'ün Ext2'den en önemli farkı budur. 

15. "kill -9" ile "kill -15" arasında ne fark vardır?

Kill komutu ile bir process sonlandırılabilir. Kill komutuna gelen sayılar signal değerleridir. -9 ile beliritilen sinyal process'i öldürür (zorla durdurur), -15 ile belirtilen sinyal ise, process'in kapanmaya zorlar (kibarca :) ) Eğer aksi bir sinyal belirtilmezse kill komutu -15 sinyalini almış gibi hareket eder.

# kill -9 [PID] --> Zorla PID numaralı process öldürülür.
# kill [PID] --> # kill -15 [PID] yazmak ile aynıdır.

16. ip ile ifconfig arasında ne fark var? 


17. 


Sanallaştırma (Vmware) Soruları

16. (Senaryo) Bir ESX Host Vcenter ile iletişimi kopardı. SSH ile bağlandın ve hostd çalışmıyor. Fakat üzerinde çalışan VM'ler olduğu için restart edemiyorsun. Hangi komut ile işlem yapmalısın?

Kısa yanıt: localcli. 

Uzun Yanıt: host.d çalışmadığında esxcli komutu da iş görmez. Ancak bu durumda localcli komutu ile işlem yapıp vm'lere müdahale edilebilir. 

Açıklama: Bu soru çok farklı şekilde sorulabilir tabi. Senaryo'da sorudan soru üretilebilir. "VCenter ile iletişim koptu ne yaparsın?" "Host'a SSH ile bağlanırım". "Bağlandın hangi komutu kullanırsın?" "esxcli genelde iş yapar". "esxcli çalışmıyor, neden?" "Çünkü hostd çalışmıyor". Son olarak da üstteki haline gelebillir. 

Tabi bir de localcli üzerine bakmakta fayda var. 

ESXCLI LOCALCLI
esxcli komutu ile esxi host yönetilebilir. localcli komutu ile aynı esxcli komutu gibi çalışır. Ancak hostd prosesi bypass olur.
Sadece hostd çalışırken iş görür hotsd çalışmıyorsa ve sunucu restart edilemiyorsa kullanılır.

Localcli komutu ile işlem yapıldıktan sonra hostd restart edilmeli ve ardından esxcli kullanılmalıdır.

Diğer durumlarda localcli komutu kullanmak sistem durumunu riske sokar ve potansiyel risk barındırır
Vmware tarafından desteklenir. Sadece Vmware Support tarafından tavsiye edildiği durumda kullanılmalıdır.


Salı, Ocak 29, 2019

IT Altyapı'da agile kullanılmaz! (mı?)

Tamamen konu dışı birşeyler yazmak istiyorum bugün. Aslında ilişkisini de en sonda biraz kuracağım.

Son günlerde her yerde IT çalışanları için bir Agile (Çevik) dönüşüm furyası gidiyor. Çalıştığım şirkette de dahil olmak üzere, herkes "Agile"ı cümle içinde kullanmak için gereğinden fazla (ve çoğu zaman gereksiz) bir çaba içine giriyor. :-) Bir diğer çokça duyduğum ve asıl yazmama sebep olan kısım ise "Agile, -sadece- bir yazılım metodolojisi". Aslında epeyce bir süre ben de bu fikre sahiptim ve inceden de gıcık olmuyor değildim. :-) Yıllarca "IT Altyapı" hizmeti vermiş biri olarak neredeyse "oyun dışı" kalmak gibi geliyordu. Fakat itiraz etmek, yok saymak, her zamanki gibi bizi uçuruma süreklerdi. Önce ne olduğunu araştırmaya başladım. Biliyorum, öğrendim kesinlikle demiyorum ancak öğrendiklerimi birleştirdikçe de işin sadece "yazılım" ile bitmeyeceğini de gördüm. Demek ki artık inceden "sinir olmak" değil "içine de girmek" zamanı gelmişti. Ayrıca metodolojinin "uygulaması" kısmı ile hiç ilgilenmedim. Kanban, scrum vs. bambaşka konular.

Hikayenin ardından biraz da neleri anlatmaya çalışacağımın girişini yapıp başlayayım; Amacım konunun anlaşılması olduğu için önce kısaca benim agile'dan anladığım ile başlayacağım. Agile koçu olmadığım, özel hiç bir eğitim de almadığımı* düşünürsek sanırım epeyde düşük seviyede bir tanımlama olacak. Sonra da bu "metodoloji" içinde "IT Altyapı" hizmetleri neden gerekli, nasıl kullanılıyor (benim bildiklerim tabi) ve nasıl kullanılabilir üzerine biraz kafa yormayı düşünüyorum. Yanlışlarımı, eklenmesini düşündüklerinizi lütfen yorumlara ekleyin ki gelişsin bu yazı da...

"Agile nedir?" diyerek başlayacağız dedim. Benim öğrendiklerim ve anladıklarım çerçevesinden bakarsak, Agile (çevik), aslında bir çeşit proje yönetim metodolojisi. Daha önceleri "waterfall" denen metodoloji tercih edilirken, son yıllarda daha hızlı çözüm üretmek temeli üzerine kurulmuş bir metodoloji. (Bu açısından bakarsak özellikle Türklerin yadırgamayacağı bir model :-) ,


Üstteki şema için uğraşamadım ve internetten buldum. İngilizce bu sebeple. Ancak,iki modeli kıyaslamak için çok öğretici. Kısaca üstünden geçersek, waterfall modelinde bir amaca ulaşmak için (bu ürün de olabilir, bir işin tamamlanması da aslında projeden bahsediyorsak) önce planlıyoruz, hazırlıyoruz, testini vs yapıp, mükemmele ulaştığından emin olduğumuzda sonuca erdiriyoruz. Bu da günümüz "sabırsız" insanı veya Y-Z kuşağı için kabul edilemez görünüyor. Aslında işte Agile Metodolojisi de tam burada farklılaşıyor. "Sabırsızları tatmin etme ve adım adım en iyiye..." Agile süreçlerinde ise mükemmel ürünü çıkarmadan önce veya projeyi mükemmel sonuca erdirmeden önce ufak ufak alıştırma sürümleri ile hem geri dönüş alabiliyor (bu dönüşler sayesinde aslında mükemmele daha da doğru yaklaşılabiliyor), hem de "baba adamlar birşeyler yapıyor" dedirtmiş oluyor ve az önce bahsettiğim o "sabırsızlar" biraz törpülemiş oluyor. (Hatta aslında dolaylı olarak test sürecine de dahil olmuş oluyorlar.)





Daha da uzakmadan, kısaca süreç nasıl olmalı diyerek girişi kapatıp asıl konuya geleceğim. (Bu resim de internetten bulduğum bir alıntı) Agile süreçlerini de planlarken de, hızlı olacağız derken, ara ürünlerin amaçsız, işe yaramaz ve tatmin etmez olmamasına da dikkat etmek gerek. Üstteki örnek her ne kadar "agile" gibi görünse de "işe yarar" ürün en sonda çıkıyorsa, hiç bir anlamı kalmıyor. Ancak alt örneği incelersek, kaykay ile pek tatmin olunmasa da, adım adım işe yarar ürünler çıktıkça memnuniyet artıyor ve aslında tam da istendiği gibi ilerliyor. (Bu arada yolcunun  da yolda kalmadığına, başlangıçta zor da olsa hedefine bir araç ile gidebildiğine dikkat etmek gerek)

Aslında bu çerçeve ile bakmaya başlarsak, ilk başta da dediğim gibi, sanki hep bir hedefe yönelim var. IT için ürün "yazılım" hedef "müşteri/kullanıcı" ise "Agile IT Altyapı için gerekli değil" gibi bir sonuç akla geliyor. Ancak, altyapı, -adı üstünde- sağlam olmadığında  (kış lastiğin yoksa), hızlı gitmeye uygun değilse (F1 lastikleri gibi değilse) istenildiği kadar agile (hızlı/çevik) olmaya çalışılsın çakılmaya mahkumdur. İşte tam da bu noktada aslında F1'deki "pilot mu otomobil mi?" tartışması açılır ki gerçek yanıt "ikisi de" olmalı galiba. Sadece bu sebeple, "Hayır Agile sadece yazılım için değil, tüm IT (aslında tüm çalışma birimleri de denebilir) içindir."

Ana fikrimizi çürüttük (en azından öyle sanıyorum :-), peki altyapı olarak agile dönüşüme nasıl destek veriyoruz şu an? İşte burada da en çok "Devops" kavramı çıkıyor karşımıza. Aslında bu kavram da bizi yıllardır kopuk yaşayan (veya yaşadığı sanılan demek daha doğru olur) yazılımcılar ile altyapıcıları birbirine daha çok yaklaştırıyor. Bu da kısaca şöyle anlatılıyor; Yazılım tamam, siz kendi geliştirme ortamınızda işleri bitirdiniz, ancak canlı ortama sürmek için altyapı kısmından destek istiyorsunuz. Eğer altyapıyı anlayan bir yazılımcı varsa veya yazılım gereksinimleri üzerine kafa yormuş bir sistem yöneticisi, o zaman şanslısınız. Ancak bu durumda bile "deployment" süreci çok can sıkıcı ve uzun zaman alabiliyor. Sadece işletim sisteminin update versiyonu bile bazen günler alabiliyor veya bir Java versiyonu. Bir yanda sabırsız müşteri ve yönetici, diğer yanda yazılımcı ve sistem yöneticisi birbirlerini yiyorken, agile veya kanban kimsenin aklına gelmiyor. İşte devops (DEV-eloper OP-eration-S) süreçleri sizin daha hızlı ürün ortaya koyabilmenizi sağlıyor. İşte buradaki OPS aslında altyapı oluyor. (Yani biz :-) )

Deployment (yazılımı canlı ortama taşıma) sürecini daha hızlandırabilmek için de gelişen bir çok otomasyon teknolojileri var. Container teknolojileri (örnek Docker) , versiyon takip sistemleri (örnek git), yazılım dağıtım otomasyonları vs.İşte bu konular da "IT Altyapı çalışanları" için yeni bir yol haritası olmalı. Tabi aynı zamanda "Agile" olacağım diyen şirketler için de...

Sonuç olarak bakarsak, Agile olmamış bir altyapı ile isteseniz de agile proje çıkaramazsınız. Tam da bu sebeplerle "Agile sadece yazılımcılar için kullanılan bir metodoloji değildir..."

* Bu yazının %95'ini yazdığımda hiç eğitim almamıştım ancak yakın zamanda 2 günlük keyifli bir agile eğitim aldık. :-)



Pazar, Kasım 18, 2018

"ChromeCast Stream with mkChrome" Python app



Bir önceki post'ta bahsettiğim Phyton uygulamasını da aşağıda paylaşıyorum. Aklımda uygulamanın tam halini koymak vardı aslında. Çünkü "webcast" ve "filecast" seçenekleri de var. Ancak en basit haliyle paylaşmak daha anlaşılır olması için mantıklı geldi.

Uygulamanın çalışması için mkChrome kurulu olmalı.


from tkinter import *
window = Tk()
window.geometry('450x300')
window.title("ChromeCast Stream with mkChrome")


def stream():
    link = txt.get()
    tik = Label('window,text=link')
    tik.grid(column=0, row=4)
    command = "mkchromecast -y " + link + " --video"
    import os
    os.system(command)

lbl = Label(window, text="Youtube Link:")
txt = Entry('window,width=20')
btn = Button(window, text="Stream to ChromeCast", command=stream)

lbl.grid(column=0, row=0)
txt.grid(column=1, row=0)
btn.grid(column=0, row=1)

window.mainloop()

Perşembe, Kasım 15, 2018

Egemen, Ubuntu ve Chromecast hikayesi

Merhaba,
Ne kadar çok zamandır ara vermişim. Kendimden de utandım desem yeri var.
Aslında, bunca yıllık ölü toprağını üstümden atmamı sağlayan, yeniden nefes aldım dedirten hikayeyi yazmaya geldim.
Blog adı Aylin-ux ama galiba artık burada "Egemen" hikayeleri olacak gibi. Eski laptopa merak saldı son günlerde. Pek de kullanmadığımdan içinde yarım yamalak çalışan bir Windows vardı, Madem merak saldın adam gibi birşey kullan/öğren diyerek geçenlerde Ubuntu kurduk. Kurduk diyorum çünkü "kuralım" dedikten sonra günlerce "baba ne zaman kuracağız?" diye gezindi çevremde. Eski laptop olunca da çeşitli donanımsal sorunlar da yaşadık iş biraz uzadı. Ancak sonunda kurduk ve artık Linux kullanmaya başladı. (Aklıma geldi; yıllar önce SDÜ'de İnternet Haftası için yaptığımız bir etkinliğe rahmetli Mustafa Akgül Hoca gelmişti ve bir Linux sunumum vardı. "Linux zor diyorlar, ne alakası var.." diyerek sahneye İsmail Hoca'nın oğlu Şerif Ali'yi çıkarmıştım. (O da şimdi Bilgisayar Mühendisliği okuyor) o zamanlar okuma bile bilmiyordu. 5-6 yaşında. Birkaç şey yapmıştı sahnede.) Neyse ya amma uzattım. Yazacak anlatacak ne çok şey var. (Yaşlanma belirtileri vol:1)
Ubuntu kurduk, Egemen hayatından memnun, "Ubuntu Software"  ile istediği programları indiriyor, hatta bazen alakasız birşey indiriyor anlayamıyor çünkü oyun değil. Ama inatla ne olduğunu çözmek için başımın etini yiyor. Minecraft'a kadar hemen herşeyi bulduk alışık olduğu.
Ancak ip geçen hafta sonu koptu. En sevdiği şeylerden birisi evdeki "chromecast" ile youtube'da bulduğu videoyu TV'ye aktarmak. Ancak ubutu software içinde chrome yok. Başta hiç aklıma da gelmedi gidip sayfasına bakmak. (Bazen basit şeyler için gözümüz kör oluyor ve zora yöneliyoruz çok teknik düşünmekten**). Google'dan "how to stream from ubuntu to chromecast" diye aradım. Oradan da (doğal olarak) başka bir uygulama  buldum. "mkchromecast" diye python ile yazılmış bir uygulama. Ancak sorun şu; uygulama komut satırında. Çok basit bir komut ama Egemen'e öğretmek zor. (Anında ezberler gerçi o da ayrı konu). Bir süredir ben de phyton ile uğraşıyorum, aklıma bunun için bir GUI uygulama yazmak geldi. Kabaca, Egemen istediği bir videonun linkini kopyalasın, yapıştırsın ve TV'ye aktarılsın.
Daha önce hiç python'da GUI yazmamıştım. Hemen onu araştırdım. Çok zor değil zaten. Bir kaç saat içinde basit programım hazırdı. Böylece GUI dünyasına da el atmış oldum. Ama asıl paylaşmak istediğim; suyun altında durup (ben en fazla 4-5 sn. durabiliyorum gerçi)  kafanı çıkardığında deriin bir nefes alırsın ya, işte tam da öyleyim. OOoohhhhhhh....

Uygulama hakkında detayları ayrı bir post olarak atacağım. Hem biraz elden geçirmek de istiyorum yayınlamadan önce. Zaten eksikleri de çok. Ama şu an çalışıyor. Heyecanımı paylaşmak için yazdım. Ancak bir ekran görüntüsü ile bu yazı bitsin. ;-)

** Not: Bu arada yazmayı unutmayayım, Ubuntu için Chrome var. Chrome web sayfasından download diyerek kolayca kurulabiliyor. (deb paketi indirilerek) Ayrıca chromecast ile de bağlantı kurabiliyor. Benin uygulamam hem öğrenme/proje amaçlı oldu, hem de dediğim gibi nefes içindi... ;-)


Çarşamba, Ekim 30, 2013

CentOS 5.5 ile DC yapmak


Sonunda CentOS 5.5 ile Domain kontroller yapmak makalesini bitirdim. Çok uzun süründü elimde garibim ancak dökümanı yazmak için yeniden kurulum yeninden ayar yaptım. Çalıştığından eminim hatta config dosyalarını da ekledim.

Herkese hayırlı olsun.

Not: Bu belge kaynak göstermek kaydıyla kullanılabilir.


CentOS 5.5 ile Domain kontrol yapmak [pdf dosya indirmek için tıklayın]

Ayar dosyaları [rar dosya indirmek için tıklayınız]

Pazartesi, Aralık 12, 2011

Bacula yedekleme sunucusu kurulumu

Bacula yedekleme yazılımını bir süredir araştırıyorum. Aslında son derece güzel, kullanışlı ve bir o kadar da yetenekli bir yazılım. Open Source olması da cabası. :) Tek sorun ben fazla Türkçe kaynak bulamadım. Bu sebeple tarihe not olsun diye bu dökümanı yazıyorum :)
Kendi denemelerimde disk üzerine, iSCSI üzerinden NAS'a ve LTO-2 kartuşa backup almayı başardım. Zaten disk üzerine backup almak en kolayıyken, NAS ve LTO kartuşta dikkat edilmesi gereken 1-2 nokta var. Onları da sonraki dökümanlarda (umarım) yazacağım.
Bacula Nedir?
Önce Bacula nedir ile başlayalım. Bacula network tabanlı, açık kaynaklı yedekleme yazılımıdır. (http://www.bacula.org) Çok geniş bir yelpazede farklı ortamlara yedek alabilir ve yedekten geri dönüş işlemi gerçekleştirilebilir. Kolay bir yönetim arayüzü olduğu gibi konsol üzerinden de komutlar aracılığı ile backup/restore prosedürü, aktif işler vs. yönetilebilir.
Bacula Nasıl Çalışır?
Network tabanlı olması sebebiyle sunucu/istemci mimarisi üzerine kurulmuştur. Bacula sunucusu yedek alma prosedürünü ve yedek alınan ortamı yönetir. Bacula Server, üzerindeki veya başka bir sunucudaki veritabanı üzerine backup kayıtlarını katalog olarak kaydeder. Bu sayede de dosya/gün/saat bazında geri dönüşü kolaylaştırır. Veritabanı olarak MySQL, PostgreSQL veya SQLLite kullanılabilir. Sunucu tarafında Linux, FreeBSD, Solaris ve Open Solaris kullanılabilir. (Windows sunucu çalışması devam ediyormuş)
İstemci kısmında sadece backup'ın aktarılacağı sunucuyla bağlantıyı sağlamak için küçük bir uygulama çalıştırılır. İstemci yazılımı daha geniş bir desteğe sahip. Linux'tan, Windows'a, Mac'a kadar hemen hemen tüm işletim sistemlerinin yedeğini bacula sayesinde alınabilir. Sunucu ve istemci tarafına uyumlu işletim sistemleri için daha ayrıntılı listeyi bu linkte inceleyebilirsiniz: http://www.bacula.org/en/dev-manual/main/main/Supported_Operating_Systems.html
Bacula'yı Anlayalım
Bacula için çalışan temel 3 servis vardır. Bunlar;
Bacula Director Deamon (bacula-dir): Bacula sunucu üzerinde çalışan, yedekleme yapısını, zamanlamasını, nereye yedek alınacağı, hangi istemcilerden yedek alınacağı, istemcilerin kimlik denetlemeleri gibi aslında tüm backup sürecini yöneten servistir. 9101 portundan çalışır.
Bacula Storage Deamon (bacula-sd): Bacula'nın yedeklerin alınacağı ortamını düzenleyen servisidir. Bu servis sayesinde directory ile storage farklı sunuculardan hizmet verebilir. 9102 portunu kullanır.
Bacula File Deamon (bacula-fd): İstemci tarafında çalışan servisidir. Director, istemciye (linux, windows, mac veya diğerleri) bu servis ile ulaşır. 9103 portunu kullanır. (Olası firewall v.s. ayarlarında düzenlenmelidir.)
Ayrıca 2 tane kavramdan bahsetmek gerek;
Bacula Catalog (Database): Yedekleme işleminin kayıt altına alındığı veritabanıdır. Katalogta, kayıt alınan dosyalar, dosyaların yetkileri vs. bilgileri, volume'lerin (doğru sözcüğü bulamadım malesef) kullanım oranları, çalışan işlemler gibi tüm bilgiler kaydedilir.
Bacula Console: Bacula Director ile bağlantıyı sağlayan uygulamadır. Konsol tabanlı veya QT tabanlı grafik arayüzü veya web tabanlı arayüzü vardır.
Aşağıdaki şema bu kavramları daha ayrıntılı anlamak için son derece güzel;
 

 

Bacula Kuralım
Ben Bacula kurulumun Centos 5.7 üzerine yaptım. Bu sebeple de rpm source derleme yöntemi daha kolay geldi. Sonrasında source üzerinden yaptığım rpm'leri kolayca kurarak sistemi hazır hale getirdim. Aslında depolarda da bulunabiliyor ancak nedense ben depodan kurduğumda çalışmadı. Çok da araştıramadım itiraf ediyorum. :)
Elimizde standart kurulumuş bir CentOS 5.x olduğunu düşünüyorum. İlk olarak ihtiyacımız olacak bazı paketleri ekleyelim;
yum install autoconf automake e2fsprogs-devel gcc-c++ glibc-devel glibc-headers kernel-devel krb5-devel libacl-devel libgomp libstdc++-devel libtermcap-devel libxml2-devel lsscsi m4 make mt-st mysql mysql-devel mysql-server ncurses ncurses-devel openssl-devel perl-DBI php php-gettext php-pear qt4 qt4-devel redhat-rpm-config rpm-build rpm-devel rpm-libs screen zlib-devel
bu paketler kurulduktan sonra epel reposunu ekliyoruz;
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
* burada güncel ve uygun paketi ilgili linki düzenleyerek yazın. Örneğin 64 bit içn i386 yerine x86_64 gibi.
Ve kalan diğer paketleri kuruyoruz;
yum install qwt qwt-devel wxGTK
Sıra geldi rpm'leri hazırlamaya. Bunun için önce klasörümüzü hazırlayalım; (Bu işlemleri root değilken de yapabiliriz)
cp -r /usr/src/redhat ~/rpm_build
Şimdi bacula'nın src.rpm dosyalarının güncel halini indirelim; (Ben şu adresten 5.0.3 versiyonu indirdim: http://sourceforge.net/projects/bacula/files/rpms/5.0.3/)
şimdilik ihtiyacımız olan dosyalar; bacula-bat-5.0.3-2.src.rpm, bacula-mtx-5.0.3-1.src.rpm, bacula-docs-5.0.3-1.src.rpm, bacula-5.0.3-1.src.rpm.
Gelelim indirdiğimiz source rpm paketlerinden derlenmiş rpm paketleri yapmaya.
rpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-5.0.3-1.src.rpm
rpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1"bacula-bat-5.0.3-2.src.rpm
rpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-mtx-5.0.3-1.src.rpm
rpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-docs-5.0.3-1.src.rpm
Ve paketlerimiz hazır. Gelelim kurmaya. Bunu root olarak yapıyoruz. Önce rpm_build/RPMS/ (veya i386) klasörüne gidiyoruz. Hazırladığımız paketler burada. Kuruluma başlayalım;
rpm -Uvh bacula-libs-5.0.3-1.rpm rpm -Uvh bacula-mysql-5.0.3-1.rpm rpm -Uvh bacula-bat-5.0.3-1.rpm
Geldik libbac-5.X.Y.so dosyasına yetki vermeye.
chown bacula:bacula /usr/libXX/libbac-5.0.1.so
* Burada 64 bit için /usr/lib64 klasörü, 32 bit için /usr/lib klasörü kullanılıyor.
Mysql Ayarları
Kurulum tamamlandı. Artık son aşama veritabanı ayarlarını yapmak. Ben mysql kullandığım için mysql ayarlarını veriyorum.
Önce mysql üzerinde bacula kullanıcısının şifresini belirleyelim;
#mysql -u root -p
mysql> set password for 'bacula'@'localhost' = password ('BaculaŞifresi');
msqyl> quit
Yetkilerin verilmesi, database'in oluşturulması, tabloların oluşturulması için zaten script hazır. Önce /usr/lib/bacula klasörüne gidip bu scriptleri sırasıyla çalıştırmak yeterli;
cd /usr/lib/bacula/
./grant_mysql_privileges
./create_mysql_database
./make_mysql_tables
Şimdi database'imizi bacula'ya tanıtalım. /etc/bacula/bacula-dir dosyasında aşağıdaki satırı düzenliyoruz;
Catalog {
Name = MyCatalog
# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "bacula"; dbpassword = "BaculaŞifresi"
}
Artık servisleri çalıştırma zamanı;
service bacula-sd start
service bacula-dir start
service bacula-fd start
Bacula çalıştı. Şimdi daha da önemli olan ayarlara geldi sıra. O da 2. belgede olacak.
*** Ben bacula-dir servisini çalıştırırken bazı hatalar aldım. Sonrasında araştırmalarım sonucu (nedense) /etc/bacula/bacula-dir dosyasındaki I (Büyük I) harfleri ile problemi olduğunu gördüm. Örneğin DIRPort yazan satırları DirPort olarak değiştirdiğimde problemim çözüldü.
Kaynaklar;

Salı, Aralık 21, 2010

Linux'ta ayrıntılı donanım raporu

Bu yazıyı aslında "acaba ne kullanıyorum?" başlıklı makale altına yazacaktım. Ancak o kadar sevdim ki, "bu konu yeni bir başlığı hak ediyor" dedim.
Aslında konunun özü şu; elimizde bir sunucu var (tabi ki linux) çalışmakta, kapatamıyoruz ve ayrıntılı donanım bilgisine ihtiyacımız var. Ama öyle disk kapasitesi, ram kapasitesi filan bizi kesmiyor. Daha çok bilgi lazım. Anakart bilgisi, boş ram slotları vs.
Aslında pci için çok güzel bir komut var;
#lspci: Bize tüm pci portu üzerindeki donanım hakkında bilgi veriyor.
#lsusb: komutu da aynısının usb versiyonu. Ancak bir de şunu ekliyoruz; yanına: dmidecode.

Komutun kullanımı da çok kolay sadece;

#dmidecode : tüm raporu önümüze seriyor. Parametreler kullanarak özelleştirmek mümkün; Örneğin BIOS parametresi bios bilgilerini döküyor;

# dmidecode --type BIOS

[root@asterix ~]# dmidecode --type BIOS
# dmidecode 2.10
SMBIOS 2.3 present.

Handle 0x0000, DMI type 0, 19 bytes
BIOS Information
Vendor: IBM
Version: -[NRE122AUS-1.02]-
Release Date: 11/23/2004
Address: 0xF0980
Runtime Size: 63104 bytes
ROM Size: 4096 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
5.25"/360 kB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
I2O boot is supported
LS-120 boot is supported

Handle 0x001F, DMI type 13, 22 bytes
BIOS Language Information
Installable Languages: 1
en|US|iso8859-1
Currently Installed Language: en|US|iso8859-1


Ayrıca farklı parametrelerle de sonuc ulaşılabilir;

[root@asterix ~]# dmidecode -t 1
# dmidecode 2.10
SMBIOS 2.3 present.

Handle 0x0001, DMI type 1, 25 bytes
System Information
Manufacturer: IBM
Product Name: eserver xSeries 236 -[88412AG]-
Version: Not Specified
Serial Number: KDTYX47
UUID: 32037214-041E-B211-89A9-A080DAF98344
Wake-up Type: Power Switch

İşte parametrelerin listesi;


TypeInformation
0
1System
2Base Board
3Chassis
4Processor
5Memory Controller
6Memory Module
7Cache
8Port Connector
9System Slots
10On Board Devices
11OEM Strings
12System Configuration Options
13BIOS Language
14Group Associations
15System Event Log
16Physical Memory Array
17Memory Device
1832-bit Memory Error
19Memory Array Mapped Address
20Memory Device Mapped Address
21Built-in Pointing Device
22Portable Battery
23System Reset
24Hardware Security
25System Power Controls
26Voltage Probe
27Cooling Device
28Temperature Probe
29Electrical Current Probe
30Out-of-band Remote Access
31Boot Integrity Services
32System Boot
3364-bit Memory Error
34Management Device
35Management Device Component
36Management Device Threshold Data
37Memory Channel
38IPMI Device
39Power Supply

Ayrtıntılı bilgi için kaynağım;

Salı, Kasım 09, 2010

Linux'ta dosya içindeki metne göre arayıp silmek

for dosya in $(find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin');

do

echo $dosya
rm $dosya

done
Bir klasörde binlerce dosya var. (Bir mail bombasının ardından birbirine karışmış gerçek mailler ile bomba mailler örneğin :) ) Aralarından içindeki bir metne göre ayıklayıp o dosyaları silmek istiyoruz. Buyrun size basit bir script.

find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin'

find komutu ile hangi klasörde aradığımızı, -type paramatresi ile f (file) dosya olduğunu, ayrıca dosya adı için de * ile tüm dosyaları belirttik. (* terine *.php gibi sadece belli unantılar vs. seçilebilir. Arama işlemini kısaltır bu sayede) Sonra xargs ile tüm dosya içeriklerini tek tek kontrol ettik ki içindeki metini grep ile ayıklayalım.
Sonrası dosyaları tek tek döngüye alıp sırayla silmek. Bir de silinen dosyaları ekranda görüyoruz ki yanlışlık olmasın :)

Salı, Ağustos 10, 2010

ServerGuide v8.31 Windows tabanlı olmuş

IBM xServer'ların kurulumunu yapabilmek için kullanılan ServerGuide yazılımı yeni versiyonu v8.31 Windows tabanlı olmuş. Eski sürümler "Linux loading" diyerek açılırken bu sefer "Windows dosyaları kopyalanıyor" diye başlıyor ve sadece Windows Server 2003 veya Windows Server 2008 kurulumunda kulanılabiliyor. Gerçi içindeki ServerRAID ile RAID ayarlarınızı yapıp sonra linux'a devam edebilirsiniz. Çoğu linux dağıtımı zaten IBM donanımı sorunsuz tanıyor.
(Ayrıca bkz: IBM xServer'a işletim sistemi kurmak)

Cuma, Mart 19, 2010

DAR Scriptler

Full Sistem Yedeği Almak için DAR Script:

#!/bin/bash

###########################
# Olusturulma tarihi: 19 Mart 2010 .
# Emre KARAOGLU ~ Sistem yöneticisi
###########################

emailRcpt="mailiniz@mail.com"

# Mail ile gönderilecek yedek raporu dosyamızı oluşturuyoruz.
/bin/touch /tmp/dar_backup.msj

FILENAME=`date +%d.%b.%Y.%A`.fullbackup

BASLA=`date`
STARTT=`date +%s`

/bin/echo -e "#### Full sistem backup islemi #### " > /tmp/dar_backup.msj

#Harici diskimizi kullanacağımız alanı umount/mount işlemi hazırlıyoruz.
#Bazı harici diskler uyku moduna girdikleri için uyandırılamıyabiliyor.
#Örneğin Seagate'in bazı modelleri :)

umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk

/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_backup.msj

dar -c /mnt/bckdsk/FULL_SISTEM_BCK/FILESERVER/FULL.SISTEM.BACKUP -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9

ENDT=`date +%s`
BITIR=`date`

ELAPSEDT=$((ENDT-STARTT))


/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_backup.msj

/bin/cat /tmp/dar_backup.msj | /bin/mail -s " FILE Server Backup Raporu" $emailRcpt

exit 0

Incremental Backup için DAR Script

#!/bin/bash

###########################
# Olusturulma tarihi: 19 Mart 2010
# Emre KARAOGLU ~ Sistem yöneticisi
###########################

emailRcpt="mailiniz@mail.com"

DATE=`date +%d`
Month=`date +%b`
Year=`date +%Y`

FILENAME=$DATE.$Month.$Year.incbackup


/bin/touch /tmp/dar_inc_backup.msj

YESTERDAY=`expr $DATE - 1`
OLDFILENAME=$YESTERDAY.$Month.$Year.incbackup

BASLA=`date`
STARTT=`date +%s`

/bin/echo -e "#### Sistem Inc. backup islemi #### " > /tmp/dar_inc_backup.msj

umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk

/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_inc_backup.msj

dar -c /mnt/bckdsk/INC_SYSTEM_BCK/FILESERVER/$FILENAME -A /mnt/bckdsk/INC_SYSTEM_BCK/FILESERVER/$OLDFILENAME -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9


ENDT=`date +%s`
BITIR=`date`

ELAPSEDT=$((ENDT-STARTT))


/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_inc_backup.msj

/bin/cat /tmp/dar_inc_backup.msj | /bin/mail -s " FILE Server Fark Backup Raporu" $emailRcpt

exit 0

Differantial Backup için DAR Scripti


#!/bin/bash

###########################
# Olusturulma tarihi: 19 Mart 2010
# Emre KARAOGLU ~ Sistem yöneticisi
###########################

emailRcpt="maliniz@mail.com"

DATE=`date +%d`
Month=`date +%b`
Year=`date +%Y`


FILENAME=$DATE.$Month.$Year.incbackup


/bin/touch /tmp/dar_inc_backup.msj

YESTERDAY=`expr $DATE - 1`
OLDFILENAME=$YESTERDAY.$Month.$Year.incbackup


BASLA=`date`
STARTT=`date +%s`

/bin/echo -e "#### Sistem Dif. backup islemi #### " > /tmp/dar_inc_backup.msj

umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk

/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_inc_backup.msj

dar -c /mnt/bckdsk/DIF_SISTEM_BCK/FILESERVER/$FILENAME -A /mnt/bckdsk/FULL_SISTEM_BCK/FILESERVER/FULL.SISTEM.BACKUP -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9


ENDT=`date +%s`
BITIR=`date`

ELAPSEDT=$((ENDT-STARTT))


/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_inc_backup.msj

/bin/cat /tmp/dar_inc_backup.msj | /bin/mail -s " FILE Server Fark Backup Raporu" $emailRcpt

exit 0
Bu Scriptler sadece örnek amaçlıdır. Fikir vermesini düşündüm sadece. Çok daha geliştirilebilir. Kullanımda dikkat edilmesi gereken noktalardan biri de, Eğer Inc. Backup kullanılması tercih edilecekse Full Backup alındıktan sonra 1 kez Dif backup alınmalı ki 1 önceki güne ait bir fark dosyası oluşturulabilmiş olsun.
İyi eğlenceler.

Çarşamba, Mart 17, 2010

DAR (Disk Arshive)

Yedekleme başlı başna bir iştir aslında. Hatta başlı başına bir sorundur da denebilir. Pek çok çözüm var yedekleme için. rsync, tar gibi programlar en çok kullanılanları. Fakat istediğim şey bir backup dosyasını kendine referans alması ve ona göre sadece değişen/yeni eklenen dosyaların yedeğini alması. (rsync bu sorunu çözüyor ama hep aynı klasöre aldığı için dosyaların önceki versiyonlarına ulaşılamıyor. En azından ben çözümünü bulamadım rsync ile :) )
Her neyse bu konuda ciddi anlamda ihtiyaç görecek olan dar (Disk Archive) uygulaması. (http://dar.linux.free.fr/)
Yedeklemeden bahserken bir kaç temel konuyu bahsetmezsek olmaz.

Full Backup (Tam Yedek):
Sistemin (veya belirtilen klasörün) tamamının yedeği

Incremental Backup (Artımlı yedek):
Tam yedeğin ardından, sadece değişen, eklenen dosyalarının yedeğinin alınması işlemi. Artımlı yedekte bir önceki artımlı yedek referans alınarak yapıldığı için dosya boyutları küçüktür. Fakat artımlı yedeklerin geri dönüşünde tüm artımlı yedeklerden tek tek dönülmelidir.
Pazartesi --> Full
Salı --> Inc (pazartesiden beri değişenler)
Çarş --> Inc (Salıdan beri değişenler)
Perş --> Inc (Çarşambadan beri değişenler)
Cuma --> Inc (Perşembeden beri değişenler)

Differantial Backup (Fark Yedek): Fark yedekler de aslında artımlı yedek gibidir. Sadece değişen/eklenen dosyaların yedeğini alır. Fakat her seferinde kendisine tam yedeği referans aldığından bir önceki fark yedek içeriği bir sonraki fark yedek dosyasında da vardır. Dosya boyutu büyüktür. Fakat sistem geri dönüşü çok kolaydır. Sadece tam yedek ve en son fark yedek yeterli olacaktır.
Pazartesi --> Full
Salı --> Dif (pazartesiden beri değişenler)
Çarş --> Dif (pazartesiden beri değişenler)
Perş --> Dif (pazartesiden beri değişenler)
Cuma --> Dif (pazartesiden beri değişenler)

Şimdi gelelim uygulamamıza. DAR uygulamasını apt veya yum aracılığı veya sitesinden indirerek kuruyoruz. (Windows versiyonu da olduğunu belirtmem gerek. Denemedim ama)

DAR ile Yedek Almak:
dar -c yedekdosyasi -R /yedek_alinacak_klasor

BU komut ile en basit kullanımıyla dar sayesinde yedek almış oluyoruz. yedekdosyasi.1.dar adında bir dosya oluşturacak.
Dar için tabi ki bir çok parametre bulunuyor.
-P yok_sayilacak_klasor : Bu parametre ile yedek_alincak_klasör'deki belirttiğimiz klasörler yedeklenmeyecektir
-s 700 MB: Her bir yedek dosyasını 700 MB'lık paketler haline getirir.
-X "*.log" : Yedeklenmesi istenmeyen dosyalar belirtilir.
-y[seviye] : Yedek dosyasında bzip ile sıkıştırma yapar. [seviye] kısmına 0-9 arası bir sayı gelir.


Örnek:

dar -c full_sistem_yedek -R / -P opt -P tmp -P mnt -X "*.log" -D -v -y9

Bu örnekte / dizininin yedeği alınıyor. opt, tmp, mnt dizinleri yedeklenmiyor, fakat yedek dosyasının içine boşklasör olarak oluşturuluyor (-D), ekran çıktısı eş zamanlı veriliyor (-v) ayrıca bzip sıkıştırması 9. seviyede yapılıyor (y9)

Dar ile Dosya Kurtarmak:

Dar ile yedek alınan bir dosyadan geri dönüş için:
dar -R kurtarilan_dosyaların_koyulacagı_dizin -x yedek_dosyası -g kurtarmak_istediginiz_dosya
Bir örnek verelim:
dar -R /root -x full_sistem_yedek -v -g /root/ozel.dosya.txt
Burada root dizini altına, ozel.dosya.txt dosyası aktarılacak. Dikkat edeceğimiz nokta, -x full_sistem_yedek parametresinde 1.dar gibi sayı ve uzantı yazmıyoruz. Çünkü aradığımız dosya hangi parçada bilmiyoruz. Dar kendisi araştırıp hangi parçada ise onu kullanıyor.

Dar ile Fark Yedek Almak
İşte dar'ı çok sevmeme sebep olan özelliği. Fark yedekler. Fark yedek kullanımı:
dar -c fark_yedek_dosyası -A full_yedek_dosyası -R yedeklenecek_dizin
Örnek:
dar -c fark_yedek -A full_sistem_yedek -R / -P opt -P tmp -v -D -y9
Bu örnekte, full_sistem_yedek dosyasına bakılarak sadece değişen/eklenen dosyalar fark_yedek dosyası içine kaydedilecek.

Dar hakkında daha fazla bilgi için sitesini ziyaret edin. MAN sevenler için (http://dar.linux.free.fr/doc/man/dar.html)

Bunlarla ilgili bir kaç tane de bash script yazdım. Onları da bir sonraki yazıda paylaşayım :)

Perşembe, Mart 11, 2010

Acaba ne kullanıyorum.

Geçtiniz bir Linux makinanın başına. Çalışan bir sistem. Ama acaba hangisi? yum mu apt mı? Acaba debian forumlarına mı bakmalı yoksa redhat mi? İyisi mi biraz sistemi tanıyalım :)
- Kernel versiyon:
# uname -a
- hangi linux dağıtımı
# cat /etc/issue
- Daha ayrıntılı
#cat /proc/version
- Acaba usb portlarım nasıl? (1.1 mi yoksa 2.0)
#cat /proc/bus/usb/devices
- Acaba ..... dizinim (örneğin /home) ne kadar kullanılıyor?
# du -hcs /home

[Devamı gelecek, gelmeli :) ]

Pazartesi, Aralık 21, 2009

Ubuntu PPC Flash player

Malum PowerPC Ubuntumuzda problem eksik olmuyor. Bir diğeri de flash eklentileri göstermemek oldu. Adobe'nin flash player'ı malesef PPC'de çalışmıyor. Çünkü amcalar i386 için geliştirmişler sadece. Linux'un güzel yanı bu zaten. Yeter ki iste. Baktım olacak gibi değil kısacık bir araştırma ardından bulduğum sonuç şu:
1. Menüden paket yöneticisini aç. (KPackageKit veya Ubuntu Software Center)
2. Arama kısmına swfdec yaz.
3. Çıkan sonuçlardan libswfdec, swfdec-mozilla, swfdec-gnome dosyalarını kur.
Diğer yol:

1. Komut satırını aç
2. sudo apt get install libswfdec-0.8-0 swfdec-mozilla swfdec-gnome

Cuma, Aralık 18, 2009

MAC G5 Linux (Ubuntu) kurulum

UZEM'de bir süreden beri yatan (hatta uzun süreden beri) Power Mac G5 makina herkesin çok dikkatini çekmeye başlamıştı. Mac kullanmadığım (ve aslında tercih de etmediğim) için uzun süre dediğim gibi ilgisiz kalmıştı. Neden sonra bu sevgili Mac'in boşta duran çift işlemcisini, 8 GB RAM'ini neden boşa harcıyorum diye hayıflanmaya başladım. Sonunda sevgili mac'e (bundan sonra adı dilbert) Linux ile hayat öpücüğü vermeye karar verdim. İşte macera bundan sonra başladı...
Malum bu makinada 64 bit PowerPC işlemci var. Dolayısıyla öyle her istediğin dağıtım ihtiyacını karşılamıyor. Fakat tabi ki benim sevgili Ubuntu'm bi ihtiyacıma da karşılık verdi. Bu süreçte "hangisi iyidir?" sorusunun cevabını ararken, sırayla Debian, Fedora ve Yellowdog (yellowdog fedora tabanlı ve sadece PPC ve PS3 için geliştirilmiş bir dağıtım bu arada, görseli de çok başarılı) dağıtımlarını teker teker denedim. Sonuçta yine döne dolaşa Ubuntu'da karar kıldım.
Kurulum için önce uygun iso paketini indirmek zorundasınız ki denediğim dağıtımlar için linkler şöyle:
Ubuntu: https://wiki.ubuntu.com/PowerPCDownloads
Debian: http://cdimage.debian.org/debian-cd/5.0.3/powerpc/iso-cd/
Fedora: http://fedoraproject.org/en/get-fedora-ppc
Yellowdog: http://www.yellowdoglinux.com/support/downloads/
Ardından aslında kurulumun PC'ye kurumdan hiç bir farkı yok. Sadece Mac'in açılında CD'den boot edebilmek için "c" tuşuna basmayı bilmeniz yeterli. Hatta Ubuntu CD'den direk açılıp bir yandan denerken bir yandan da masasütündeki "install" simgesinden kurulum yapılmasını sağlayabiliyor.
Esas sorun kurduktan sonra başlıyor. Sebebi de üsYazımı Denetletünde gelen Nvidia ekran kartının PPC driver'ı olmaması. Bu sebeple de çok enterasan bir problem çıkıyor ki, ekranın en sağındaki 16 piksellik alan en solda çıkıyor. Yani fareyi en sağa getidiğinizde bir anda en solda görüyorsunuz. BU saçma sorunun çözümünü çok aradım ama sonunda çok güzel bir çözüm buldum. Nouveau driver. Bu driver nvidia driver yerini karşılıyor ve tüm sorunu çözüyor. Kurulum adımları şöyle:
1. Öncelikle xserver-xorg-video-nouveau paketini kurmalıyız. Komut satırını açıp şnları yazıyoruz:
$ sudo add-apt-repository ppa:xorg-edgers/nouveau
$ sudo aptitude update
$ sudo aptitude install xserver-xorg-video-nouveau
2. Ardından /etc/X11/xorg.conf dosyasından nouveau driver'ımızı tanıyoruz.

Section "Device"
...
driver "nouveau"
EndSectin


3. Ardından bir restart ve herşey yolunda.
Ben sonra KDE kurdum kdm problem çıkardı yine. Karşılayıcı olarak GDM masaüstünde KDE.

Salı, Aralık 15, 2009

Ubuntu'da "Open as root" kullanımı

Ubuntuyu keşfettim ya masaüstünde. Eksik gedikleri de dikkatimi çekiyor. Örneğin bence en önemli eksiklerden biriydi, bir dosyayı "root olarak" ("open as root") çalıştırmak. Ubuntucu amcalar bu işte o kadar başarılı ki, gerçekten sudo kullanımına bayılıyorum. Her neyse sonuç olarak gnome kullanırken bir dosyayı root yetkileriyle açabilmek için en kolay yol üstüne sağ tıklayıp "Root olarak aç" demek. Fakat bu yok. Peki nasıl ekleriz? İşte böyle:
1. Komut satırında
$ sudo su

komutu ile root oluyoruz.
2. # gedit .gnome2/nautilus-scripts/Open\ as\ root
komutu ile gnome menüsüne Open as root (Buraya Türkçe kullanım da Root olarak aç da yazılabilir.) adıyla eklenecek script oluşturuluyor.
3. Ardından açılan dosyaya işte bu scripti ekliyoruz:

for uri in $NAUTILUS_SCRIPT_SELECTED_URIS; do

gksudo "gnome-open $uri" &

done

4. Son olarak da bu scripte çalıştırılma yetkisi sunuyoruz:
# sudo chmod +x .gnome2/nautilus-scripts/Open\ as\ root

Bir logout/login ardından artık bir dosya üzerinde sağ tıkladığımızda "Open as root" yazısını görebiliyoruz. Geriye sadece şifreyi yazıp dosyanın root yetkileriyle açılması kalıyor.


Kaynak: http://www.pendrivelinux.com/how-to-open-files-as-root-via-a-right-click/

Perşembe, Ocak 22, 2009

Neden Windows değil?

Aslında kendim kaşındım biliyorum. Ama son zamanlardaki işler (özellikle dershane), bir de üstüne "nasılmış şu vista?" merakı eklenince yaklaşık 2 aydır windows kullanıyordum. Aslında çok da fena bir tecrübe olmadı ama başıma gelenlerden sonra seminerlerde (özellikle neden linux kullanıyoruz?) seminerlerinde anlatılanlar/anlattıklarım hepsi aynı zamanda yaşanmış birer anı oldu. Bugün itibarıyla yeniden "efsane geri döndü" diyebilirim :) (oooh içimdeki vicdan azabı da biraz daha azaldı.)
Aslında gerçekten merak ediyorum;
-Neden insanlar günün yarısını işletim sistemini ayakta tutmak için uğraşır? (Ben mi paranoyakım bilmiyorum ama antivirüs antispyware şifreleri, keyleri derken geçen zamanımın haddi hesabı olmadı bu 2 ayda. Sonuçta şunları öğrendim: Nod32 korumuyormuş, Kaspersky düşünüldüğü kadar makinayı değil insanı kasıyormuş eğer lisanssız kullanırsan, Avira, AVG gibi ücretsiz çözümler bile pek çok ücretli çözümden iyiymiş. En önemlisi hangi antivirüs/antispyware/antibilmemne kurarsan kur boşunaymış. Hepsi bir arada çalışırsa anca işe yarıyormuş...
- Neden insanların vista süper görsel derken KDE 4'ten haberleri yok? Ben de aslında bugün tecrübe ettim ayrı konu. Debian testing kullanıyorum bilenler bilir. Aslında vazgeçmiş de değilim. Ama ubuntuyu çıktığı günden beri merak ediyordum fakat hep "yaa aslı varken (debian) çakmasını niye kullanayım?" diye de düşünüp vazgeçiyordum. Bu sefer dönüşümü bari ubuntu ile yapayım madem test insanı oldum onu da deneyeyim dedim. Malum debian testing hala KDE 4'e geçmedi. Unstable da kullanmadığım için görmemiştim. Kurdum ubuntu 8.10 tabi ki gnome geldi. Üzerine de kubuntu-desktop paketini kurdum görmek için. O da ne? Resmen aşk. Masaüstünün tamamı widgets eklemek için kullanılıyor. Masaüstü olarak kullanmak için de (dosya vs. koymak için) bir widget daha var. KDE menüsünün düzeni, efektleri süper olmuş. Linux'un bu özelliği çok güzel işte. "Görsel istiyorum": Buyur kardeş KDE, görselin kralı. "Sade olsun makinamı da az yorsun": Buyrun size Gnome verelim. Daha başka onlarca alternatif.
Bu arada henüz ubuntu konusunda yorum yapmak için erken, fakat ilk izlenimlerim olumlu oldu. Özellikle kablosuz ağlarda çok başarılı. İTÜ-Net kablosuz ağı var sadece İTÜ personeli kullanabiliyor ve sertifika dosyası indiriliyor tanıtılıyor vs bazı ayarları var. İnanın windows'a kurmaktan çok daha kolay...
Artık vista ve windows hakkında atıp tutarken içim biraz daha rahat. Ayrıca hani insanlar sevgilisinden ayrılırlar da sonra özlemle birbirlerine kavuşurlar. Bu yaklaşık 2 aylık ayrılık bize iyi geldi... "Sevgilim Linux seni hiç bırakmıycam" :P

Perşembe, Kasım 27, 2008

IBM x-series sunuculara işletim sistemi kurulumu

Aslında blogum Linux hakkında. İçerik anlamında da ağırlık zaten Linux'ta. Ama bazen yazacaklarım için en uygun yer burası diye düşünüyorum. İşte onlardan biri: IBM x-series sunuculara işletim sistemi kurulumu.
Yaklaşık 1,5 aydır IBM sunuculara Windows 2003 kurmaya uğraşıyorum. "Neden bu kadar uzun sürdü ki?" denir tabi normal şartlarda. IBM sitesinden dökümanlar okudum, internetten okudum, forumlara yazdım. Derken bir türlü çözüm üretmedim. Bu arada IBM ServerGuide CD'si ile kaç kez sunucu açtım resetledim sayısını bilmiyorum. Bu esnada sorunun kaynağı olarak düşündüğüm, BIOS update, yeni ServerGuide CD'si indirmek, yeni Windows 2003 CD'si yazmak gibi çözümlerin tamamını denedim. Sorun ya RAID ayarlarını yaptıktan sonra "On a RAID system create a logical drive that is 3000MB or large" hatası veya Windows dosyalarının kopyalanmasından sonra reboot aşamasında takılmaydı. Dün doğrudan Windows CD'si takıp kurmaya kaktığımda kurulum için pek çok partition karşıma çıktı. Pek çoğuna da kurulum yapamam diyordu. Aklıma SAN (Storage Area Network) geldi. O sunucuya SAN üzerinden MAP edilmiş alanlar sorun çıkarıyor olabilir dedim. (Muhtemelen de kurulumda çıkan ve kurulum yapmayan aşanlar onlardı) Haklıymışım. Bugün SAN'i iptal ettim ve öyle kurdum. Sonuç, çalışan bir Windows 2003 ve bir kurulum dökümanı. :)
Allahtan çok acil kurulması gereken bir sunucu değildi de kurtuldum. Yoksa beni Bakırköy'de veya sevgili memleketim Manisa'da bulabilirdiniz... :D
IBM x-series sunuculara işletim sistemi kurulumu [pdf]