Hepsini Yönetecek Bir Şef


10

Ben ediyorum şef içine bakarak EC2 gibi standart Magento barındırma seçenekleri yanı sıra ortamlarına hem - Magento dağıtımlarını otomatik hale getirmek. Etrafımda dolaştım ve çok sayıda tarif görüyorum, ancak hiçbiri bana kanonik bir şey olarak çarpmadı. Daha iyi / en iyi özel bir şef senaryosu var mı? Ayrıca, daha önce PHP ile şef dağıtımları yaptıysanız, başlangıçta bilmenizi istediğiniz şey nedir?


2
Keşke Ansible'ın ( ansible.com/home ) var olduğunu bilseydim .
Reid Blomquist

Eğer ilgileniyorsanız diğer bazı alternatifler, saltstack.com ve docker.com . İkisi de umut verici görünüyor ama ben de birlikte çalışma şansım olmadı.
beeplogic


Bence Reid bir ţeylerin üzerine, Alan re: Ansible. İstemcilere yüklenecek bir ajan (ssh + anahtarları ile çalışır) gerektirmez, bu bir bildirim sistemidir, bu yüzden idempotenttir ve genel olarak onu kullanmanın "bir şey yap, basitçe yap, şef, kukla ve tuz gibi daha sağlam sistemlere kıyasla unix benzeri bir his. Bunu başlangıçta yayınladığınızdan beri, bir süre şefle çalıştıktan sonra düşüncelerinizde herhangi bir güncelleme var mı?
Bryan 'BJ' Hoffpauir Jr.

Yanıtlar:


6

Her şeye uyan bir dizi rutine sahip olmak neredeyse imkansızdır. chef-clientTarafından sağlanan ana bilgisayar listeleri üzerinde çalışan bir Bash komut dosyası yazma başarılı oldum knife search. Prosedürler şöyle görünür ...

Ubuntu 12.04 LTS'de açık kaynaklı Chef Server 10.18.2

  1. Değişkenleri başlat
  2. GitHub'dan en son düzeltme karmasını alın $branch
  3. HTTP 503 durumu üzerindeki uyarıları önlemek için kullanılabilirlik izlemeyi devre dışı bırakın
  4. Tüm web ve yardımcı program ana bilgisayarlarını bakım moduna geçirin
  5. Dağıtım yardımcı programı
    1. Magento'nun cronunu ve tüm Resque çalışanlarını durdurun
    2. Dosya sistemi bağımlılıklarını adresleme
    3. Chef, tanımlanan revizyonu yeni bir sürüm olarak kontrol ediyor
    4. Adres Magento bağımlılıkları (paketler, modüller, dosya sistemi, izinler)
    5. Otomasyon için tüm cron görevlerini ve komut dosyalarını güncelleme
    6. Tüm modülleri dağıtma (besteci)
    7. İle önbelleği temizle n98-magerun.phar
    8. İle taşıma işlemini gerçekleştirin n98-magerun.phar
    9. Magento cronunu yeniden etkinleştir
    10. Resque çalışanlarını başlat
  6. İlk web barındırıcısını dağıtın
    1. Dosya sistemi bağımlılıklarını adresleme
    2. Şef $revisionyeni bir sürüm olarak tanımlanan kontrol eder
    3. Magento bağımlılıklarının ele alınması
    4. Tüm Magento modüllerini dağıtın
  7. Yeni Kalıntı'da yeni bir dağıtım işaretleme
  8. Kullanılabilirlik izleme hizmetlerini etkinleştir
  9. Diğer tüm web barındırıcılarına yük dengeleme hizmetlerini devre dışı bırakma
  10. Web sunucularına dağıtımlara devam ederek sırayla çevrimiçi hale getirin
  11. Arama ana bilgisayarları için Şef rutinleri gerçekleştirin

Kaynak: https://gist.github.com/parhamr/6177160#file-2-deployment


4

Bu nasıl ben ettik / olmak istiyorum sysadmin giyerek bu alanda yaklaştı rol devops. Aşağıdakilerin çoğu Şef'e özgü değil, izlemeye çalıştığım genel ilkeler olacak.

Kukla ile devam ettim çünkü o sırada daha fazla kaynak buldum ve benim için daha kolay hissettim.

Apache, php5, vb. Şeyler için mevcut olan çeşitli hazır modüllere baktım. Birçoğu ihtiyaç duyduğumdan çok daha fazlasını yapıyor gibi görünüyordu ve ne olduğuna güvenmediğim platforma aşina olduğum gibi görünüyordu. Her düğüm tipinde ne yapmam gerektiğini belirlememin benim için daha basit olacağına karar verdim.

Sürece ekibin yerel kalkınma ortamını (değişken + sanal kutu) sağlayarak başladım. Her hizmet / bileşen için bir modül oluşturdum: php5, apache2, redis, mysql, vb.

Geliştirme ortamı sabit / çalıştıktan sonra KG ortamını oluşturmaya başladım. Dev ile aynı modülleri yeniden kullanan web sunucuları, redis, vernik vb. İçin genel düğüm tiplerini tanımladım. Bu yapıldıktan sonra Evreleme ve Üretim gerekliydi ve çalışmaya başlamak için minimum değişikliklere ihtiyaç duyuldu.

Yemek tariflerinizi / şablonlarınızı yazarken ve yazarken, nasıl yeniden / genelleştirilebileceğini düşünmelisiniz. Dağıtımlar / projeler / ortamlar arasında değişebilecek yollar veya kullanıcı / gruplar gibi şeyleri kodlamayın. Genelleştirilmiş bir yaklaşıma baktığınızdan, büyük bir engelin * nix dağılımları arasındaki farklarla uğraşacağını tahmin ediyorum.

En önemlisi, tutmak basit. Ortamın en önemli / zaman alan bölümlerini otomatikleştirin / standartlaştırın. Tekrar ediyorum, evrim geçirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.