Solaris etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Solaris etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Çarşamba, Eylül 25, 2013

what is the location of the directory which contains your xorg modules ?

Splunk testlerine bir de Solaris sunucu katayım dedim. Ben genelde X Window veya başka bir GUI kullanmam Solaris sunucularımda ve tercih de etmem. Ama hızlı çalışmak zorundaydım ve Solaris 10 9/10 sunucumu ayarlarına özenmeden, grafik modda kurdum.

Sonra da üzerine VMware tools yükleyeyim dedim. Ama gördük ki, bir sıkıntı var. Kurulumun ortasında aşağıdaki soruyu soruyor ve ben cevabını bilmiyorum :

- what is the location of the directory which contains your xorg modules ?

Aradık, taradık, bulduk. Cevap : /usr/X11/lib/modules/



Salı, Temmuz 12, 2011

Unable to access file since it is locked

İki Solaris 10 (x86) VM sunucu kullanarak bir Solaris Cluster 3 kurmak peşindeyiz. Önce ne lazım ? Quorum alanı için ortak disk. Biliyoruz nasıl yapılacağını, belgeler var yol gösterecek.

Benzerlikleri dikkate alınarak VMware MSCS kurulumu için ​kullanılan belgeden faydalanıyoruz :

http://www.vmware.com/pdf/vsphere4/r40/vsp_40_mscs.pdf

Aynen kitabın tarif ettiği gibi diski oluşturduk, paylaştırdık. Ama o ne ? İkinci VM diski okumak istediğinde kocaman kırmızı bir hata çıkıyor :)
vm02.png

Hasta etti beni. Küfür ettim, rencide ettim VMware sunucularını. :) Ama bir şey değişmedi. Aradan geçen saatler içinde son dakikada bulduğum bir forum yazışması kafamda bir ışık çakmasına neden oldu da sorununun çözümünü buldum.

http://communities.vmware.com/message/1625911

Özetle, işe başlamadan önce patlar / çatlar diye VM'lerde snap almıştım. Kaldırınca diskleri normal şekilde okudu ve kabul etti.

Hay bin kunduz...

Pazartesi, Mart 07, 2011

syslog-ng üzerine çalışmalar

Syslog-NG ile ilgilit testler yapma isteği belirdi içimde birden. Oturup biraz inceledim.

Solaris x86 platformunda syslog-ng kurmak isteyenler aşağıdaki adresten paketi temin edebilirler :
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/syslogng-3.1.2-sol10-x86-local.gz

Paketin bağımlılıkları için aşağıdaki ek paketlere gerek var :


-rw-r--r--   1      20865 Mar  4 13:34 eventlog-0.2.12-sol10-x86-local.gz
-rw-r--r--   1    6795158 Mar  4 14:31 glib-2.25.13-sol10-x86-local.gz
-rw-r--r--   1     526342 Mar  4 13:36 libgcc-3.4.6-sol10-x86-local.gz
-rw-r--r--   1    1488704 Mar  4 14:44 libiconv-1.13.1-sol10-x86-local.gz
-rw-r--r--   1     114680 Mar  4 13:35 libintl-3.4.0-sol10-x86-local.gz
-rw-r--r--   1    4399772 Mar  4 13:36 openssl-1.0.0d-sol10-x86-local.gz
-rw-r--r--   1    1200185 Mar  4 13:36 pcre-8.12-sol10-x86-local.gz
-rw-r--r--   1    424200 Mar  4 13:33 syslogng-3.1.2-sol10-x86-local.gz
-rw-r--r--   1     585896 Mar  4 13:35 zlib-1.2.5-sol10-x86-local.gz



Solaris istemci örnek konfig dosyası


@version:3.0


options {
};


# sources


source s_local {


# SYslog-ng tarafindan uretilen mesajlar.
internal();
# Solaris stream mesajlar
sun-streams("/dev/log" door("/etc/.syslog_door"));
};


