Ubuntu 16.04 Üzerinde Virtualmin ve Ansible Kullanarak Birden Çok Wordpress Sitesi Nasıl Dağıtılır

Vultr sanal sunucusunun yaygın kullanımı, Wordpress web sitelerini barındırmaktır. Bu kılavuz, bir sanal sunucunun yapılandırmasını sıfırdan nasıl (Ansible kullanarak) ve birden çok bağımsız Wordpress web sitesini (Webmin / Virtualmin kullanarak) nasıl dağıtacağınızı gösterir. Virtualmin / Webmin, aynı makinede (LAMP / LEMP yığını ile birlikte) birden çok sanal sunucu hesabının dağıtımını yönetmenizi sağlayan grafiksel bir kullanıcı arabirimidir. Virtualmin, cPanel ve Plesk'e çok benziyor ve bu derste ücretsiz GPL sürümünü kullanacağız. Vultr sunucusunun ilk kurulumundan ve Virtualmin'in kurulumundan sonra, Virtualmin arabiriminden çok sayıda sanal sunucuyu çok hızlı bir şekilde kurabilir ve Wordpress'i kendi etki alanı adıyla birlikte bu sanal sunucuya doğrudan yükleyebilirsiniz.

Bu öğreticide, uzun bir komut listesi manuel olarak girmek yerine Ansible kullanacağız. Ansible, sunucu görevlerini güvenilir ve tekrar tekrar otomatikleştirmenizi sağlayan python tabanlı bir otomasyon aracıdır. Bu, bu öğreticiyi izledikten sonra, yalnızca birkaç komutla başka bir sunucuyu aynı şekilde dağıtabileceğiniz anlamına gelir.

Ön şartlar

  • En az bir Tam Nitelikli Alan Adı ve DNS kayıtlarına erişim
  • Bir Vultr hesabı

Adım 1 - Ansible cihazını yerel makinenize kurma

Ansible'ı yerel makinenize veya başka bir sunucuya kurun.

mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible

Adım 2 - SSH anahtarları oluşturma ve sunucuyu dağıtma

Ansible, SSH aracılığıyla sunucunuza giriş yaparak çalışır. SSH erişimi, şifre yerine anahtarlar kullanırsak en güvenlidir. Önce genel ve özel bir anahtar çifti oluşturalım.

mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys

Dizinde ssh_keysşimdi iki dosya olacak ssh_keysve ssh_keys.pub. ssh_keysözel anahtar dosyanızdır ve güvende tutulmalıdır. Artık ssh_keys.pubortak anahtarı içeren 'i açabilirsiniz .

Vultr web kontrol paneline giriş yapın ve tıklayın Deploy New Server.

Bir bölge seçin, Sunucu türü (Ubuntu 16.04), Sunucu boyutu ve sonra bölüm 6'da ( SSH keys) tıklayın Add New. Sonraki sayfada genel anahtarınızı yapıştırın ve bir ad verin ve Tamam'ı tıklayın Add SSH key. Son olarak anahtarın seçili olduğundan emin olun ve tıklayın Deploy now.
Sunucu konuşlandırmayı tamamladığında IP adresi gösterilir. Alan adınızın DNS sunucusuna giriş yapmanız ve bu adrese yönlendirmeniz gerekir.

Adım 3 - Temel bir Ansible yapılandırması oluşturma

Ansible'ın otomasyon dosyaları denir roles. Önce dizin yapısını ( ansible1. adımda oluşturduğunuz dizinin içinde ) ve temel dosyaları ayarlayacağız .

mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml

Yeni oluşturduğunuz sunucunun hostsyerini alacak şekilde dosyayı aşağıdakileri içerecek şekilde düzenleyin ip address. Ansible, Ubuntu 16.04'ün varsayılan olarak yüklemediği python 2'yi kullanır. Gelen hostsdosyanın biz python 3 kullanmaya yanıtlayıcı 'söyle.

[common]  
192.0.2.1 ansible_python_interpreter=/usr/bin/python3

deploy.ymlAşağıdakileri içerecek şekilde dosyayı düzenleyin. rootKullanıcıyı kullanacağız .

- name: apply common configuration to server
  hosts: all
  user: root
  roles:
    - common

/group_vars/allAşağıdakileri içerecek şekilde dosyayı düzenleyin. Bu değişkenler Ansible'a SSH anahtarlarınızın yerini, takas dosyası parametrelerini, Tam Nitelikli Etki Alanı Adınızı ve kök parolanızı söyler. Lütfen unutmayın değil o açık metin olarak şifrenizi içerdiğinden kaynak denetiminde dosyayı dahil etmek.

ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE

common/handlers/main.ymlAşağıdakileri içerecek şekilde dosyayı düzenleyin.

