Bloğa geri dön

Ubuntu 20.04 üzerinde Ansible ile LAMP Kurulumu ve Yapılandırması

Ubuntu 20.04 üzerinde Ansible ile LAMP Kurulumu ve Yapılandırması

Sunucu otomasyonu, sunucuları etkili ve teknolojiye uygun bir şekilde yönetmenin ve izlemenin güvenli ve güvenilir bir sürecidir. Özel bir uzman ekibi tarafından kontrol edilen veri merkezlerindeki geleneksel sunucu yönetimi tarzının aksine, tüm sunucular otomasyon kullanılarak yönetilir. Sonuç olarak, insan hataları en aza indirilir.

Gibi yapılandırma yönetimi araçları Ansible, Puppet, Terraform, bunlardan sadece birkaçı, genellikle sunucuları otomatikleştirmek için kullanılır. Bu araçlar, yeni sunucular için standart prosedürler oluşturarak sunucuları otomasyon kullanarak kurar ve manuel olarak yapıldığında oluşabilecek olası hataları ortadan kaldırır.

Ansible güçlü bir açık kaynaklı projedir. Esnektir, kullanımı kolaydır ve en basitleştirilmiş mimariye sahiptir. Ansible playbook'larını kullanmak için kodlama geçmişi gerekmez ve düğümlere yazılım yüklemeyi gerektirmez. Her şeyden önce, betikler yazmasına ve otomasyonu kolaylaştırmasına olanak tanıyan mükemmel yeteneklerle donatılmıştır.

Bu kılavuzda, Ansible ile Ubuntu 20.04 üzerinde LAMP kurulumu ve yapılandırması adımlarında size yol göstereceğiz.

Gereksinimler

Bu öğreticiyi takip etmek için şunlara ihtiyacınız olacak:

Ansible Playbook'un Amacı Nedir?

Bu Ansible playbook'u, şu kılavuzumuzda belirtilen prosedürü uygulamanın alternatif bir yoludur: LAMP Yığını Kurulumu Linux Apache MySQL PHP.

Ansible playbook'unu çalıştırmak, Ansible ana bilgisayarlarınızda aşağıdaki eylemlerin gerçekleşmesini sağlayacaktır:

  • Şunu yükleyin: aptitude (Ansible tarafından tercih edilen apt paket yöneticisine bir alternatif).

  • Gerekli tüm LAMP paketlerini yükleyin.

  • Yeni bir Apache VirtualHost oluşturun ve özel bir belge kök dizini (document root) yapılandırın.

  • Şunu AÇIK konuma getirin: yeni VirtualHost.

  • Şunu KAPALI konuma getirin: varsayılan Apache web sitesi, yani disable_default değişkenini true.

  • MySQL root kullanıcısı için bir şifre seçin.

  • Anonim MySQL hesaplarını ve test veritabanını kaldırın.

  • Varsayılanı olan yapılandırılmış bağlantı noktasında HTTP trafiğine izin vermek için UFW'yi kurun.80.

  • Bir PHP test betiği kurun.

Ansible playbook'unun çalışması tamamlandıktan sonra, belirlediğimiz yapılandırmalara göre Apache üzerinde çalışan bir web PHP ortamı göreceksiniz.

Ansible Playbook'unu Kullanma

İlk olarak, LAMP playbook'unu ve bağımlılıklarını do-community/ansible-playbooks deposundan alın. Ardından, LAMP playbook'unu içeren depoyu Ansible Kontrol Düğümü içindeki yerel bir klasöre kopyalayın (clone).

Şu komutu çalıştırın: git pull (bu öğreticide kullanacağımız doğru içeriğe erişiminiz olduğundan emin olmak için):

Eğer do-community/ansible-playbooks deposunu ilk kez kullanıyorsanız, depoyu ana klasörünüze kopyalamayı (clone) düşünün:

Go to the lamp_ubuntu2004 klasörüne gidin, şu yapıyı göreceksiniz:

İşte bu dosyaların ne anlama geldiğine dair bir genel bakış:

  • files/info.php.j2: Bu, web sunucusunun kök dizininde bir PHP test sayfası kurabileceğiniz bir şablon dosyasıdır.

  • files/apache.conf.j2: Apache VirtualHost'u kurmak için kullanılan başka bir şablon dosyasıdır.

  • vars/default.yml: Playbook ayarlarını özelleştirmek için kullanılan bir değişken dosyasıdır.

  • playbook.yml: Bu dosya, uzak sunucuda/sunucularda yürütülecek görevlerin tüm içeriğini içerir.

  • readme.md: Bu playbook hakkında bilgi içeren bir okuma dosyası.

Playbook'un değişken dosyasında değişiklikler yaparak MySQL ve Apache yapılandırmalarını özelleştirelim. Şu dizine gidin: lamp_ubuntu2004 dizinine gidin ve şu dosyayı açın: vars/default.yml dosyasını şu editörü kullanarak açın: nano editörü:

Şu dosyayı açtığınızda: vars/default.yml dosyası, değiştirilmesi gereken değişkenlerin bir listesini içerecektir:

Değişkenlerin her birini ayrıntılı olarak inceleyelim:

  • mysql_root_password: Şu hesap için şifreyi depolar: root MySQL hesabı.

  • app_user: Ansible ana bilgisayarında, uygulama dosyalarının sahibi olarak hareket eden uzak, root olmayan bir kullanıcıdır.

  • http_host: Alan adınızı görüntüler.

  • http_conf: Apache içinde oluşturulan yapılandırma dosyasının adını görüntüler.

  • http_port: Bu sanal ana bilgisayar için HTTP bağlantı noktasıdır ve 80 varsayılandır.

  • disable_default: Apache ile birlikte gelen varsayılan seçenekleri geri almak için kullanılır.

Ardından, şu dosyayı kaydedip kapatın: vars/default.yml dosyası.

Tüm kurulum tamamlandıktan sonra, bu playbook'u sunucularda çalıştırmaya hazırız. Varsayılan olarak, playbook'lardaki sunucuların çoğu envanterlerdeki her sunucuda yürütülecek şekilde yapılandırılmıştır. Playbook'tan yalnızca tek bir sunucunun veya seçilen bir grup alt kümesinin etkilenmesini sağlamak için -l bayrağını kullanalım. Alternatif olarak, hangi uzak sunucuya bağlanıldığını ve uzak ana bilgisayarlarda nelerin yürütüldüğünü ayrıntılı olarak görmek için -u bayrağını kullanabiliriz.

Playbook'u tek bir sunucuda çalıştıralım: server1 ve şu kullanıcıyla bağlanalım: justin:

Şuna benzer bir çıktı alacaksınız:

Playbook'un çalışmasının tamamlandığını gördükten sonra, web tarayıcınıza gidin ve sunucunun ana bilgisayarına erişin. IP'nin sonuna şunu eklemeyi unutmayın: /info.php :

Bu URL'ye tıkladığınızda, şuna benzer bir sayfa göreceksiniz:

Uyarı: Görüntülenen sayfa, PHP ortamınız hakkında hassas bilgiler içermektedir. Bu nedenle, aşağıdaki komutu kullanarak kişisel bilgilerinizi sunucudan kaldırmanız önerilir:

rm -f /var/www/info.php

Playbook'ta Neler Var?

Ardından, içinde kullanılan dosyaların anlamını ve önemini anlayalımansible-playbook içeriği:

  • vars/default.yml

The default.yml değişken dosyası, MySQL root hesabının alan adını ve şifresini içerir. Bunlar, ansible-playbook görevlerinde kullanılan varsayılan değerlerdir:

  • files/apache.conf.j2

The apache.conf.j2 dosyası, yeni bir Apache VirtualHost yapılandırmak için kullanılan bir Jinja 2 şablon dosyasıdır. Bu şablon içinde kullanılan değişkenler, vars/default.yml değişken dosyasında tanımlanmalıdır:

  • files/info.php.j2

Similar to files/apache.conf.j2 dosyasına benzer şekilde, info.php.j2 dosyası da bir Jinja şablonudur. Bu dosyayı, yeni yapılandırılmış bir LAMP sunucusunun belge kök dizininde bir test PHP betiği kurmak için kullanırız:

  • playbook.yml

The playbook.yml dosyası, bu kurulumdaki tüm görevlerin tanımlandığı yerdir. Bu dosyada tüm LAMP yığınları yapılandırılır. Hedeflenen sunucu grubunun tanımlanmasıyla başlar ve all olarak ayarlanır. Ayrıca, become değerini true ( become: true) olarak alır ve yürütülmesi gereken tüm görevleri tanımlar. Ardından, yaml dosyası, yapılandırma seçeneklerini yüklemek için varsayılan dosya olan vars/default.yml değişken dosyasına sahiptir:

Bu dosyaları projenizin ihtiyaçlarına ve gereksinimlerine göre değiştirebilirsiniz.

Sonuç

Bu eğitimde, Ansible ile uzak bir sunucuda LAMP kurulumu ve yapılandırması adımlarını inceledik. Deneyebileceğiniz pek çok başka özelleştirme seçeneği de mevcuttur. Örneğin, Ansible resmi belgelerini kullanmak ve Ansible modülündeki mysql_user durumlarını kullanmak, kendinizi geliştirmek için mükemmel bir yoldur. Ayrıca, zorluk seviyesini artırmak amacıyla diğer yapılandırma yönetimi araçlarını ve işletim sistemlerini kullanarak otomasyon pratiği yapmak için bu kılavuzda ele alınan adımları takip edin.

LAMP yığınına yeni misiniz ve bu konunun derinliklerine inmek mi istiyorsunuz? Aşağıdaki eğitimleri şurada inceleyin: blogumuz:

Keyifli bilişimler!

author

Hark Labs

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.