Chef Yardımıyla LAMP Kurulumu
Daha önce bir yazımda Configuration management aracı olarak Chef’den bahsetmiş ve kurulumunu gerçekleştirmiştik. Bu yazıdaysa Chef yardımıyla bir node’a üzerinde LAMP stack oluşturma sürecinden bahsedeceğim.
Bu yazıda daha önce kurduğum Chef server’ın yanında üzerine LAMP rolünü de yükleyeceğim bir adet de Ubuntu 14.04 oluşturdum. Her iki sunucunun hostname’lerini hosts dosyası içerisine yazdım ve FQDN üzerinden bir birlerini pingleyebilmelerini sağladım. Rol,Node ve Cookbook kavramlarından bahsetmiştik. Bunları yönetebilmek için Chef bize knife isimli araç sunmaktadır.
Knife Kurulumu:
Knife kurulumu aslında oldukça basittir Chef-Server paketiyle beraber gelebileceği gibi ayrı bir yere de kurabilirsiniz. Kurulum için Linux altında aşağıda ki komutu çalıştırmanız yeterlidir.
curl -L https://www.getchef.com/chef/install.sh | sudo bash
Knife, Chef sunucusuyla http üzerinden iletişim kurmaktadır bunun için Chef server’ında bulunan sertifikaların knife’ı kullanacağımız sunucuya da kopyalamamız gerekmektedir. Ben Knife’ı server üzerinde kullandığım için sertifikaları indirmedim ama siz ayrı bir PC kullanacaksanız, indirmeniz gereklidir.
mkdir $HOME/.chef sudo cp /etc/chef-server/validation.pem $HOME/.chef sudo cp /etc/chef/-server/chef-webui.pem $HOME/.chef sudo chown –R $UID $HOME/.chef
Sertifikaları indirdikten sonra “knife configue –i” komutuyla Knife’ı yapılandırabiliriz. Yapılandırma bittikten sonra “knife client list” komutunu çalıştırarak chef-validator ve chef-webui’i görebilmemiz gerekiyor.
LAMP Kurulumu:
Node Tanımlama:
Chef, node’lara kurulum ve yapılandırma uygulayabilmek için SSH üzerinden sunucuya bağlanmaktadır, her hangi bir dış müdahaleye ihtiyaç olmadan gereken tüm yapılandırmaları ve kurulumları bu sayede yapabilir. Bunun için bootstrapping scriptlerini kullanmaktadır. Chef’i ilk kurduğunuzda birçok Linux dağıtımı için hazır bootstrapping scripti içerisinde gelir bunları /lib/chef/knife/bootstrap klasörü içerisinde görebilirsiniz.
Bu scripti Node’a iki türlü kurabiliriz.
- Chef client’ın server üzerinde knife aracını kullanarak: Aşağıda ki komut sizin yerinize SSH üzerinden sisteme bağlanıp gerekli kurulumları yapacaktır. Kullanıcı olarak karşı sunucuda “sudo” yetkisi olan bir kullanıcı seçmeniz gerekmektedir. Burada ubuntu12.04 için olan yapılandırma dosyasını kullandım ama Ubuntu 14.04 için sorun çıkartmadı.
- Node’a bağlanıp Chef-client kurulumunu yapmanız bunun için aşağıda ki komutu kullanabilirsiniz:
Apt-get install chef
Kurulum esnasında size chef server’ın bilgilerini girmenizi isteyecektir. Burada https://:443 şeklinde girmeniz gereklidir.
Kurulum bittikten sonra Chef sunucusu üzerinden yeni eklediğimiz node’u görüp göremediğimizi ”knife client list” komutuyla kontrol edelim.
Aynı şekilde web ara yüzünden Node sekmesi altında da client adını görebiliyor olmanız gerekmektedir.
Cookbook’ları İndirmek ve Kurmak:
Chef hakkında sevdiğim noktalardan biride birçok popüler uygulamanın Cookbook’unun hazır ve indirilebilir oluşudur, sevmediğim noktaysa indirdiğimiz cookbook başka bir recipe veya cookbook’a bağımlıysa onu otomatik olarak indirmemesidir. Lamp stack kurabilmemiz için 3 adet cookbook’a ihtiyacımız vardır bunlar apache2,mysql ve php’dir. Knife sayesinde depolarda var olan bir cookbook’u indirebiliriz.
knife cookbook site download <cookbookadı>
Cookbookların sonunda bulunan numaralarına takılmayınız bunlar yazılımın versiyonlarıyla alakasız sadece cookbookun versiyonunu belirtmektedir. İndirdiğimiz cookbooklar tar.gz formatında olacaktır bunları tar xvzf <cookbook.tar.gz> komutuyla açabilirsiniz
İndirdiğimiz cookbook’ları Chef sunucusuna yüklemek için aşağıdaki komutu kullanmamız gerekiyor.
Knife cookbook upload –o . <cookbookadi>
Sorun bazı cookbookları upload ederken bağımlılık hatası verecektir.
Siz tek tek denemeyin diye ben tüm gereken cookbook’ları paylaşıyorum.
Gerekli cookbook’ları yüklediğinize göre artık LAMP için bir Role yaratabiliriz. Bunun için web ara yüzüne tekrardan girip Role sekmesinden yeni bir tane yaratalım. Lamp rolü için Available Recipes içerisinden aşağıda bulunan recipe’leri seçmemiz gereklidir.
- Apache2
- Apache2::mod _php5
- Mysql::client
- Mysql::server
- Php::modüle_mysql
Bu recipe’lerin eklenme sırası aynı zamanda hangi sırayla çalıştırılacağını da belirliyoruz bu sebepten sıra önemli. Rolün yaratılmasından sonra Nodes sekmesinden istediğimiz sunucuyu seçip “Run List” kısmına LAMP rolünü ekleyelim.
Role’ün yüklenip yüklenmediğini kontrol etmek için:
Knife node Show –r <nodeadi>
Son olarak bir web tarayıcı üzerinden node’a girmek istediğimiz zaman her şeyin çalıştığını görebilmemiz gerekiyor.
Okuduğunuz için teşekkür ederim.