# destinations
destination d_tcp {
                tcp("192.168.1.1");
        };


log {
source(s_local);
destination(d_tcp);
};

Linux Sunucu için örnek konfig dosyası



@version: 3.2
#Default configuration file for syslog-ng.
#
# For a description of syslog-ng configuration file directives, please read
# the syslog-ng Administrator's guide at:
#
# http://www.balabit.com/dl/html/syslog-ng-admin-guide_en.html/bk01-toc.html
#


options {
                dns_cache(2000);
                dns_cache_expire(87600);
                use_dns(yes);
};


# sources
source s_local {
# message generated by Syslog-NG
internal();
# standard Linux log source (this is the default place for the syslog()
# function to send logs to)
unix-stream("/dev/log");
# messages from the kernel
file("/proc/kmsg" program_override("kernel"));


};


source s_net {
udp();
tcp();
syslog();
};




######
# destinations
destination d_messages { file("/var/log/messages"); };
destination d_iTop { file("/var/log/itop.deneme.local"); };


log {
source(s_local);
destination(d_messages);
source(s_net);
destination(d_iTop);
};

Çarşamba, Kasım 24, 2010

Jboss SMF , Solaris 10

Solaris 10 ortamında Jboss'un SMF servisi haline getirilmesi ile ilgili kritik iki kaynağı, artık konunun üzerinden zaman geçmiş olmasına rağmen arşiv amaçlı eklemek istedim.

Jboss 4 veya 5'in SMF ' e dönüştürülmesi
http://www.sun.com/bigadmin/content/submitted/config_smf.jsp

Jboss SMF için düzeltilmesi gereken önemli bir bug
http://community.jboss.org/thread/2390?tstart=0

Çarşamba, Şubat 17, 2010

pid file /opt/csw/apache2/var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run



Gecenin bir vakti insan Apache sürümleri, MPM worker , CSW ve SunFreeware repositoryleri gibi derin konularla uğraşınca ve de yorulmuşsa bazen okuyanı güldürecek derecede basit sorunların peşinde helak oluyor. 


"Ockham'ın usturası" önermesi de birazdan anlatacağım bu duruma çok uygun düşüyor sanırım.


Ockham'ın usturası : 


Latincesi "Entia non sunt multiplicanda praeter necessitatem" olarak geçen ; "bir meselenin birden çok açıklaması varsa, ve hepsi de aynı derecede kuvvetli ise, yani bir açıklamayı diğerlerinden üstün tutmak için elle tutulur bir neden yok ise, basit açıklamanın daha faydalı olacağı görüşü"dür.


Neyse, daha fazla saptırmadan konumuza dönelim.


Daha önce Sunfreeware'den alınma Apache 2.2.x paketlerini kullanırken, MPM worker sorunu nedeniyle artık mpm olarak derlenmiş olan ve CSW tabanlı Apache paketini kullanmaya başladık. Ancak daha öncesinde de "Limiting Service Privileges in the Solaris™ 10 Operating System" belgesine dayanarak Apache SMF servisini de 'webservd' hesabı altında kısıtlamış ve çalışır hale getirmiştik.


Ne olduysa zaten bu noktada oldu. Komik ve de gerçek.


Apache servisi normalde 'webservd' hesabı altında açılmalı ve 2-3 prosesten fazlası olmamalıydı. Ancak root, nobody ve webservd olarak 3 farklı hesap altında farklı prosesler görüyorduk. root ile açılan proses 1 no'lu idi ve öldüremiyorduk. Diğer yandan da aşağıdaki hata mesajını almaktaydık.


"pid file /opt/csw/apache2/var/run/httpd.pid overwritten Unclean shutdown of previous Apache run"


Neler düşünmedik ki ? PID dosyasının sahipliğini normal kipte değiştirmeyi, single user mode'da değiştirmeyi , /etc/init altında içinde httpd geçen dosyaları aratmayı vs.vs. o an uykulu kafayla akla gelebilecek envai çeşit (cahil) yöntem denendi ama hiç biri işe yaramadı.


Sonuçta ne mi çıktı ? En basit önerme tabi. CSW paketi hiç de tahmin etmediğimiz şekilde kendi SMF servisini yazmış ve çalıştırmıştı. Ayrıca biz de Apache servisi için SMF yazmış ve çalıştırmıştık. Bizimkini öldürüken aynı zamanda başka bir servisle yarışmaya çalışıyorduk. :) Servislerden birini silince sorun kendiliğinden düzeldi. Artık httpd proseslerini istediğimiz gibi kapatabiliyorduk.

Perşembe, Şubat 11, 2010

NTP zaman ayarı ve Solaris 10

Solaris sunucularınızın harici bir NTP zaman sunucusundan bilgi alması ve saat yönetimi yapmasını istiyorsanız aşağıdaki adımları uygulayabilirsiniz.

1- SUNWntpr ve SUNWntpu paketleri sunucuya yüklenmelidir.
2- /etc/inet/ntp.client dosyası /etc/inet/ntp.conf olarak kopyalanır.
3- ntp.conf dosyası içine aşağıdaki satırlar eklenir.

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.orgserver 2.europe.pool.ntp.org


4- svcadm enable ntp komutu ile NTP servisi aktif hale getirilir.
5- ntpq -p komutu ile sunucunun saatinin durumu ve eşleme farkları izlenebilir.

Salı, Şubat 09, 2010

SecureCRT ve şifresiz SSH login (1)

Çok sayıda UNIX sunucusuyla ilgilenmeye başlayınca ortaya farklı sunuculara anlık yapılması gereken bağlantıların ne kadar sıkıcı olabileceği , her seferinde şifre girmenin prensipli duruşun gereği olsa bile tahammül sınırlarını zorlayabileceği gerçeği çıktı. Bu durumda, yine güvenlikten ödün vermeden login işlemlerini kolaylaştırmanın yolunu bulmak için SSH sertifikası yöntemini kullanmaya karar verdim. Aşağıda bu işlemin adımları yer alıyor.

1- Public Key oluşturulması

SecureCRT yazılımında public key oluşturmak için aşağıdaki adımları takip ettim.


















Passphrase alanına bir anahtar kelime girilmesi gerekiyor. Ne kadar uzun ve karmaşık, o kadar iyi :)













1024 bit'lik anahtar oluşturuyorum.



















Anahtar oluşturulduğunda kayıt etmesi için bir klasör soracaktır. Ben Linux ve Solaris anahtarlarını ayırmak için ayrı klasörler kullanıyorum. Identitiy ve Identitiy.pub dosyaları otomatik olarak seçtiğiniz klasöre yerleştirilecektir.

2- Private Key'in kullanılması

SecureCRT içinde private key'in kullanılabilmesi için iki yöntem bulunuyor. İlk olarak tüm sunucularda kullanılmak üzere Global Options içinde bu anahtarı gösterebilirsiniz. Linux ve Solaris anahtarlarım farklı olduğu için bu yöntem bende işe yaramadı. Diğer yöntem olarak her sunucu için sunucu seçenekleri içinde anahtar belirtebilirsiniz.













Yukarıdaki resimde görülen kimlik doğrulama sıralamasını değiştirmeniz gerekiyor. Public Key ile çalışabilmek için ben "password" ve "public key"in öncelik sıralamasını değiştirdim.













3- UNIX sunucusunda yapılması gereken işlemler.

  • Öncelikle (~) home folder altında .ssh klasörünü açmalısınız.
  • SecureCRT'nin oluşturduğu identitiy.pub dosyasını UNIX sunucunuza kopyalayınız.
  • touch ~/.ssh/authorized_keys dosyasını oluşturunuz.
  • cat identitiy.pub>>~username/.ssh/authorized_keys ile oluşturduğunuz anahtarı genel anahtar dosyanıza kayıt ediniz. Burada yönlendirmenin sonuna yaz (append) '>>' şeklinde yapılmasının sebebi, farklı sunuculardan gelecek farklı public key'lerin aynı dosyada toplanabilmesini sağlamaktır. Birazdan okuyacağınız gibi iki UNIX host arasında da anahtar değiş tokuşu ile SSH login sağlamak mümkün olacaktır.