- name: restart sshd
  service: name=ssh state=restarted

Adım 4 - Temel sunucu kurulumu için Uygun görevler oluşturma

Ansible otomasyonu, onu görevlere ayırırsak anlamak daha kolaydır. İşlemdeki görevlerimizin her biri için dosyalar oluşturalım.

cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml

main.yml Ansible komutlarını içeren her dosyayı göstermelidir, bu nedenle aşağıdakileri içerecek şekilde düzenleyin.

- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml

Yeni bir sunucu kurmanın ilk adımı, repo önbelleğini güncellemek ve saat dilimini ayarlamaktır. common/handlers/setup.ymlAşağıdakileri içerecek şekilde dosyayı düzenleyin.

- apt: update_cache=yes
  sudo: yes

- name: set timezone to Europe/London
  timezone:
    name: Europe/London

Şimdi, kök kullanıcıya bir şifre vereceğiz (virtualmin web arayüzüne erişmemiz gerekecek), ancak SSH üzerinden şifre girişlerini devre dışı bırakacağız (daha güvenli anahtar doğrulama yöntemi kullandığımız için). Düzenleme users.ymlaşağıdakileri içermesi.

- name: Change passwd
  user: name=root password={{ new_password | password_hash('sha512') }} update_password=always

- name: Disable SSH password login
  lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
  notify: restart sshd

Güvenlik için bir güvenlik duvarına ihtiyacımız var. Bağlantı noktasında SSH erişimi, bağlantı noktasında 22web erişimi ve bağlantı noktasında 80güvenli web erişimi için Karmaşık Güvenlik Duvarını kullanacağız 443. ufw.ymlAşağıdakileri içerecek şekilde dosyayı düzenleyin.

- name: Set default firewall policy to deny all
  become: True
  ufw: state=enabled direction=incoming policy=deny
  tags: firewall

- name: enable SSH in firewall
  ufw: rule=allow port=22
  sudo: yes

- name: enable HTTP connections for web server
  ufw: rule=allow port=80
  sudo: yes

- name: enable HTTPS connections for web server
  ufw: rule=allow port=443
  sudo: yes

- name: enable firewall
  ufw: state=enabled
  sudo: yes

İsteğe bağlı olarak, bir takas dosyası ekleyebilirsiniz. Bellek yetersiz çökmelerini önlemek için sunucunuzda 2GB'tan daha az RAM varsa bu gereklidir. Düzenleme swap.ymlaşağıdakileri içermesi.

- name: Set swap_file variable
  set_fact:
    swap_file: "{{swap_file_path}}"
  tags:
    - swap.set.file.path

- name: Check if swap file exists
  stat:
    path: "{{swap_file}}"
  register: swap_file_check
  tags:
    - swap.file.check

- name: Create swap file
  command: fallocate -l {{swap_file_size}} {{swap_file}}
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.create

- name: Change swap file permissions
  file: path="{{swap_file}}"
        owner=root
        group=root
        mode=0600
  tags:
    - swap.file.permissions

- name: Format swap file
  sudo: yes
  command: "mkswap {{swap_file}}"
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.mkswap

- name: Write swap entry in fstab
  mount: name=none
         src={{swap_file}}
         fstype=swap
         opts=sw
         passno=0
         dump=0
         state=present
  tags:
    - swap.fstab

- name: Turn on swap
  sudo: yes
  command: swapon -a
  when: not swap_file_check.stat.exists
  tags:
    - swap.turn.on

- name: Set swappiness
  sudo: yes
  sysctl:
    name: vm.swappiness
    value: "{{swappiness}}"
  tags:
    - swap.set.swappiness

5. Adım - Virtualmin kurulumu için Ansible görevi ekleyin

Virtualmin, Ansible tarafından indirilip çalıştırılabilen kendi yükleyici dosyasına sahiptir. Burada minimal install ( LINK) kullanıyoruz. Ek öğeler, Virtualmin tarafından yüklendiğinde ayarlanmamış olan MySQL sunucu şifresini yapılandırmaktır. Parolayı değiştirmeden önce MySQL'i geçici olarak durdurmalı ve kimlik doğrulama dizinini eklemeliyiz. Düzenleme virtualmin.ymlaşağıdakileri içermesi.

- name: download virtualmin install script
  get_url: >
    url=http://software.virtualmin.com/gpl/scripts/install.sh
    dest=/root/install.sh
    mode=0755

- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
  tags: non-idem
  shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
  args:
    chdir: /root

- name: temp stop mysql
  service:
    name: mysql
    state: stopped

- name: change owner (and group) of mysqld dir
  file:
    path: "/var/run/mysqld"
    state: directory
    owner: mysql
    group: mysql

- name: virtualmin set mysql password
  shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}

