Merhaba pek çok yeni projenin ihtiyacıdır “Automatic Deployment”. Bu iş aslında profesyonel olarak bamboo (https://www.atlassian.com/software/bamboo) yada alternatifleri (http://stackoverflow.com/questions/4806331/bamboo-vs-hudsona-k-a-jenkins-vs-any-other-ci-systems) ile yapılır. Lakin bu uygulamaların kimi yüksek maliyetli, kimi ücretsiz ama kaynak tüketimi olarak projeye ek yük getirdiği için ilk başlarda “imkansızlıklar” denilerek kullanılamayabilir.

Bu durumda Automatic Deployment işini git’ in hook ları ile çözeceğiz.

Başlıyoruz.

Gereksinimler :

  • Bir adet server 🙂
  • Server’ a git’ i kurmanız gerekiyor. http://angulartr.com/ubuntu-server-a-git-kurmak/
  • SSH Key yaratmanız gerekiyor http://angulartr.com/ssh-key-yaratma/
  • SSH Key’ inizi Server’ ınıza eklemeniz gerekiyor http://angulartr.com/linux-server-a-ssh-key-ini-atmak/
  • Kendi bilgisayarınıza git kurmayı unutmayın https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
  • Serverımıza giriyoruz ve aşağıdaki komutları yazarak bir git repo su oluşturuyoruz.

    Ve artık “Automatic Deployment” işlemlerine başlayabiliriz
  • site.git klasöründeki iken aşağıdaki komut ile hooks klasörümüze giriyoruz

    Bu klasörümüz adından da anlaşılacağı üzere, bağlı-işlemler imizi tanımladığımız klasördür. İçine git işlemlerini dinleyen pek çok event yazabilir ve bu event ler gerçekleştiği gibi çalışacak scriptler yazabiliriz ve öyle yapıyoruz.
    post-receive de böyle bir event’tir. Kodunuzu push ettikten sonra çalışır. Aşağıdaki komutları tek tek uygulayın

    post-receive adında bir dosya açtı ve içine girdi, şimdi aşağıdaki kodu kendimize göre düzenliyoruz ve kaydedip çıkıyoruz.

    Dikkat “burayaServerdakiSiteminKlasorAdresiGelecek” yazan yere sitenizin serverdaki klasörünün tam adresini verin.Örneğin : /var/www/domain.com
    Kaydetme işlemi için gerekli klavye kısayolu, bilgisayarınızda kullandığınız işletim sistemine göre değişebilir. Ubuntu’ da ctrl + x ve yes yazıp enterlamaktır. Türkçe Mac’ te ktrl + X yes yazıp enterlamaktır.

    Ardından aşağıdaki komut ile bu dosyaya çalıştırılabilme yetkisi veriyoruz.

Yukarıdaki işlemler ile ne yaptık ? 
Kodumuz’ u git ile bilgisayarımızdan gönderdiğimizde Serverdaki git uygulaması her zaman post-receive dosyamız varsa içini okuyor. Bu dosyamızın içinde de dedik ki; site.git repomuzdaki dosyaları web sitemizin klasörüne kopyala.
Tam teknik açıklaması bu şekilde değil ama ben en basit haliyle anlattım.
Bu işlem, siz dosyalarınızı git üzerinden her push ettiğinizde gerçekleşecek ve bu sayede “Automatic Deployment” yapmış olacağız. Yani gönderdiğiniz kodlar otomatik olarak canlıya (web sitenizin yayınına) alınacaktır.

İşlemleri anladıysak şimdi kod gönderebilmemiz için bilgisayarımızı ayarlamaya başlayalım.

 

  • Öncelikle komut satırında halen serverınıza bağlıysanız, exit yazıp entera basarak çıkıyoruz.
  • Komut satırında, sitemizin bilgisayarımızdaki ana klasörüne giriyoruz. Örneğin;
  • aşağıdaki kodu yazarak projemize git i ekliyoruz.

     
  • Az önce serverımızdaki oluşturduğumuz git repomuzu, bilgisayarımızdaki proje klasörüne aşağıdaki komutta kendinize göre düzenlemeler yaparak bağlıyoruz.

    Artık kodumuzun nereye gönderileceğini Git uygulaması biliyor.
  • Aşağıdaki kod ile projemizdeki tüm dosyaları gönderilmek üzere seçiyoruz.

    Eğerki tüm dosyaları göndermek istemiyorsanız, tek tek el ile ekleyebilirsiniz. Bu konuda detaylı bilgi http://git-scm.com/docs/git-add adresinden alınabilir.
  • Aşağıdaki komut ile, dosyalarımızı artık yola koyuyoruz.
  • Ve aşağıdaki komut ile de artık dosyalarımızı gönderiyoruz.

    Eğer herşeyi eksiksiz yaptıysanız, sitenize tekrar girdiğinizde yeni dosyalarınız ile karşılaşacaksınız. Dosyaların büyüklüğüne vb. kriterlere göre bu işlemin sitenize yansıması 5-10 saniye alabilir.

     

Umarım herşey yolunda gitmiştir 🙂 Eğer öyleyse, bir de sitenizine beta ekleyebilirsiniz. Böylece kodunuzu önce beta ya gönderir ve betada denersiniz, eğer herşey ok ise, yayına alırsınız.

Beta için aşağıdaki adımları uyguluyoruz.

  • Serverınıza bağlanın, Websitenizin klasörüne gidin ve beta adında bir klasör yaratın.
  • Aşağıdaki komutları sırasıyla yazın.

  • Açılan dosyaya içini kendize göre düzenleyip şu kodları yazın ve kaydedin
  • exit yazıp serverdan çıkın
  • Bilgisayarınızdaki websitenizin klasörüne komut satırından gidip aşağıdaki komutları yazın


    Kodunuz gönderildi ve otomatik olarak beta klasörüne kopyalandı. Test etmek için; siteadresim.com/beta ya girip görebilirsiniz.
    Herşey yolunda ise dosyalarınızı yayına alalım.

    Artık değişiklikler yayında.

 

Bu şekilde websitenizin kodunu otomatik olarak yayına alabilirsiniz. Fakat şuan halen eksiğimiz var. Diyelimki yanlışlıkla bir dosyayı hatalı gönderdiniz ve aksilik bu ya dosyalarınız bilgisayarınızdan da silindi. Nasıl kurtacağız ? Bu yüzden, kodunuzu her gönderdiğinizde, yeni kodlar yeni bir klasörde toplanması gerekiyor ki aksi bir durumda eski haline dönebilesiniz. Bunu da başka bir yazımda anlatacağım.

Leave A Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir