Cobbler Ağ Üzerinden Kurulum Sunucusu

Cobbler da ney” dediğinizi duyar gibi oluyorum :).

Özetle, Cobbler, kurulu olduğu ağdaki bir sunucuyu “ağdan açılmaya” (network boot) ayarladığınızda, karşınıza bir menü gelmesini ve bu menüde seçtiğiniz dağıtımın kurulumunu sağlar.

Üstelik kuracağınız dağıtım destekliyorsa, “kickstart” adını verdiğimiz bir dosyaya kurulum adımları sırasında neler yapılacağını yazarsanız, size başka hiçbişi sormadan kurulumu tamamlayabiliyor.

Peki, ne işinize yarar böyle bir servis? İlk aklıma gelen birkaç senaryo:

  • Eğer sunucuya bağlı bir KVM aygıtı varsa, sunucunun başına fiziksel olarak gitmeden kurulum yapabilirsiniz.
    • Kim şimdi yerinden kalkacak? :)
    • Sistem odaları çok gürültülü, yorucu, hasta edici ortamlardır. Orada geçen her dakika, bizim yaşam enerjimizden çeker.
    • Sunucu bir veri merkezinde (datacenter) olabilir. Her veri merkezine isteseniz de girme olanağınız olmayabilir (örneğin sunucular yurtdışında).
  • Kurulum için USB bellek, DVD, vs taşımak gibi bir derdiniz olmaz.
  • Kurumunuzdaki tüm sunucuların aynı şekilde kurulabilmeleri için çeşitli etkileşimsiz kurulum türlerini önden hazırlayıp, herhangi bir kişiyi “menüdeki şu seçeneği seç ve kurulumu yap” diye görevlendirebilirsiniz. Hata yapması mümkün olmaz :)

Cobbler aslında ufacık bir servis. Ama kendi dışında birçok sunucu servisini bir yerlere koşturuyor. DNS, DHCP, TFTP, HTTP, rsync, …

Cobbler’ın RHEL 6 serisi bir dağıtımda (Scientific, CentOS, Oracle) kurulumunu anlatacağım. Başka bir dağıtımda da benzer adımlarla kurabilirsiniz.

Cobbler’ı çalıştırmak için en ideal ortam, sunucuların kendi aralarında kurulmuş olan yedek ağdır. Bugün artık sunucuların hemen hepsinde birden fazla ethernet aygıtı bulunuyor. Bunlardan bir tanesi de genellikle sunucuların kendi aralarında (dışarı kapalı) bir ağ oluşturmak için kullanılıyor — kendi arasında veri alışverişi yapmaları dışarıya verdikleri hizmeti etkilememesi amacı ile. Bu ağda başka bir DHCP sunucusu çalışması gibi bir risk de bulunmadığından çok daha rahat hareket edebiliyoruz.

Cobbler’ı beraber kullanacağınız bir DHCP ve DNS sunucunuzun da hazırda bulunmadığını düşünerek, onları da Cobbler ile beraber ayarlıyoruz. Bunun için en kısa yöntem Dnsmasq servisini kullanmak oluyor. İsterseniz ağdaki bir DHCP ve/ya DNS sunucusunu kullanabilirsiniz.

Cobbler’ın paketleri popüler Redhat ek depolarından EPEL’de bulunuyor. Öncelikle ekli değilse onu ekliyoruz:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Cobbler için gerekli paketleri kuruyoruz:

yum install cobbler dnsmasq

Ek olarak,
* pykickstart sadece kurulumları etkileşimsiz yapmak isterseniz (kickstart dosyaları ile yapılacak seçimleri tanımlıyorsunuz)
* debmirror Debian temelli bir dağıtım kurmak isterseniz
* fence-agents da sunucularda güç yönetimi yapmak isterseniz
* cobbler-web, Cobbler için bir web arayüzü kullanmak isterseniz
kurulabilir. Zorunlu değiller.

Servislerimizi açalım ve açılışta çalışır hale getirelim:

service xinetd start
service dnsmasq start
service httpd on
service cobblerd start
chkconfig xinetd on
chkconfig dnsmasq on
chkconfig httpd on
chkconfig cobblerd on

Cobbler’a hem DHCP için hem DNS için dnsmasq kullanacağımızı söylemek için /etc/cobbler/modules.conf dosyasındaki ayarları şu şekilde değiştiriyoruz:

[dns]
module = manage_dnsmasq

[dhcp]
module = manage_dnsmasq

Dnsmasq’ın ayarlarını Cobbler kendisi yapacak ama o ayarların neler olduğunu kendisine söylememiz gerekli. Bunun için /etc/cobbler/dnsmasq.template dosyasını şu şekilde değiştiriyoruz:

dhcp-range=Baslangic_IPsi,Bitis_IPsi
server=DNS_Sunucumuzun_IPsi
no-dhcp-interface=eth0

Buradaki no-dhcp-interface seçeneği, sunucunun İnternet’e bağlı bacağında DHCP servisi verip ortalığı karıştırmamasını sağlıyor. eth0 yerine sunucunuzdaki ilgili aygıtı yazabilir ya da böyle bir kaygınız yoksa tamamen kaldırabilirsiniz.

Cobbler’ın rsync’in etinden-sütünden yararlanabilmesi için /etc/xinetd.d/rsync dosyasındaki ayarı şu şekilde değiştiriyoruz:

disable = no

Cobbler’ın asıl ayarlarını ise /etc/cobbler/settings dosyasından yapıyoruz:

server: Sunucumuzun_IPsi
next_server: Sunucumuzun_IPsi
password: $1$3xhywdbz$0zc2kIXyvfYngTdgddX/20
manage_dhcp: 1
manage_dns: 1

Burada server ayarı Cobbler servisinin, next_server ayarı TFTP servisinin IP’si ama bizim kurulumumuzda iki servis de aynı makinede olduğu için aynı IP’yi yerleştiriyoruz.

password kısmındaki hash’i ise şu şekilde oluşturuyoruz:

openssl passwd -1 -salt 'rasgelebisiler' 'degistirbeni'

Debmirror kurduysak, /etc/debmirror.conf dosyasında aşağıdaki ayarları düzenliyoruz:

#dists
#arches

Cobbler paketi ile tüm ağ yükleyicileri gelmiyor, aşağıdaki komutla İnternet’ten eksikleri indirebiliyoruz:

cobbler get-loaders

Güvenlik duvarında Cobbler ve saz arkadaşları için bir seri delik açmak gerekiyor:
* 53 – Dns
* 67,68 – Dhcp
* 69 – Tftp
* 80,443 – Httpd
* 873 – Rsync
* 25150-51 – Cobbler

Bunu /etc/sysconfig/iptables dosyasını doğrudan düzenleyip servisi tekrar başlatarak ya da service-config-firewall(-tui) arayüzü ile yapabilirsiniz. Tabii bir seçenek de güvenlik duvarını tamamen kapatmak.

Keza SELinux için de biraz emek harcamak gerekiyor (eğer uğraşmayıp tamamen kapatmayı tercih etmezseniz). httpd’nin web servis parçalarının kullanılabilmesi, tftp’nin imaj dosyalarına erişebilmesi için:

setsebool -P httpd_can_network_connect true
semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
semanage fcontext -a -t public_content_t "/var/www/cobbler/images/.*"

Cobbler servisini tekrar başlatıyoruz ve Cobbler’ın ayarlarını ilgili diğer servislere uygulamasını sağlıyoruz:

/etc/init.d/cobblerd restart && cobbler sync

Etkileşimsiz kurulum için bir kickstart dosyası hazırlamak isterseniz, örneklerini /var/lib/cobbler/kickstarts dizinindeki dosyalarda (ve İnternet’te çeşitli sayfalarda) bulabilirsiniz. Ya da system-config-kickstart arayüzünü kullanabilirsiniz.

Artık kurulumlarda kullanacağımız dağıtımları Cobbler’a ekleyebiliriz.

Örneğin, Scientific Linux 6.3’ün ağ üzerinden kurulum ISO’sunu eklemek istersek, öncelikle ISO’yu dosya sisteminde bir yere bağlıyoruz:

mount SL-63-x86_64-2012-08-02-boot.iso /mnt/cdrom -o loop

Cobbler’a bu ISO’yu alıp dağıtım arşivine eklemesini istiyoruz:

cobbler import cobbler import --name=SL63-Boot --path=/mnt/cdrom

Bu adımda hata mesajı alınca paniklemeyin. Netboot ISO’ları gibi kırpılmış ISO’larda bu yaşanıyor. O zaman Cobbler’a, “sen otomatik bulamadın ama bu aslında Redhat türevi bir dağıtım” diye özel olarak belirtmemiz gerekiyor:

cobbler distro add --arch=x86_64 --breed=redhat --name=SL63-Boot --initrd=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/initrd.img --kernel=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/vmlinuz

Artık dağıtım Cobbler arşivlerinde olduğuna göre, bu dağıtımı kullanan bir kurulum profili oluşturabiliriz:

cobbler profile add --name=SL63-Boot --distro=SL63-Boot --kickstart=/var/lib/cobbler/kickstarts/centos6.ks

Kickstart parametresi zorunlu değil, onu vermezseniz etkileşimli standart bir kurulum gerçekleştirirsiniz.

Cobbler’ın burada bahsetmediğim daha birçok özelliği var: Memtest, paket yönetimi, ayar yönetimi, puppet entegrasyonu ve daha niceleri. Cobbler’ın el kitabında hepsinin detaylarını bulabilirsiniz.

Kurmaya değer mi?

Birkaç sunucu için değmeyebilir. Kurulacak sunucu sayısı artmaya başladıkça, Kickstart ve benzeri ek özelliklerini kullanmasanız bile, evet, değecek.

Bazı sunucuların yönetim arayüzlerinde de ağ üzerinden ISO yükleyip kurulum yapmak mümkün ama hiç o ISO’ları bir ADSL bağlantısı üzerinden yüklemeyi denediniz mi? :) Hadi bir kere yaptınız, kaç kere o işkenceye dayanabilirsiniz? Ya aceleniz varsa?

Sunucu sayınız giderek artıyorsa, üşenmeyin, Cobbler’la hayatınızı kolaylaştırın…

9 Şubat 2013

Posted In: arches, dists, Gezegen

Cobbler Ağ Üzerinden Kurulum Sunucusu

Cobbler da ney” dediğinizi duyar gibi oluyorum :).

Özetle, Cobbler, kurulu olduğu ağdaki bir sunucuyu “ağdan açılmaya” (network boot) ayarladığınızda, karşınıza bir menü gelmesini ve bu menüde seçtiğiniz dağıtımın kurulumunu sağlar.

Üstelik kuracağınız dağıtım destekliyorsa, “kickstart” adını verdiğimiz bir dosyaya kurulum adımları sırasında neler yapılacağını yazarsanız, size başka hiçbişi sormadan kurulumu tamamlayabiliyor.

Peki, ne işinize yarar böyle bir servis? İlk aklıma gelen birkaç senaryo:

  • Eğer sunucuya bağlı bir KVM aygıtı varsa, sunucunun başına fiziksel olarak gitmeden kurulum yapabilirsiniz.
    • Kim şimdi yerinden kalkacak? :)
    • Sistem odaları çok gürültülü, yorucu, hasta edici ortamlardır. Orada geçen her dakika, bizim yaşam enerjimizden çeker.
    • Sunucu bir veri merkezinde (datacenter) olabilir. Her veri merkezine isteseniz de girme olanağınız olmayabilir (örneğin sunucular yurtdışında).
  • Kurulum için USB bellek, DVD, vs taşımak gibi bir derdiniz olmaz.
  • Kurumunuzdaki tüm sunucuların aynı şekilde kurulabilmeleri için çeşitli etkileşimsiz kurulum türlerini önden hazırlayıp, herhangi bir kişiyi “menüdeki şu seçeneği seç ve kurulumu yap” diye görevlendirebilirsiniz. Hata yapması mümkün olmaz :)

Cobbler aslında ufacık bir servis. Ama kendi dışında birçok sunucu servisini bir yerlere koşturuyor. DNS, DHCP, TFTP, HTTP, rsync, …

Cobbler’ın RHEL 6 serisi bir dağıtımda (Scientific, CentOS, Oracle) kurulumunu anlatacağım. Başka bir dağıtımda da benzer adımlarla kurabilirsiniz.

Cobbler’ı çalıştırmak için en ideal ortam, sunucuların kendi aralarında kurulmuş olan yedek ağdır. Bugün artık sunucuların hemen hepsinde birden fazla ethernet aygıtı bulunuyor. Bunlardan bir tanesi de genellikle sunucuların kendi aralarında (dışarı kapalı) bir ağ oluşturmak için kullanılıyor — kendi arasında veri alışverişi yapmaları dışarıya verdikleri hizmeti etkilememesi amacı ile. Bu ağda başka bir DHCP sunucusu çalışması gibi bir risk de bulunmadığından çok daha rahat hareket edebiliyoruz.

Cobbler’ı beraber kullanacağınız bir DHCP ve DNS sunucunuzun da hazırda bulunmadığını düşünerek, onları da Cobbler ile beraber ayarlıyoruz. Bunun için en kısa yöntem Dnsmasq servisini kullanmak oluyor. İsterseniz ağdaki bir DHCP ve/ya DNS sunucusunu kullanabilirsiniz.

Cobbler’ın paketleri popüler Redhat ek depolarından EPEL’de bulunuyor. Öncelikle ekli değilse onu ekliyoruz:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Cobbler için gerekli paketleri kuruyoruz:

yum install cobbler dnsmasq

Ek olarak,
* pykickstart sadece kurulumları etkileşimsiz yapmak isterseniz (kickstart dosyaları ile yapılacak seçimleri tanımlıyorsunuz)
* debmirror Debian temelli bir dağıtım kurmak isterseniz
* fence-agents da sunucularda güç yönetimi yapmak isterseniz
* cobbler-web, Cobbler için bir web arayüzü kullanmak isterseniz
kurulabilir. Zorunlu değiller.

Servislerimizi açalım ve açılışta çalışır hale getirelim:

service xinetd start
service dnsmasq start
service httpd on
service cobblerd start
chkconfig xinetd on
chkconfig dnsmasq on
chkconfig httpd on
chkconfig cobblerd on

