Mükemmel WordPress sunucusunun peşinde
Geçen haftaki Salı eğitimimi kaçırdığımı biliyorum ve bunun iyi bir nedeni vardı; Bir dakika içinde WordPress için mükemmel şekilde uygun ve optimize edilmiş bir sunucu kuracak bir araç (veya daha doğrusu bir komut dosyası ) üzerinde çalışıyorum. Evet, doğru okudunuz.
Geliştirici, Ansible ile tanışın
Bu hedefe ulaşmak için, sağlayıcı olarak da bilinen bir araç kullanmamız gerekiyor . Bunlar, sunucu yöneticileri arasında oldukça yaygın olarak bilinir, ancak karmaşıklıkları nedeniyle WordPress topluluğunda çok fazla değildir. Yine de bunlardan biri öne çıkıyor ve buna Ansible deniyor. Güçlü yönlerinden biri, sunucuda oturum açmak için bir araç olarak SSH kullanmasıdır – en yaygın yol. Ayrıca yapılandırma dosyaları, okunması, yazılması ve anlaşılması gerçekten kolay olan YAML formatında yazılmıştır (bunu birazdan göstereceğim).
Sağlayıcının ne olduğunu hala bilmiyorsanız: düz ingilizce, sunucu yapılandırmasını otomatikleştirmek için bir araçtır. Ve her şeye gücü yetendirler , yani aynı komutları tekrar tekrar çalıştırabilirsiniz ve daha önce çalıştırılmışlarsa bu komutları yeniden çalıştırmaz.
Örnek : MySQL'i yeni bir sunucuya (veya aynı anda birden fazla sunucuya) otomatik olarak yüklemeniz gerekir, bu yalnızca bir kez yapılması mantıklıdır. Komutu ikinci kez çalıştırdığınızda, MySQL'in zaten kurulu ve çalışır durumda olduğunu algılayacak ve bu komutu atlayacaktır.
cevaplanabilir terminoloji
Ansible'ın neler yapabileceğini derinlemesine incelemeden önce, bazı temel terminolojiyi açıklamak mantıklıdır, böylece kafanız karışırsa ona başvurabilirsiniz (hepsini anlamazsanız endişelenmeyin, çok daha fazlası olacaktır). ilk Ansible betiğinizi yazmaya başladığınızda daha net):
- Görevler , Ansible'ın merkezi varlığıdır. Bir program kurmak, konfigürasyonu güncellemek, dosyaları yerine kopyalamak, her şey görevler aracılığıyla yapılır, bu yüzden en çok onlara odaklanacağız.
- Başucu kitapları, en yaygın olarak benzer işlemleri gerçekleştiren veya belirli bir hizmeti yöneten benzer görevleri koyduğumuz dosyalardır.
- Roller , ek olarak görevleri düzenlemek için oyun kitaplarını koyduğumuz dizinlerdir. Ortak roller “veritabanı” ve “web sunucusu” dur.
- Dosyalar sadece şunlardır: Senkronize etmemiz veya sunucudaki belirli bir dizine yüklememiz gereken normal dosyalar.
- Şablonlar özel tür dosyalardır; Ansible sunucuya şablon yüklediğinde değerleriyle değiştirilen değişkenleri koymamıza izin veriyorlar.
- Değişkenler , görevler içinden erişebileceğimiz veya bunları şablonlara yerleştirebileceğimiz yer tutuculardır. Örneğin, Nginx yapılandırmamızda sanal bir ana bilgisayar kurmamız gerekirse, bir şablon oluştururuz ve belge kökümüzün yolu bir değişkende saklanır. Değişkenler ana bilgisayar başına, grup başına veya çalışma kitabı bazında ayarlanabilir (kısa bir süre sonra bazı örnekler vereceğim).
- İşleyiciler , WordPress'teki kancalara benzer özel türden görevlerdir – belirli bir olay meydana geldiğinde çağrılırlar. Eğer php konfigürasyonunu güncellersek, Nginx'i yeniden başlatmamız gerekiyor ve bunu bir işleyici ile yapıyoruz.
- Envanterler , sunucularımızın IP adreslerini koyduğumuz yapılandırma dosyalarıdır. Uzantıları yoktur (*.yml gibi)
- Gruplar , sunucularımızı dahili envanterler halinde organize etmenin (veya daha doğrusu gruplandırmanın ) bir yoludur.
- Ana bilgisayarlar, grupların içindeki bireysel sunuculardır (IP veya DNS adresleri ile anılır)
Bir resim bin kelime konuştuğundan, yukarıdaki tüm terimlerin gerçek bir projede nasıl bir araya geldiği aşağıda açıklanmıştır:


Bir Ansible projesinin nasıl düzenlenmesi gerektiği hakkında daha fazla bilgi edinmek için Ansible en iyi uygulamalarına bakın.
Ansible'ı yükleme
Devam etmeden önce, Ansible'ın kurulu olduğundan emin olun. Python'da yazıldığından ve çoğu işletim sistemi zaten kurulu olarak gönderildiğinden, çalışmasını sağlamak için aşağıdaki komutları çalıştırmanız yeterlidir (yine de bir Windows makinesinde farklı görünebilirler, Ansible belgelerine bakın):
$ sudo easy_install pip $ sudo pip install ansible $ sudo pip install --upgrade ansible
Düzgün kurulup kurulmadığını test etmek için ansible --version çalıştırmanız yeterlidir.
Mükemmel WordPress sunucusu
Artık Ansible'ın nasıl çalıştığını ve kurulumunu daha iyi anladığınıza göre, size küçük bir hediyem var. Bence sadece bir WordPress sunucusu kurmakla kalmayıp aynı zamanda üzerine WordPress de kuran temel bir komut dosyası yazdım! Sadece boş bir sunucuya ihtiyacınız var (DigitalOcean'ı öneriyoruz).
Lafı daha fazla uzatmadan, işte Ansible WordPress sunucu kurulumum. Depoyu klonlamak için git'e ihtiyacınız olacak – ya da daha iyisi, onu çatallayın. Niye ya? Çünkü bunun bir topluluk projesi olmasını istiyorum, böylece en uygun sunucu kurulumunu gerçekten bulmak için hepimiz katkıda bulunup en iyi uygulamalarımızı tartışabiliriz.
[bctt tweet=”En uygun WordPress sunucusunu bir dakikadan kısa sürede yapılandırın mı? Olası."]
Kaynağı açarsanız, first_run.yml ve setup.yml olmak üzere iki *.yml dosyası olduğunu fark edeceksiniz. İlki, kök oturum açmayı esasen devre dışı bırakan ve genel güvenliği artıran kök kullanıcı olarak kullanılırken, ikincisi MySQL, Nginx, PHP, Monit ve tabii ki WordPress'i (WP-CLI kullanarak) yükleyen ve yapılandıran ana komut dosyamızdır.
Yine de çalıştırmadan önce group_vars/example.yml dosyasını group_vars/production.yml dosyasına kopyalamanız ve aşağıdaki içerikle bir envanter dosyası inventories/production oluşturmanız gerekir (IP'yi sunucunuzu gösterecek şekilde değiştirin):
[production] 192.168.0.1
Bunu yaptıktan sonra artık ansbile'ı çalıştırabilirsiniz ( -k parametresi sizden root'un SSH şifresini isteyecektir):
$ ansible-playbook first_run.yml -i inventories/production -k
Bu yapıldıktan sonra, kök kullanıcı olarak bağlanamadığı için görevleri nasıl atlayacağını fark etmek için yeniden çalıştırabilirsiniz – bu iyi!
Bazı temel güvenlik önlemleri alındığında, setup.yml çalıştırmanın zamanı geldi (sizden sudo parolasını isteyecek olan büyük K parametresine dikkat edin):
$ ansible-playbook setup.yml -i inventories/production -K
Bir kahve alın, bir veya iki dakika bekleyin, ardından tarayıcınızda wordpress_site_domain değişkeninde ayarladığınız şeye gidin (bu IP'yi gösteren bir DNS kaydınız varsa). Görmeniz gereken temel bir WordPress kurulumudur. Yaparsan, iyi iş! (Ve değilse, bir yorum bırakın)
Yardım edin!
Ben hiçbir şekilde Ansible uzmanı değilim, bu yüzden sizden bu makaleyi sosyal medyada paylaşmanızı (veya inek arkadaşlarınıza e-posta ile göndermenizi) rica ediyorum. Bu, umarız, Web Sitelerinin nasıl performans gösterdiğine takıntılı olan daha fazla geliştiriciyi çekecektir.
ev borcu WordPress sitesi