Php uzaktan uygulama güncelleme
Php ile yaptığım bir web uygulamasında uzaktan güncelleme yapmak istiyorum. Güncellemenin versiyonunu kontrol edip, ona göre eğer yeni güncelleme var ise güncelle butonu ile uzaktan güncelleme işlemi yapacak bir script yapmak istiyorum. Tavsiye ve Yardımlarınızı rica ederim.
Örnek bir github reposu buldum fakat pek beceremedim.
GitHub Repo
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
Anladığım kadarıyla siz kodunuzu mesela GitLab'a göndermek istiyorsunuz.
Sonra da otomatik bir sistemin bu kodu sunuculara dağıtmasını istiyorsunuz.
Yani siz git push
dedikten sonra bu sistemin kurulu olduğu sunucularda kodunuz otomatik yenilensin istiyorsunuz.
Daha doğrusu siz kodunuzu GitLab'a gönderdikten sonra, kendi panelinizdeki bir Güncelle butonuna basarak GitLab'daki projenizin güncel halinin tüm sunuculara otomatik gönderilmesini istiyorsunuz.
2 türlüsü de mümkün. Ancak sunucuların kontrolünün sizde olması lazım.
Diyelim ki aynı projeyi hem A hem B sunucusuna kurdunuz. Bir de kendinize ait bir Merkez sunucunuz var.
Bu iki sunucuda da projenize git ekleyip GitLab hesabınıza bağlamalısınız.
Manuel olarak bu işi yapmak için:
Hem A hem B sunucularında bir web servisiniz veya projenize dahil bir endpoint'iniz olmalı. Merkez sunucunuzdaki panelinizden butona bastığınızda A ve B sunucularındaki web servisinize bir istek atmalısınız.
A ve B sunucularındaki web servis de istek geldiği zaman shell bağlantısı açıp projeye girmeli ve git pull
komutu vermeli.
Ben olsam çok daha kolay bir yöntem olan GitLab runner'larından faydalanmak yerine böyle kendi oluşturduğum yöntemi kullanmayı tercih ederim.
GitLab'ın dahili yöntemleriyle bu işi yapmak için:
Bu işler daha da otomatik olsun, ben GitLab'a gönderdiğim gibi hemen sunuculara dağılsın, benim de bir Merkez paneline bunun için buton koymama gerek kalmasın derseniz de CI/CD şeklinde bir araştırma yapabilirsiniz. GitLab'ın runner'ları sizin oluşturduğunuz .gitlab-ci.yml dosyanıza bakarak A ve B sunucularının terminaline bağlanıp projenizi pull edebilir.
Bu işlemi çözmek için kendi kodlarınızı yazmayacaksanız kalın yazdığım ifadeleri araştırabilirsiniz.
Admin panel üzerinden site içerisindeki verileri güncellemekteyim. Fakat benim kastım verileri güncellemek değil. Kodları güncellemek. Özellikle version kontrölü yapıp, sonuca göre güncelleme işlemi yapmak.