- name: restart mysql
  service:
    name: mysql
    state: started

Ansible rolü şimdi bitti ve konuşlandırmaya hazırız.

Adım 6 - Ansible ile kurulumu gerçekleştirin

Ansible klasöründen, şimdi aşağıdaki komutu çalıştırabiliriz ve Ansible otomatik olarak oluşturduğumuz tüm görevleri gerçekleştirir. İlk bağlandığınızda bir SSH anahtarı uyarısı alırsınız yes, komut istemine " " yazmanız yeterlidir.

ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts

Başka bir sunucu kullanmak istiyorsak, hosts dosyasındaki ip adresini değiştirebilir ve tam olarak aynı kurulumu tamamlamak için bu komutu tekrar çalıştırabiliriz.

Adım 7 - Virtualmin kurulum sonrası sihirbazı

Kurulum tamamlandı ve şimdi gidebiliriz https://192.0.2.1:10000(sunucunuzun ip adresini kullanın). Sertifika kendinden imzalı olduğu için tarayıcınız bir güvenlik uyarısı verir, bu nedenle tıklayın advancedve bir istisna ekleyin. Size bir giriş sayfası sunulacaktır. Kullanıcı adı rootve parola group_vars/all3. adımda dosyaya girdiğiniz paroladır. Virtualmin'e ilk kez girdiğinizde yükleme sonrası sihirbazı ile karşılaşırsınız. Bu ayarları manuel olarak yapabilir veya cancelvarsayılanları kabul etmek için tıklayabilirsiniz .

Adım 8 - Bir sunucu oluşturun ve WordPress'i yükleyin

İlk Wordpress sunucunuzu çalıştırmak ve çalıştırmak için Virtualmin kontrol panelinden tıklayın Create Virtual Server. Bir alan adı, açıklama ve yönetici şifresi girmeniz gerekir. Etki alanı adı, Virtualmin tam etki alanı adından farklı olmalıdır ve DNS kaydını sunucunuzun ip adresine yönlendirmeniz gerekir.

Tıklayın Create Server. Virtualmin sunucunuzu oluşturmayı bitirdiğinde Install Scripts, soldaki menüye tıklayın. Seçin Wordpress, tıklayın Show install optionsve sonraki sayfada Wordpress kurulumunun konumunu seçin. Sadece seçin At top levelve tıklayın Install Now.

Tek yapmanız gereken - Wordpress kurulumunuzu http://example.net/wp-admin/install.php( example.netbu sanal sunucuların alan adı nerede) adresini ziyaret ederek tamamlayabilirsiniz . DNS kayıtlarınız henüz Services > Preview Websiteyayılmadıysa, Virtualmin menüsünden gidebilirsiniz .

Aynı Vultr sunucusunda birden çok Wordpress sitesi oluşturmak için bu adımı birkaç kez tekrarlayabilirsiniz.



Leave a Comment

WordPressi OpenBSD 6.2ye yükleme

WordPressi OpenBSD 6.2ye yükleme

Giriş WordPress, internet üzerindeki baskın içerik yönetim sistemidir. Bloglardan dinamik içeriğe sahip karmaşık web sitelerine kadar her şeyi güçlendirir

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)

Neos CMSyi CentOS 7ye Yükleme

Neos CMSyi CentOS 7ye Yükleme

Neos, çevrimiçi içerik oluşturmak ve düzenlemek için mükemmel olan yenilikçi bir açık kaynaklı içerik yönetim sistemidir. Yazarlar ve editörler göz önünde bulundurularak, Neo

Debian 8.7de Hayalet Nasıl Kullanılır

Debian 8.7de Hayalet Nasıl Kullanılır

Farklı Bir Sistem mi Kullanıyorsunuz? Ghost, 2013 sürümünden bu yana geliştiriciler ve sıradan kullanıcılar arasında popülerlik kazanan açık kaynaklı bir blog platformudur. ben

Debian 9 (Streç) Üzerine Dotclear Kurulumu

Debian 9 (Streç) Üzerine Dotclear Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Dotclear çok basit bir blog motorudur. Açık kaynak kodludur ve kullanımı kolaydır. Bu öğretici,

OpenBSD 6da Ghost Professional Yayıncılık Platformunu Kurma

OpenBSD 6da Ghost Professional Yayıncılık Platformunu Kurma

Ghost, WordPresse rakip olan en yeni ve en büyük başlangıç. Tema geliştirme hızlı ve kolaydır, çünkü Ghost geliştiricileri

OpenBSD 6.5de OpenBSD HTTPD ile WordPress Çalıştırma

OpenBSD 6.5de OpenBSD HTTPD ile WordPress Çalıştırma

