24
Tem

Yüzlerce sunucunun bağlı olduğu bir ağ var elimizde, her biri merkezi bir sunucuya bağlanarak kendilerine ait politikaları alıyor ve uyguluyor. Adını duymaktan sıkıldığınız uzaktan yönetim sistemi Ahenk ile, elbette. 10′ar dakika ara basit bir sorgulama, uzun olmayan bir cevap. Tek noktadan nadir değiştirilen, yüzlerce noktadan sıkça okunan politikalar. Tam LDAP‘lık bir senaryo: Yazma nadir, okuma sık.

Politikaların daha çabuk uygulanması gerekiyor bazen, 10 dakika beklememek. Elbette bunu, sorgulama aralığını 30 saniyeye çekmeden, düzgün bir şekilde yapmak. Bir şekilde, “anında uygulama” sağlanması, çoğu zaman da yapılan işlemin sonucunun anlık olarak öğrenilmesi gerekiyor. Problem, işte burada başlıyor.

İstemcilerin belirli aralıklarla “çekme” yapması yerine, sunucunun bir değişiklik varsa “itme” yapması gerektiği durumlarda, LDAP’ın yanında çalışacak bir protokol ihtiyacı ortaya çıkıyor. Yerine değil, yanında; çünkü politikaların tutulması için “hafif” bir veritabanı çözümü gerekiyor ve LDAP bunu başarılı bir şekilde sağlıyor. Mevcut LDAP sunucularının yedekleme ve çoğaltma konusunda hazır çözümlerle gelmesi de ayrı bir avantaj, vazgeçilecek özellikler değil bunlar.

“İtme” kısmına geri dönersek, bu konuda aklıma ilk gelen çözüm, XMPP (Jabber) kullanmak ve “anında mesajlaşma” işini zahmetsizce halletmek oluyor. “Hata ayıklama işini Kopete ile yaparım” düşünceleri beliriyor tabi ister istemez, sonra çevreden “slm, asl?” yazınca işlemci bilgilerini versin esprileri yapılıyor :)

XMPP, LDAP kadar olmasa da eski bir standart. Açık, ücretsiz; kullanımı, geliştirmesi, genişletilmesi kolay. Birden fazla sunucu/istemci/kütüphane mevcut, kararlılığı kanıtlanmış. Alternatif arama gereği hissettirmiyor. Özgür, çalışıyor, işimi görüyor, daha ne isterim? Düzgün bir XMPP kütüphanesi, saç-baş yoldurmayacak bir sunucu; hepsi var, hatta hepsi (Twisted ve EJabberd) Pardus depolarında var. Noktaları birleştirmek kalıyor geriye, eğlenceli kısım burası işte.

Dökümanın yetmediği yerlerde kaynak kodları açılıyor, “döküman kötü ama kodlar tertemiz” deniyor, birkaç deneme sonrasında Jabber sohbet botu geliştiriliyor, sonra da aynı mesajlaşma tekniği Ahenk prototipine ekleniyor, sonra Kopete ile sistem yönetimi oyunu oynanıyor: “selam, nerden?”

Hemen hemen herkes tatilde demiştim. TÜBİTAK’ın toplu izin döneminin ilk haftası geride kaldı, havalandırma ve klima sistemlerini bakıma alınması yüzünden içerde mi kalsak, dışarı mı çıksak bilemediğimiz bunaltıcı bir haftada, ilk dönem stajına geç başlayan iki stajyer aramızdan ayrıldı, iki geliştirici de kalan işlerinin tamamlayarak tatile çıktı.

Geliştirici sayısının azlığından, depolara (tahminen) pek fazla commit yapılmayacak bu hafta. Ancak her toplu izin döneminde olduğu gibi, güvenlik açıkları ve kritik hatalar için hazırda bekleniyor olacak. Ofisteki sessizlikten istifade eden geliştiriciler sürpriz projelerle ortaya çıkabilir, bazı geliştiricilerin de gizli ajandasındaki önemli tarihler, tam da bu toplu iznin ortasına denk gelebilir…

Benim proje artık sürpriz değil [1] [2], Ahenk ile ilgili kod ve belgeler bu hafta depoya girmeye başlayacak. Ardından da proje ajandası şekillenecek. Ara verip farklı projelerle uğraşmam gereken zamanlarda Pardus 2011′deki yapılandırma altyapısı (COMAR) değişiklikleri ve danışmanı olduğum GSoC projesi ile iligileneceğim. Çok az arkadaşıma bahsettiğim ve Özgürlükİçin – Temalar bölümünde “reyting patlaması” yaratacağını düşündüğüm çok gizli proje ile ilgili de bir şeyler karalarım belki :)

Gidenlere iyi tatiller, kalanların acılarını paylaşıyorum, selamlar…

23
Tem

Milli Savunma Bakanlığı’ndaki bir ihtiyaç için geliştirilen Ahenk 1.0‘da (Pardus’un uzaktan yönetim sistemi), politikaların LDAP üzerinde tutulduğu ve istemcilerin belirli aralıklarla bu politikaları aldığı ve uyguladığı bir yapı mevcut. Olabildiğince basit ve sade. Büyük resme bakıldığında, yapılan iş aşağıdaki metnin veritabanına yazılması, okunması ve bu bilgiler ile işlem yapılması:

  dn: cn=server1, dc=pardus, dc=org, dc=tr
  pisiRepository: http://192.168.1.1/packages/2009/pisi-index.xml.bz2
  pisiUpdateInterval: 3600
  pisiUpdateType: security
  comarUserSource: ldap
  comarUserURL: ldap://192.168.1.1/dc=pardus,dc=org,dc=tr
  ...

Yönetim arabiriminde yapılan iş, bir arabirim kullanarak yukarıdaki politika metnini oluşturmak ve LDAP’a kayıt etmek. Nispeten kolay bir iş, ve bir sonraki Ahenk blogumun konusu :). Sisteme dahil köle bilgisayarlarda çalışacak Ajan uygulaması ise “sihrin” gerçekleştiği, ve benim en çok sevdiğim Ahenk bileşeni.

Ajan’ın yapısı aşağıdaki gibi. XMPP ile ilgili kısım 2.0 ile geldi:

LDAP istemcisi belirli aralıklarla, “bu bilgisayara ait politika var mı?” diye soruyor: Yaptığı şey “ldapsearch” komutu çalıştırmaktan çok farklı değil. Politika bulursa kuyruğa atıyor, ve kuyruktaki politikalar ilgili Ajan modüllerine gönderilerek işleniyor. Misal, PiSi ile ilgili politika metinleri -eğer kuruluysa- yazılım güncellemelerinden sorumlu modülde (bildiğiniz Python modülü) işleniyor.

XMPP istemcisi ise politikaların “anında” uygulanması ya da bilgisayarlara komut gönderilmesi gerektiğinde kullanılacak “opsiyonel” iletişim kanalı.

16
Tem

Bakımını yaptığım PiSi paketlerinin büyük kısmını başka geliştiricilere vermeye başladım geçen hafta. Yakında da (umarım) geçici olarak yürüttüğüm sistem yöneticiliği işini tam zamanlı olarak işe başlayacak sistem yöneticimize teslim edeceğim. Bu iş devirlerinin sebebi “ayrılık” değil, yanlış anlaşılmasın.

Bir seneye yakın zamandır birbirinden ayrı alanlarda iş yapıyor/takip ediyor olmam, her işe yeterince vakti ayıramamama ve işler arası geçiş yapaken kaybettiğim konsantrasyonum iş kalitesinin düşmesine sebep oluyordu. Çok sevdiğim yazılım geliştirme işine daha fazla vakit ayırmak, “sen ne zaman kod yazıyorsun?” diye soranlara “vakit mi var” cevabını vermemek ve ait olduğum sahalara geri dönmek için “mağdurum, şu işlerden bi kurtulsam” demem gerekiyordu; sağolsun arkadaşlar, ben geliştirici listesinde feryat etmeden üzerimdeki yükü aldılar. Bıraktığım PiSi paketlerine ve yakında bırakacağım sunucularımıza benden çok daha iyi bakacaklarına eminim. Paketlerimi ve sunucuları özleyeceğim, ama fazla değil.

Şimdi ne yapacaksın, günde 8 saat ne işle uğraşacaksınız diye sorar mısınız bilmem ama ben yine de cevaplayacağım. COMAR ve arkadaşlarının (konfigürasyon alyapısı, yönetim arabirimlerinin bir kısmı) ve Pardus Kurumsal’ın uzaktan yönetim sistemi Ahenk ve Ahenk’in yönetim arabirimi Lider’in geliştirilmesiyle uğraşacağım. UEKAE çalışanlarının tamamına yakınının ve Pardus ekibinin büyük kısmının tatile çıkacağı önümüzdeki iki hafta içinde ofiste kalıp özlediğim projelerle hasret gidermeyi ve 2 Ağustos ile başlayan hafta Ahenk’in Pardus Kurumsal 2′de kullanılabilir bir ön izleme sürümünü yayınlamayı planlıyorum. “Ahenk Mimarisi” ve “Ahenk Eklentileri Yazımı” belgelerini de bu ön izleme sürümüyle beraber yayınlayacağım. (Büyük laf ettik, o sürüm çıkacak).