Bu noktada kişisel bilgisayarınızdaki SecureCRT üzerinden tekil olarak veya toptan "global options" kullanarak ayarladığınız UNIX sunucularına şifresiz SSH login yapabilecek durumdasınız.

Cuma, Ocak 29, 2010

Salı, Ocak 26, 2010

error 3 : bad or corrupt data while decompressing file

Solaris 10 U7 bir sunucumuzda yüksek oranda hesaplamaya dayanan tomcat ve mysql tabanlı bir uygulamamız vardı. Bu uygulama için kurulan yeni sunucuda JVM ayarlarıyla ilgili yapılan bir hata nedeniyle core dump oluşmaya başladı ve süratle sunucunun diskini doldurdu.


Kapatıp açtıktan sonra , açılış sırasında aşağıdaki nahoş hatayı almaya başladık ve işletim sistemini yükleyemez hale geldik.


error 3 : bad or corrupt data while decompressing file


Yaptığım kısa bir araştırmadan sonra bunu çözmenin basit bir yolu olduğunu öğrendim. Aşağıda paylaşıyorum.


Sunucu failsafe modda açıldıktan sonra aşağıdaki komutlar çalıştırılır.


sh> rm -f /a/platform/i86pc/boot_archive
sh> bootadm update-archive -R /a
sh> reboot


Salı, Ocak 19, 2010

Tomcat 6 SMF servisi oluşturma (Solaris 10)


Tomcat 6.0'ı Solaris 10 üzerinde SMF servisi olarak çalıştırmak için hazırda bir kaynak bulamadım. Yaptığım araştırmalarda da net olarak bir XML dosyası elde edemedim. Dolayısıyla iş başa düştü. Sırayla tüm adımları aşağıda gönderiyorum.

1- Java 1.6 yüklenir ( /opt/jdk1.6)
2- Tomcat 6.0 yüklenir (/opt/apache-tomcat6)
3- Tomcat XML oluşturulur ve /var/svc/manifest/network altına tomcat.xml olarak kopyalanır.
4- /opt/apache-tomcat6/bin altındaki tüm çalıştırılabilir dosyalara +x (execute) hakkı verilir.
5- tomcat için bir kullanıcı hesabı ve grup oluşturulur.
6- /opt/apache-tomcat6/log klasörünün sahipliği tomcat:tomcat grubuna verilir.
7- svccfg import /var/svc/manifest/network/tomcat.xml ile servis hazırlanır.
8- Java, /usr/bin'den farklı bir yere yüklenmiş olduğu için sembolik link oluşturulur.

ln -s /opt/jdk1.6/java /usr/bin/java

9- /opt/apache-tomcat6/bin/startup.sh içine JAVA_HOME=/opt/jdk1.6 eklenir.

Aşağıda bir Jboss XML'den devşirerek oluşturduğum XML dosyasını bulabilirsiniz (Neden metin olarak yüklemediğimi sorarsanız, Blogger koda kızdığı ve ben de bunu nasıl aşacağımı bilmediğim için böyle yaptım. Tekrar yazmak zorunda kalacaklar kızabilirler ama malesef böyle.. :) )





Pazartesi, Aralık 14, 2009

Solaris 10'da disk kotasını etkin hale getirmek

Kota uygulamasını UFS dosya sistemlerinde etkin hale getirmek oldukça kolay. Bİr kaç komutla çalıştırılabiliyor. Aşağıda örnek bir uygulama göstermek istiyorum.