Giriş OpenBSD kurulumunuzu varsayılana ne kadar yakın tutarsanız ve fazladan paket olmadan o kadar güvenli olur. Daha fazla commo iken

Ubuntu 16.04 Üzerinde Ghost v0.11 LTS Dağıtımı

Ubuntu 16.04 Üzerinde Ghost v0.11 LTS Dağıtımı

Farklı Bir Sistem mi Kullanıyorsunuz? Ghost, 201 yılından beri geliştiriciler ve sıradan kullanıcılar arasında popülerlik kazanan açık kaynaklı bir bloglama platformudur.

CentOS 7ye Fork CMS Takma

CentOS 7ye Fork CMS Takma

Farklı Bir Sistem mi Kullanıyorsunuz? Fork, PHP ile yazılmış açık kaynaklı bir CMSdir. Forks kaynak kodu GitHubda barındırılıyor. Bu kılavuz size Fork CMyi nasıl kuracağınızı gösterecektir

CentOS 7de Dizgi Ayarlayıcı CMS Nasıl Kurulur

CentOS 7de Dizgi Ayarlayıcı CMS Nasıl Kurulur

Typesetter, PHPde yazılmış, True WYSIWYG düzenleme ve düz dosya depolama ile kullanım kolaylığı üzerine odaklanmış açık kaynaklı bir CMSdir. Bu yazıda, kurulum yapacağız

CentOS 7.3de Ghost v0.11 LTS Nasıl Kullanılır

CentOS 7.3de Ghost v0.11 LTS Nasıl Kullanılır

Farklı Bir Sistem mi Kullanıyorsunuz? Ghost, 201 yılından beri geliştiriciler ve sıradan kullanıcılar arasında popülerlik kazanan açık kaynaklı bir bloglama platformudur.

Ubuntu 16.04 Üzerinde Dotclear Kurulumu

Ubuntu 16.04 Üzerinde Dotclear Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Dotclear PHP üzerine kurulmuş çok basit bir blog motorudur. Bu derste Ubunta Dotclear yükleyeceğiz

Bir Fedora 26 LAMP VPS Üzerine MODX Devrimi Nasıl Yüklenir

Bir Fedora 26 LAMP VPS Üzerine MODX Devrimi Nasıl Yüklenir

Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)

CentOS 7de Jekyll Blogu Oluşturma

CentOS 7de Jekyll Blogu Oluşturma

Farklı Bir Sistem mi Kullanıyorsunuz? Jekyll, WordPresse iyi bir alternatiftir. Herhangi bir veritabanı gerektirmez ve birçok kişinin bildiği bir dille çalışır

Ubuntu 16.04 LTSye Fork CMS Kurulumu

Ubuntu 16.04 LTSye Fork CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fork, PHP ile yazılmış açık kaynaklı bir CMSdir. Forks kaynak kodu GitHubda barındırılıyor. Bu kılavuz size Fork CMyi nasıl kuracağınızı gösterecektir

Ubuntuda Jekyll Blogu Oluşturma 16.04

Ubuntuda Jekyll Blogu Oluşturma 16.04

Farklı Bir Sistem mi Kullanıyorsunuz? Jekyll, blog yazmak veya içerik paylaşmak için WordPresse harika bir alternatiftir. Herhangi bir veritabanı gerektirmez ve çok kolaydır.

CentOS 6da WooCommerce ile WordPress Kurulumu

CentOS 6da WooCommerce ile WordPress Kurulumu

Vultr örnekleri, WordPress blogunuzu çalıştırmanın harika bir yoludur, ancak WordPressin daha dikkate değer bir uzantısı WooCommercedir.

Debian 9a Fork CMS Yükleme

Debian 9a Fork CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Fork, PHP ile yazılmış açık kaynaklı bir CMSdir. Forks kaynak kodu GitHubda barındırılıyor. Bu kılavuz size Fork CMyi nasıl kuracağınızı gösterecektir

Ubuntu 16.04 Üzerinde Hayalet Nasıl Kullanılır

Ubuntu 16.04 Üzerinde Hayalet Nasıl Kullanılır

Farklı Bir Sistem mi Kullanıyorsunuz? Ghost, 2013 sürümünden bu yana geliştiriciler ve sıradan kullanıcılar arasında popülerlik kazanan açık kaynaklı bir blog platformudur. ben

Ubuntu 16.04 Üzerine Bir Ghost v1.0.0 Blogu Yükleme ve Yapılandırma

Ubuntu 16.04 Üzerine Bir Ghost v1.0.0 Blogu Yükleme ve Yapılandırma

Ghost, Node.js üzerinde Ember.js yönetici istemcisi, JSON APIsi ve Handlebars.js tarafından desteklenen bir tema APIsı ile oluşturulmuş modern, açık kaynaklı bir yayıncılık platformudur. ghos

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun