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ı.
    chef lamp install - knife configuration
  • 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.
    chef lamp install - client conf

Kurulum bittikten sonra Chef sunucusu üzerinden yeni eklediğimiz node’u görüp göremediğimizi ”knife client list” komutuyla kontrol edelim.

chef lamp install - client check

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ı>

chef lamp install - lamp cookbook

 

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

chef lamp install - extract

İ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.chef lamp install - depent

Siz tek tek denemeyin diye ben tüm gereken cookbook’ları paylaşıyorum.

chef lamp install - all depent

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

chef lamp install - Role Create

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.

chef lamp install - install node

Role’ün yüklenip yüklenmediğini kontrol etmek için:

Knife node Show –r <nodeadi>

chef lamp install - node install

 

Son olarak bir web tarayıcı üzerinden node’a girmek istediğimiz zaman her şeyin çalıştığını görebilmemiz gerekiyor.

chef lamp install - php installed

Okuduğunuz için teşekkür ederim.

Bu blog yazısı Emre Bozlak tarafından paylaşılmıştır. Referans vererek istediğiniz gibi kullanabilirsiniz. Eğer bir sorunuz olursa eposta veya sosyal medya hesaplarım üzerinden bana ulaşabilirsiniz. Yazılarımı Twitter'dan @emrebozlak veya RSS üzerinden takip edebilirsiniz.

Leave a comment