- kota uygulanacak her dosya sistemininin kökünde 'quotas' dosyası yaratılır.

# touch /app/quotas /quotas

- dosyanın yetkileri root hesabıyla düzenlenir.

# chmod 600 /app/quotas /quotas

- kota uygulanacak tüm dosya sistemleri için /etc/vfstab dosyasında 'options' alanına 'rq' kaydı eklenir. Bu işlem sonrasında sunucunun yeniden başlatılması gerekmemektedir.

# vi /etc/vfstab

- Kota etkin hale getirilir.

# quotaon -va

- Hangi kullanıcı için kota belirlenecekse , bu kullanıcı için ilgili komut çalıştırılır.

# edquota test01

- Eğer birden fazla kullanıcı için kota uygulanacaksa, bir kullanıcı hesabı şablon olarak seçilebilir. Aşağıdaki komuttaki ilk kullanıcı şablona esas alınacak kullanıcıdır.

# edquota -p test01 test02 test03


Cuma, Kasım 20, 2009

NFS automount problemi Solaris 10

Sol10 makinelerinde kullandığımız nfs disk bölümlerini /etc/vfstab içine yazmama rağmen bir türlü automount olmadığını görünce biraz araştırma yaptım ve aşağıdaki yazışmayı buldum.

İlginç bir bilgi olduğunu düşünerek yayınlıyorum.


Özetle, nfs disk bölmesinin otomatik yüklenmesi için nfs SMF servisinin online durumda olması gerekiyor. Bendeki durumu kontrol ettiğimde gerçekten de disable durumda olduğunu gördüm. :)

Link : Solaris 10 yama yönetiimi

Solaris'de yama yönetimi konusunda en iyi uygulamaları gösteren bir web hizmeti .

Defunct process'leri öldürmek

Orphaned (defunct) process'leri öldürmek için güzel bir yöntem.

/usr/bin/preap $(ps -ef | grep defunct | awk '{ print $2 }' | xargs)

Çarşamba, Kasım 18, 2009

Güvenli Apache kurulumu (1) : Not

Kurulum adımları doğru takip edilmesine rağmen httpd servisi hala "daemon" hesabıyla çalışıyorsa edindiğim deneyimlere göre, /usr/local/apache2/logs altındaki bir dosyanın sahipliği webservd hesabına geçmemiş olabilir.

Farklı zamanlarda yaptığım iki kurulumda aynı sorun ve dosyayı gördüm. Her ikisinde de httpd.pid dosyasının sahibi hala root:root idi. Dosyanın sahibini webservd olarak değiştirerek servisi yeniden başlatınca, Apache servisi olması gerektiği gibi "webservd" hesabı altında çalıştı.


Cuma, Kasım 13, 2009

Güvenli Apache kurulumu (1)

Solaris 10 sunucularımızda Apache 2.2.x sürümlerini çalıştırmak için hazırlık yapıyoruz. Elbette güvenli kurulumun üzerinde yine aynı şekilde güvenli modda çalışan uygulamalar istediğimiz için Apache web server'ın da güvenli kurulumuna dair araştırmalar yapmaya başladık.

Bu ilk kısımda Sun'ın bu konuda yayınlanmış belgelerini referans alarak Apache'nin kısıtlı yetkilerle kontrollü çalıştırılmasına dair bulduklarımı özetlemeye çalışacağım.

Apache'nin SMF servisi olarak nasıl çalıştırılacağını daha önceki bir yazımda açıklamıştım.

Apache SMF dönüşüm

SMF servisi olarak başlattıktan sonra servisin deamon veya root gibi kullanıcı hesapları yerine, kısıtlı yetkilere sahip webservd hesabıyla çalıştırılabilmesi için aşağıdaki komutların takip edilmesi yeterlidir.

# svccfg -s apache2
svc:/network/http:apache2> setprop start/user = astring: webservd
svc:/network/http:apache2> setprop start/group = astring: webservd