Cobbler’a hem DHCP için hem DNS için dnsmasq kullanacağımızı söylemek için /etc/cobbler/modules.conf dosyasındaki ayarları şu şekilde değiştiriyoruz:

[dns]
module = manage_dnsmasq

[dhcp]
module = manage_dnsmasq

Dnsmasq’ın ayarlarını Cobbler kendisi yapacak ama o ayarların neler olduğunu kendisine söylememiz gerekli. Bunun için /etc/cobbler/dnsmasq.template dosyasını şu şekilde değiştiriyoruz:

dhcp-range=Baslangic_IPsi,Bitis_IPsi
server=DNS_Sunucumuzun_IPsi
no-dhcp-interface=eth0

Buradaki no-dhcp-interface seçeneği, sunucunun İnternet’e bağlı bacağında DHCP servisi verip ortalığı karıştırmamasını sağlıyor. eth0 yerine sunucunuzdaki ilgili aygıtı yazabilir ya da böyle bir kaygınız yoksa tamamen kaldırabilirsiniz.

Cobbler’ın rsync’in etinden-sütünden yararlanabilmesi için /etc/xinetd.d/rsync dosyasındaki ayarı şu şekilde değiştiriyoruz:

disable = no

Cobbler’ın asıl ayarlarını ise /etc/cobbler/settings dosyasından yapıyoruz:

server: Sunucumuzun_IPsi
next_server: Sunucumuzun_IPsi
password: $1$3xhywdbz$0zc2kIXyvfYngTdgddX/20
manage_dhcp: 1
manage_dns: 1

Burada server ayarı Cobbler servisinin, next_server ayarı TFTP servisinin IP’si ama bizim kurulumumuzda iki servis de aynı makinede olduğu için aynı IP’yi yerleştiriyoruz.

password kısmındaki hash’i ise şu şekilde oluşturuyoruz:

openssl passwd -1 -salt 'rasgelebisiler' 'degistirbeni'

Debmirror kurduysak, /etc/debmirror.conf dosyasında aşağıdaki ayarları düzenliyoruz:

#dists
#arches

Cobbler paketi ile tüm ağ yükleyicileri gelmiyor, aşağıdaki komutla İnternet’ten eksikleri indirebiliyoruz:

cobbler get-loaders

Güvenlik duvarında Cobbler ve saz arkadaşları için bir seri delik açmak gerekiyor:
* 53 – Dns
* 67,68 – Dhcp
* 69 – Tftp
* 80,443 – Httpd
* 873 – Rsync
* 25150-51 – Cobbler

Bunu /etc/sysconfig/iptables dosyasını doğrudan düzenleyip servisi tekrar başlatarak ya da service-config-firewall(-tui) arayüzü ile yapabilirsiniz. Tabii bir seçenek de güvenlik duvarını tamamen kapatmak.

Keza SELinux için de biraz emek harcamak gerekiyor (eğer uğraşmayıp tamamen kapatmayı tercih etmezseniz). httpd’nin web servis parçalarının kullanılabilmesi, tftp’nin imaj dosyalarına erişebilmesi için:

setsebool -P httpd_can_network_connect true
semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
semanage fcontext -a -t public_content_t "/var/www/cobbler/images/.*"

Cobbler servisini tekrar başlatıyoruz ve Cobbler’ın ayarlarını ilgili diğer servislere uygulamasını sağlıyoruz:

/etc/init.d/cobblerd restart && cobbler sync

Etkileşimsiz kurulum için bir kickstart dosyası hazırlamak isterseniz, örneklerini /var/lib/cobbler/kickstarts dizinindeki dosyalarda (ve İnternet’te çeşitli sayfalarda) bulabilirsiniz. Ya da system-config-kickstart arayüzünü kullanabilirsiniz.

Artık kurulumlarda kullanacağımız dağıtımları Cobbler’a ekleyebiliriz.

Örneğin, Scientific Linux 6.3’ün ağ üzerinden kurulum ISO’sunu eklemek istersek, öncelikle ISO’yu dosya sisteminde bir yere bağlıyoruz:

mount SL-63-x86_64-2012-08-02-boot.iso /mnt/cdrom -o loop

Cobbler’a bu ISO’yu alıp dağıtım arşivine eklemesini istiyoruz:

cobbler import cobbler import --name=SL63-Boot --path=/mnt/cdrom

Bu adımda hata mesajı alınca paniklemeyin. Netboot ISO’ları gibi kırpılmış ISO’larda bu yaşanıyor. O zaman Cobbler’a, “sen otomatik bulamadın ama bu aslında Redhat türevi bir dağıtım” diye özel olarak belirtmemiz gerekiyor:

cobbler distro add --arch=x86_64 --breed=redhat --name=SL63-Boot --initrd=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/initrd.img --kernel=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/vmlinuz

Artık dağıtım Cobbler arşivlerinde olduğuna göre, bu dağıtımı kullanan bir kurulum profili oluşturabiliriz:

cobbler profile add --name=SL63-Boot --distro=SL63-Boot --kickstart=/var/lib/cobbler/kickstarts/centos6.ks

Kickstart parametresi zorunlu değil, onu vermezseniz etkileşimli standart bir kurulum gerçekleştirirsiniz.

Cobbler’ın burada bahsetmediğim daha birçok özelliği var: Memtest, paket yönetimi, ayar yönetimi, puppet entegrasyonu ve daha niceleri. Cobbler’ın el kitabında hepsinin detaylarını bulabilirsiniz.

Kurmaya değer mi?

Birkaç sunucu için değmeyebilir. Kurulacak sunucu sayısı artmaya başladıkça, Kickstart ve benzeri ek özelliklerini kullanmasanız bile, evet, değecek.

Bazı sunucuların yönetim arayüzlerinde de ağ üzerinden ISO yükleyip kurulum yapmak mümkün ama hiç o ISO’ları bir ADSL bağlantısı üzerinden yüklemeyi denediniz mi? :) Hadi bir kere yaptınız, kaç kere o işkenceye dayanabilirsiniz? Ya aceleniz varsa?

Sunucu sayınız giderek artıyorsa, üşenmeyin, Cobbler’la hayatınızı kolaylaştırın…

9 Şubat 2013

Posted In: arches, dists, Gezegen

Cobbler Ağ Üzerinden Kurulum Sunucusu

Cobbler da ney” dediğinizi duyar gibi oluyorum :).

Özetle, Cobbler, kurulu olduğu ağdaki bir sunucuyu “ağdan açılmaya” (network boot) ayarladığınızda, karşınıza bir menü gelmesini ve bu menüde seçtiğiniz dağıtımın kurulumunu sağlar.

Üstelik kuracağınız dağıtım destekliyorsa, “kickstart” adını verdiğimiz bir dosyaya kurulum adımları sırasında neler yapılacağını yazarsanız, size başka hiçbişi sormadan kurulumu tamamlayabiliyor.

Peki, ne işinize yarar böyle bir servis? İlk aklıma gelen birkaç senaryo:

  • Eğer sunucuya bağlı bir KVM aygıtı varsa, sunucunun başına fiziksel olarak gitmeden kurulum yapabilirsiniz.
    • Kim şimdi yerinden kalkacak? :)
    • Sistem odaları çok gürültülü, yorucu, hasta edici ortamlardır. Orada geçen her dakika, bizim yaşam enerjimizden çeker.
    • Sunucu bir veri merkezinde (datacenter) olabilir. Her veri merkezine isteseniz de girme olanağınız olmayabilir (örneğin sunucular yurtdışında).
  • Kurulum için USB bellek, DVD, vs taşımak gibi bir derdiniz olmaz.
  • Kurumunuzdaki tüm sunucuların aynı şekilde kurulabilmeleri için çeşitli etkileşimsiz kurulum türlerini önden hazırlayıp, herhangi bir kişiyi “menüdeki şu seçeneği seç ve kurulumu yap” diye görevlendirebilirsiniz. Hata yapması mümkün olmaz :)

Cobbler aslında ufacık bir servis. Ama kendi dışında birçok sunucu servisini bir yerlere koşturuyor. DNS, DHCP, TFTP, HTTP, rsync, …

Cobbler’ın RHEL 6 serisi bir dağıtımda (Scientific, CentOS, Oracle) kurulumunu anlatacağım. Başka bir dağıtımda da benzer adımlarla kurabilirsiniz.

Cobbler’ı çalıştırmak için en ideal ortam, sunucuların kendi aralarında kurulmuş olan yedek ağdır. Bugün artık sunucuların hemen hepsinde birden fazla ethernet aygıtı bulunuyor. Bunlardan bir tanesi de genellikle sunucuların kendi aralarında (dışarı kapalı) bir ağ oluşturmak için kullanılıyor — kendi arasında veri alışverişi yapmaları dışarıya verdikleri hizmeti etkilememesi amacı ile. Bu ağda başka bir DHCP sunucusu çalışması gibi bir risk de bulunmadığından çok daha rahat hareket edebiliyoruz.

Cobbler’ı beraber kullanacağınız bir DHCP ve DNS sunucunuzun da hazırda bulunmadığını düşünerek, onları da Cobbler ile beraber ayarlıyoruz. Bunun için en kısa yöntem Dnsmasq servisini kullanmak oluyor. İsterseniz ağdaki bir DHCP ve/ya DNS sunucusunu kullanabilirsiniz.

Cobbler’ın paketleri popüler Redhat ek depolarından EPEL’de bulunuyor. Öncelikle ekli değilse onu ekliyoruz:

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Cobbler için gerekli paketleri kuruyoruz:

yum install cobbler dnsmasq

Ek olarak,
* pykickstart sadece kurulumları etkileşimsiz yapmak isterseniz (kickstart dosyaları ile yapılacak seçimleri tanımlıyorsunuz)
* debmirror Debian temelli bir dağıtım kurmak isterseniz
* fence-agents da sunucularda güç yönetimi yapmak isterseniz
* cobbler-web, Cobbler için bir web arayüzü kullanmak isterseniz
kurulabilir. Zorunlu değiller.

Servislerimizi açalım ve açılışta çalışır hale getirelim:

service xinetd start
service dnsmasq start
service httpd on
service cobblerd start
chkconfig xinetd on
chkconfig dnsmasq on
chkconfig httpd on
chkconfig cobblerd on

Cobbler’a hem DHCP için hem DNS için dnsmasq kullanacağımızı söylemek için /etc/cobbler/modules.conf dosyasındaki ayarları şu şekilde değiştiriyoruz:

[dns]
module = manage_dnsmasq

[dhcp]
module = manage_dnsmasq

Dnsmasq’ın ayarlarını Cobbler kendisi yapacak ama o ayarların neler olduğunu kendisine söylememiz gerekli. Bunun için /etc/cobbler/dnsmasq.template dosyasını şu şekilde değiştiriyoruz:

dhcp-range=Baslangic_IPsi,Bitis_IPsi
server=DNS_Sunucumuzun_IPsi
no-dhcp-interface=eth0

Buradaki no-dhcp-interface seçeneği, sunucunun İnternet’e bağlı bacağında DHCP servisi verip ortalığı karıştırmamasını sağlıyor. eth0 yerine sunucunuzdaki ilgili aygıtı yazabilir ya da böyle bir kaygınız yoksa tamamen kaldırabilirsiniz.

Cobbler’ın rsync’in etinden-sütünden yararlanabilmesi için /etc/xinetd.d/rsync dosyasındaki ayarı şu şekilde değiştiriyoruz:

disable = no

Cobbler’ın asıl ayarlarını ise /etc/cobbler/settings dosyasından yapıyoruz:

server: Sunucumuzun_IPsi
next_server: Sunucumuzun_IPsi
password: $1$3xhywdbz$0zc2kIXyvfYngTdgddX/20
manage_dhcp: 1
manage_dns: 1

Burada server ayarı Cobbler servisinin, next_server ayarı TFTP servisinin IP’si ama bizim kurulumumuzda iki servis de aynı makinede olduğu için aynı IP’yi yerleştiriyoruz.

password kısmındaki hash’i ise şu şekilde oluşturuyoruz:

openssl passwd -1 -salt 'rasgelebisiler' 'degistirbeni'

Debmirror kurduysak, /etc/debmirror.conf dosyasında aşağıdaki ayarları düzenliyoruz:

#dists
#arches

Cobbler paketi ile tüm ağ yükleyicileri gelmiyor, aşağıdaki komutla İnternet’ten eksikleri indirebiliyoruz:

cobbler get-loaders

Güvenlik duvarında Cobbler ve saz arkadaşları için bir seri delik açmak gerekiyor:
* 53 – Dns
* 67,68 – Dhcp
* 69 – Tftp
* 80,443 – Httpd
* 873 – Rsync
* 25150-51 – Cobbler

Bunu /etc/sysconfig/iptables dosyasını doğrudan düzenleyip servisi tekrar başlatarak ya da service-config-firewall(-tui) arayüzü ile yapabilirsiniz. Tabii bir seçenek de güvenlik duvarını tamamen kapatmak.

Keza SELinux için de biraz emek harcamak gerekiyor (eğer uğraşmayıp tamamen kapatmayı tercih etmezseniz). httpd’nin web servis parçalarının kullanılabilmesi, tftp’nin imaj dosyalarına erişebilmesi için:

setsebool -P httpd_can_network_connect true
semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
semanage fcontext -a -t public_content_t "/var/www/cobbler/images/.*"

Cobbler servisini tekrar başlatıyoruz ve Cobbler’ın ayarlarını ilgili diğer servislere uygulamasını sağlıyoruz:

/etc/init.d/cobblerd restart && cobbler sync

Etkileşimsiz kurulum için bir kickstart dosyası hazırlamak isterseniz, örneklerini /var/lib/cobbler/kickstarts dizinindeki dosyalarda (ve İnternet’te çeşitli sayfalarda) bulabilirsiniz. Ya da system-config-kickstart arayüzünü kullanabilirsiniz.

Artık kurulumlarda kullanacağımız dağıtımları Cobbler’a ekleyebiliriz.

Örneğin, Scientific Linux 6.3’ün ağ üzerinden kurulum ISO’sunu eklemek istersek, öncelikle ISO’yu dosya sisteminde bir yere bağlıyoruz:

mount SL-63-x86_64-2012-08-02-boot.iso /mnt/cdrom -o loop

Cobbler’a bu ISO’yu alıp dağıtım arşivine eklemesini istiyoruz:

cobbler import cobbler import --name=SL63-Boot --path=/mnt/cdrom

Bu adımda hata mesajı alınca paniklemeyin. Netboot ISO’ları gibi kırpılmış ISO’larda bu yaşanıyor. O zaman Cobbler’a, “sen otomatik bulamadın ama bu aslında Redhat türevi bir dağıtım” diye özel olarak belirtmemiz gerekiyor:

cobbler distro add --arch=x86_64 --breed=redhat --name=SL63-Boot --initrd=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/initrd.img --kernel=/var/www/cobbler/ks_mirror/SL63-Boot/isolinux/vmlinuz

Artık dağıtım Cobbler arşivlerinde olduğuna göre, bu dağıtımı kullanan bir kurulum profili oluşturabiliriz:

cobbler profile add --name=SL63-Boot --distro=SL63-Boot --kickstart=/var/lib/cobbler/kickstarts/centos6.ks

Kickstart parametresi zorunlu değil, onu vermezseniz etkileşimli standart bir kurulum gerçekleştirirsiniz.

Cobbler’ın burada bahsetmediğim daha birçok özelliği var: Memtest, paket yönetimi, ayar yönetimi, puppet entegrasyonu ve daha niceleri. Cobbler’ın el kitabında hepsinin detaylarını bulabilirsiniz.

Kurmaya değer mi?

Birkaç sunucu için değmeyebilir. Kurulacak sunucu sayısı artmaya başladıkça, Kickstart ve benzeri ek özelliklerini kullanmasanız bile, evet, değecek.

Bazı sunucuların yönetim arayüzlerinde de ağ üzerinden ISO yükleyip kurulum yapmak mümkün ama hiç o ISO’ları bir ADSL bağlantısı üzerinden yüklemeyi denediniz mi? :) Hadi bir kere yaptınız, kaç kere o işkenceye dayanabilirsiniz? Ya aceleniz varsa?

Sunucu sayınız giderek artıyorsa, üşenmeyin, Cobbler’la hayatınızı kolaylaştırın…

9 Şubat 2013

Posted In: arches, dists, Gezegen

Yeni işim, yeni gelişmeler – Koding

Bundan yaklaşık iki-buçuk yıl önce “yeni bir başlangıç” başlığı ile Pardus’ta ise başladığımı paylaşmıştım. O zaman çok heyecanlı ve mutluydum. Uzun zamandır, Pardus’tan ayrıldıktan sonra ilk defa o anki mutluluğu ve heyecanı tekrardan yaşıyorum.

Yeni bir maceraya yelken açmış bulunmaktayım. Şubat ayı itibariyle Koding.com‘de çalışmaya başladım. İnanılmaz heyecanlı bir projede inanılmaz insanlarla çok güzel işler yapma fırsatı elde ettim. Pardus projesinden çok yakın iki arkadaşım (Gökmen Göksel ve Bahadır Kandemir) de Koding’de çalışmaya başladı(çok daha öncesinden). Onlarla tekrar olmak da mutlu verici bir gelişme. Koding’in kurucuları(Devrim Yaşar ve Sinan Yaşar) da bu konuda çok iyi ve işi bilen insanların olması ve en önemlisi de geliştiricilerin halden anlamaları benim açımdan daha da mutlu verici bir gelişme.

Yaklaşık iki aydır Koding için iki tane uygulama yazdım (Rails Dashboard ve Django Dashboard), iki tane uygulama geliştirmek üzereyim ve bunların üzerine uygulamaları yazarken kullandığımız KD Framework’un teknik belgelendirme sürecini de başlatmış bulunmaktayım. Bunların hepsini akşamları boş zamanımda yapmaya çalıştım. Uzun ve yorucu bir süreçti (kabul), ama özellike Devrim abinin bu süreçteki tutumu ve yaklaşımı bu işi sevmemi ve sahiplenmemi sağladı. Bundan sonra her günümü çok daha verimli ve Koding endeksli çalışıyor olabileceğim. Heyecanlı ve güzel bir iş kısacası.

Koding nedir?

Koding activity alanı

Koding’e biraz değineyim. Koding.com iki türk kardeşin kurduğu (Devrim Yaşar ve Sinan Yaşar), A.B.D, San Francisco menşeili bir şirket. Önümüzdeki sene bolca duyacağınız bu ismi bir yere not alın. Koding.com sayesinde dünyanın neresine giderseniz gidin, tek bir tıkla tüm geliştirme ortamınıza ulaşabileceksiniz. Yani bildğiniz terminal(evet kendinize ait bir Linux sanal makinesi), dosyalarınız için depolama alanı, yüzlerce farklı frameworku,vs.. gibi seçenekler mevcut. Ve size ait bir şubdomainiz bile var. Bu daha başlangıç diyebilirim. Daha inanılmaz özellikler sırayla devreye girecek.

Bu çalışma ortamını örnek vermek gerekişe şu şekilde kullanıyorum: arslan.koding.com/docs altında, Koding.com içinde uygulama yazabileceğiniz bir framework’un dokümantasyonları mevcut. Bunların son bir aydır kendim yazmaya çalışıyorum. Bu adreste yer alan dokümanların hepsi aslında bir github deposunda markdown olarak saklanıyor. Ben yeni doküman ekledikten sonra Koding’e giriş yapıp bu değişikleri terminal ile kolay bir şekilde alıyorum(git pull). Sonra bunları yine terminal altında markdoc ile html sayfalarına çeviriyorum. Ve tüm bunlar doğrudan hiç bir şey yapmadan arslan.koding.com/docs yüklenmiş oluyor. Yani anlayacağınız web sitemi buradan sunduğum gibi, geliştirmesini ve bakımını da Koding üzerinden yapıyorum. Aşağıda ise Koding içinden bu dökümanlara ulaşabileceğiniz uygulamanın ekran görüntülerini görebilirsiniz:

Koding belgelendirm

Herkes için farklı imkanlar

İnanılmaz değil mi? Fakat bununla bitmiyor. Söylece bir hayal edin ve şunları bir düşünün:

  • Sınıf arkadaşınla bir C++ örneğini denemek için Koding’e giriş yaptınız ve ikiniz de kendi sanal makinelerinizde kodu derleyip sonuçlarını gördünüz. Aynı kod parçasını beraber aynı anda düzenliyorsunuz. Onun makinesinde bilmem ne aracı kurulmamış, sende kod parçası yokmuş, gibi şeyler tarihe karıştı.

  • Netbook, ChromeOS, iPad gibi kısıtlı imkanlara sahip bir cihazdan Koding’e giriş yaptınız ve altınızdaki makine ile terminal, depolama alanı ve şahsınıza ait bir sanal makine üzerinde geliştirmenizi yapabiliyorsunuz (linode’da ssh bağlanmaktan farklı bu, ssh’e gerek yok çünkü her şey web tabanlı ve zeki, düşünülmüz bir arayüze sahip)

  • Sabah evden çıkarken çok önemli bir kodu yazmayı unuttunuz ve müşteriye eksik bir halde gönderdiniz (ya da bilgisayarınız almayı unuttunuz yanınızda!). Arkadaşınızın laptop’undan Koding’e giriş yapıp geliştirmeyi devam edip müşteriye kalan eksiklikleri tekrar gönderiyorsunuz.

  • SQL (MondgoDB, MySQL,vs..) öğrenmek istiyorsunuz, Linux nedir bilmiyorsunuz öğrenmek istiyorsunuz, Rails, Django gibi web framework’u öğrenmek istiyorsunuz, Git,Vim gibi araçları öğrenmek istiyorsunuz’vs.. her şey Koding ile mümkün! MySQL gibi bir veritabanını tek tıkla aktif hale getirebiliyorsunuz, Linux zaten terminal ile hazır kurulu geliyor,Rails kurmak tek tıklık bir şey, vs..

  • Hakkari’deki bir öğrenci, Ethiopia’daki bir genç, Güney Amerika’daki mühendisler,vs.. herkesi en kısıtlı bilgisayarla bile dünyanın en güzel teknolojilerini tek bir tarayıcı ve internet bağlantısı ile sunabiliyorsun. Bundan daha güzel bir şey olabilir mi sizce?

Evet bunları hayal edin dedim, ama bunların çoğu hayalden öte gerçek. Ve Koding ile bunları yapma fırsatı elde edeceksiniz. Önümüzdeki senelerde eğer başarabilirsek inanılmaz ve devrimsel bir ürün ortaya çıkacak. Normalde herkese uzak olan bir çok teknolojiye ulaşma imkanınız olacak.

Son durum

Koding San Francisco ofis

Önümde üç haftalık bir San Francisco ziyareti var. Oradaki ofiste 3 hafta boyunca Koding’deki backend teknolojilerini yakından takip edip üzerine bir şeyler de ekleyeceğim ve kuracağım. Hem benim açımdan da bir nevi ‘kick-start’ ölmüş olacak (işi hızlıca öğrenip, giriş yapabilmek bizim gibi uzaktan çalışan insanlar için önemli) hem de Koding bünyesinde çalışan diğer insanları da tanımış olacağım. Kuzey Amerika kıtasını da ilk defa göreceğim için o açıdan da biraz heyecanlıyım. Hadi hayırlısı.

3 Şubat 2013

WP Twitter Auto Publish Powered By : XYZScripts.com