Apache servisinin minimum yetki seviyesinde çalıştırılması için gereken ayarlamalar yapılıyor.

svc:/network/http:apache2> setprop start/privileges = astring: basic,!proc_session,!proc_info,!file_link_any,net_privaddr
svc:/network/http:apache2> setprop start/limit_privileges = astring: :default
svc:/network/http:apache2> setprop start/use_profile = boolean: false
svc:/network/http:apache2> setprop start/supp_groups = astring: :default
svc:/network/http:apache2> setprop start/working_directory = astring:
:default
svc:/network/http:apache2> setprop start/project = astring: :default
svc:/network/http:apache2> setprop start/resource_pool = astring: :default
svc:/network/http:apache2> end

Bu noktada servisi yeniden enable etmek gerekiyor.

# svcadm -v enable -s apache2
svc:/network/http:apache2 enabled.

Eğer servis daha önceden çalıştırılmışsa /usr/local/apache2 dizininin sahipliği bin:bin olarak düzenlenmiştir. Bu durumda webservd hesabı log dosyalarını okuyamayacağı için aşağıdaki hata mesajını alabilirsiniz.

# cat /var/svc/log/application-web-apache2:default.log

[ Nov 13 14:46:31 Executing start method ("/usr/local/apache2/bin/apachectl start") ]
(13)Permission denied: httpd: could not open error log file /usr/local/apache2/logs/error_log.

Bu durumda klasör sahipliğini webservd hesap ve grubuna devretmek gerekiyor.

# chown -R webservd:webservd /usr/local/apache2/

Daha sonra sunucuyu yeniden başlattığınızda httpd servisinin yalnızda bu kullanıcı hesabıyla çalıştığını kontrol etmelisiniz.

# ps -ef|grep http|grep -v grep

webservd 714 459 0 15:12:56 ? 0:00 /usr/local/apache2/bin/httpd -k start

# ppriv -S 714

714: /usr/local/apache2/bin/httpd -k start

flags =

E: net_privaddr,proc_exec,proc_fork

I: net_privaddr,proc_exec,proc_fork

P: net_privaddr,proc_exec,proc_fork

L: all

Vmware Tools 4.0 ve Solaris 10

Vsphere 4.0'a geçtiğimizden bu yana sanal Solaris 10 sunucularının vmware tools paketlerini değiştirmek için fırsat kolluyordum. Geçen hafta sonu bir kaç makinede bu işlemi yapıp yeni VM tools'u yükledikten sonra servisin kendiliğinden kapandığını farkettim. Makine açılışında servis açılıyor ancak daha sonra kapanıyordu. Bu konuyla ilgili küçük bir araştırmadan sonra UTF-8 locale ile ilgili aşağıdaki paketin yüklenmesi gerektiğini öğrendim. Paket yüklendikten sonra sunucular sorunsuz olarak VM tools'u çalıştırmaya başladılar.

VMware Tools does not start on a Solaris guest

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1014683

Perşembe, Kasım 05, 2009

Solaris 10 güvenli kurulum (1)

Güvenli bir Solaris 10 kurulumu hazırlamaya çalışıyorum. Olabildiğince az servis ve uygulama yüklü olması tercihim. Gereken her türlü ortamda minimum saldırı yüzeyine sahip, kullanışlı bir işletim sistemi. Üzerinde bayağı zamandır çalışıyorum ve bu konuda bir yordam hazırladığımı söyleyebilirim.

Temel paket olarak Core Networking (SUNWcreq) paketini kullandım. Aşağıda gerekli olduğunu düşündüğüm ve ek olarak yüklediğim paketler bulunuyor.

  • Automated Security Enhancment Tools (SUNWast)
  • Audit Service Implementation (SUNWaudit)
  • Basic Audit Reporting Tools (SUNWbart)
  • Documentation Tools (SUNWdoc )
  • Freeware other utilities (SUNWCfwutil)
  • Freeware shells (SUNWCfwshl)
  • On-line manual pages (SUNWman)
  • Secure Shell (SUNWCssh)

Daha sonra sıra yamalamaya geldi. PCA (Patch check advanced) scriptini kullanarak sunucumun yamalarını yükledim. Bu yükleme için yalnızca Perl'e ve wget'e ihtiyaç duyuluyor. Perl mevcut kurulumda gelmekte. wget ise

  • GNU wget (SUNWCwget)
  • Bağımlılık - Common GNU package (gcmn)

paketlerinin yüklenmesiyle hazır hale geliyor. PCA'nın aktif hale gelmesi için sunucunuzu doğrudan HTTPS ile Internet'e çıkabilir hale getirmek gerekli. Çalıştığında 60'a yakın yama buluyor ancak bende bunlardan yalnızca 20'sini yükledi.

http://www.par.univie.ac.at/solaris/pca/intro.html

Bu işlemler bittikten sonra da sunucuya Solaris Security Toolkit (SUNWjass) ile bazı ilave düzenlemeler yaptım. SUNWjass'ı http://www.sun.com/software/security/jass/ sayfasından indirebilirsiniz. Araç hakkında detaylı bilgiye bu blogdan ulaşmak mümkün.

SUNWjass çalıştırıldığında /etc/hosts.deny dosyasına ALL kaydını ekliyor. Dolayısıyla başta ayarları özelleştirmezseniz bir sonraki açılışta sunucuya SSH bağlantısı yapamayacaksınız anlamına geliyor. Bu nedenle uygulamadan önce test sistemlerinde çalıştırmak ve özelleşmiş ayarlarla prod sistemlerine geçmek en doğrusu.


Salı, Eylül 29, 2009

BackupExec 12.5 ve Solaris 10 yedekleme sorunu

Yedekleme yazılımımızı BrightStore'dan Symantec BackupExec 12.5'a geçirdiğimizden bu yana enteresan sorunlarla karşılaşıyoruz. Geniş bir platform ve farklı sistemlerin olduğu bir ortamda böyle bir değişikliğin sancısız olmayacağının farkındaydık ama bu kadar da enteresan şeyler göreceğimizi açıkçası pek sanmıyordum.

Anlatmaya çalıştığım sorunumuz şu : Solaris 10 U7 sunucularda BackupExec agent'ını yükleyerek çalıştırdıktan sonra BE'nin yönetim konsolunda normal olarak sunucuyu görmemiz gerekir. Ancak farklı yöntemler denememize rağmen bir türlü sunucuyu BE'ye tanıtmayı başaramadık.

Agent'ın debug modunu açtığımızda da hep aynı mesajı alıyorduk ;

NrdsAdvertiserThread: EnumSelfDLE for file system 22 returned -1(0xFFFFFFFF) and 0 DLEs

Symantec'le yaptığımız yazışmalar ve açılan "case" sonucunda bize, ipe sapa gelmeyen aşağıdaki açıklamayı gönderdiler.

http://seer.entsupport.symantec.com/docs/316840.htm

Özetle, Solaris'teki NIC cihaz adının ortasında (başı ve sonu değil) rakam bulunuyorsa BE 12.5 sunucusu bu agentı tanımıyor, agent kendisini BE'ye tanıtamıyor gibi garip bir durum vardı. (Ör : e1000g0 çalışmıyor, fge0 çalışıyor).

Tabi bu durumu önceleri biraz gülerek ama zaman ilerledikçe ve işler aksadıkça kızarak ve sonrasında da ciddi öfke patlamaları şeklinde karşılamaya başladık. İşin kötü yanı , NIC device name'ler henüz Solaris 10'da değiştirilemiyor. Ortamımızda tüm Solaris sunucuları Vmware ESX 3.5 üzerinde çalışıyor ve ESX hostlarda yalnızca e1000g sürücüsünü kullanan Ethernet kartları tanımlı. Dolayısıyla kartları değiştirerek de "device name"leri değiştirme imkanımız yok.

Cihaz ismini değiştirme seçeneği yalnızca Open Solaris 'de dladm rename-link komutu ile desteklenmekte.

http://www.sun.com/bigadmin/sundocs/articles/vnamingsol.jsp

http://www.opensolaris.org/os/project/clearview/docs/vnameoverview.pdf

Ama en sonunda biraz (itiraf ediyorum birazdan daha fazla :) ) kastırınca ve Sun Microsystems Türkiye'den de küçük bir destek alarak sorunumuzu çözdük.

Yaptığımız işlem basitçe Solaris ve BE'yi kandırmak. Mevcut ismi değiştiremeyince biz de içinde tek NIC'in bulunduğu bir Link aggregation yaratarak BE'nin muhatap olduğu NIC'in seveceği türden (!) bir isminin olmasını sağladık. Aşağıda bu işlemi nasıl yaptığımızı gösteren komutlar bulunuyor.

# ifconfig e1000g0 down unplumb (bu komutu kullanmadan dladm çalıştırılırsa 'cihaz kullanılıyor' hatası veriyor)
# dladm create-aggr -d e1000g0 1
# ifconfig aggr1 plumb up
# mv /etc/hostname.e1000g0 /etc/hostname.aggr1

Not : Sun Microsystems Türkiye'den Serkan Berk'e yardımları için bu vesileyle teşekkür ediyoruz.

Salı, Eylül 08, 2009

Solaris 10, Apache V2 SMF düzenleme

Projelerden biri için iki adet Solaris 10 (u7) sunucu üzerine medya ile birlikte gelen Apache’nin kurulması gerekiyordu. Kurduk :) Ama daha sonra yazılımcılar en az V2 ile çalışmak istediklerini belirtip V1.3′ten vazgeçtiler.

Herhangi bir yazılımcının istek ve karar değişiklikleri asla bitmeyeceği için bir süre sonra bunu da yeterli görmeyip V2.2 ile çalışmak istediklerini belirttiler.

Solaris medyası ile V2 geldiği için V2.2.12′ yi ancak www.sunfreeware.com’dan bulabildim.

http://www.sunfreeware.com/programlistintel10.html#gcc33

Apache’nin bu sürümü beraberinde bir çok ek paketin de yüklenmesini istiyor. Özellikle prod sunucularına GCC kurmak istemeyenler için libgcc.3-4-6 tavsiye edilmiş.

Kurulumlar tamamlandığında elimizde çalışır halde Apache v2 sunucuları vardı ve yazılımcıların tüm isteklerini karşılıyordu ama bu sefer de yönetim sorunları ortaya çıktı.

Yüklemede kullandığım stream data package anladığım kadarıyla Apache için SMF servisi oluşturmamıştı. Bu durumda ancak ilgili klasörün içinden apachectl’yi elle çalıştırarak hizmeti başlatabiliyorduk.

Aslında bu durum işime de gelmedi değil. Ne kadar zamandır SMF hakkında pratik yapmayı planlıyordum ve bu sayede el alışkanlığımı da geliştirmiş oldum.

Apache V2 için SMF servisi oluşturmanın yolu çok basit.

1- Sun’ın aşağıdaki belgesi oldukça açıklayıcı

http://www.sun.com/bigadmin/features/articles/id_manager_service.html

2- Buradan mevcut XML dosya örneğini alıp üzerinde bazı küçük değişiklikler yaptım ve bahsedildiği gibi bir klasör altına yerleştirdim.

3- Aşağıdaki komutları çalıştırdım ve Voila ! Servis hazırdı.

bash-3.00# svccfg validate apache2.xml
bash-3.00# svccfg import apache2.xml

SMF ile ilgilenenler için açıklayıcı bir forum topiğini de ekte yayınlıyorum.

http://www.unix.com/sun-solaris/32936-solaris-10-add-new-svc.html