Cara Menyebarkan Beberapa Situs Wordpress Menggunakan Virtualmin dan Ansible di Ubuntu 16.04

Penggunaan umum server virtual Vultr adalah untuk meng-host situs web Wordpress. Panduan ini menunjukkan kepada Anda bagaimana mengotomatiskan konfigurasi server virtual dari awal (menggunakan Ansible) dan menggunakan beberapa situs web Wordpress independen (menggunakan Webmin / Virtualmin). Virtualmin / Webmin adalah antarmuka pengguna grafis yang memungkinkan Anda untuk mengelola penyebaran beberapa akun server virtual pada mesin yang sama (lengkap dengan tumpukan LAMP / LEMP). Virtualmin sangat mirip dengan cPanel dan Plesk, dan dalam tutorial ini kita akan menggunakan edisi GPL gratis. Setelah pengaturan awal server Vultr dan pemasangan Virtualmin, Anda dapat dengan cepat mengatur beberapa server virtual dari dalam antarmuka Virtualmin dan langsung menginstal Wordpress di server virtual tersebut lengkap dengan nama domainnya sendiri.

Dalam tutorial ini, alih-alih memasukkan daftar perintah yang panjang secara manual, kami akan menggunakan Ansible. Ansible adalah alat otomatisasi berbasis python yang memungkinkan Anda untuk secara otomatis dan berulang kali mengotomatiskan tugas-tugas server. Ini berarti setelah Anda mengikuti tutorial ini, Anda akan dapat menggunakan server lain dengan cara yang sama hanya dengan beberapa perintah.

Prasyarat

  • Setidaknya satu Nama Domain Sepenuhnya Berkualitas dan akses ke catatan DNS
  • Akun Vultr

Langkah 1 - Memasang Ansible di mesin lokal Anda

Instal Ansible di mesin lokal Anda atau server lain.

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

Langkah 2 - Menghasilkan kunci SSH dan menyebarkan server

Kemungkinan bekerja dengan masuk ke server Anda melalui SSH. Akses SSH paling aman jika kita menggunakan kunci daripada kata sandi. Pertama-tama mari kita buat pasangan kunci publik dan pribadi.

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

Dalam ssh_keysdirektori sekarang akan ada dua file, ssh_keysdan ssh_keys.pub. ssh_keysadalah file kunci pribadi Anda dan harus disimpan dengan aman. Anda sekarang dapat membuka ssh_keys.pub, yang berisi kunci publik.

Masuk ke dasbor web Vultr dan klik Deploy New Server.

Pilih wilayah, jenis Server (Ubuntu 16.04), Ukuran server, dan kemudian di bagian 6 ( SSH keys), klik Add New. Pada halaman berikutnya rekatkan kunci publik Anda dan beri nama, lalu klik Add SSH key. Akhirnya pastikan bahwa kunci dipilih dan klik Deploy now.
Setelah server selesai digunakan Anda akan ditunjukkan alamat ip-nya. Anda harus masuk ke server DNS nama domain Anda dan arahkan ke alamat ini.

Langkah 3 - Buat konfigurasi Ansible dasar

File otomatisasi Ansible dipanggil roles. Pertama-tama kita akan mengatur struktur direktori (di dalam ansibledirektori yang baru saja Anda buat pada langkah 1), dan file-file dasar.

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

Edit hostsfile berisi yang berikut ini, menggantikan ip addressserver yang baru saja Anda buat. Anonim menggunakan python 2, yang tidak diinstal secara default oleh Ubuntu 16.04. Dalam hostsfile tersebut kami memberi tahu Ansible untuk menggunakan python 3.

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

Edit deploy.ymlfile untuk memuat yang berikut ini. Kami akan menggunakan rootpengguna.

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

Edit /group_vars/allfile untuk memuat yang berikut ini. Variabel-variabel ini memberi tahu lokasi kunci SSH Anda, parameter file swap, Nama Domain Sepenuhnya Anda, dan kata sandi root. Harap diingat untuk tidak memasukkan file dalam kontrol sumber karena berisi kata sandi Anda dalam teks yang jelas.

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

Edit common/handlers/main.ymlfile untuk memuat yang berikut ini.

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

Langkah 4 - Buat tugas yang memungkinkan untuk pengaturan server dasar

Otomatisasi yang dimungkinkan lebih mudah dipahami jika kita memecahnya menjadi tugas. Mari kita buat file untuk masing-masing tugas kita dalam proses.

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

main.yml harus menunjuk ke setiap file yang berisi perintah Ansible, jadi edit untuk berisi yang berikut ini.

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

Langkah pertama dalam menyiapkan server baru adalah memperbarui cache repo dan mengatur zona waktu. Edit common/handlers/setup.ymlfile untuk memuat yang berikut ini.

- apt: update_cache=yes
  sudo: yes

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

Sekarang, kami akan memberikan kata sandi kepada pengguna root (yang kami perlukan untuk mengakses antarmuka web virtualmin), tetapi nonaktifkan login kata sandi melalui SSH (karena kami menggunakan metode otentikasi kunci yang lebih aman). Edit users.ymlmengandung yang berikut ini.

- 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

Untuk keamanan, kita membutuhkan firewall. Kami akan menggunakan Firewall Tidak Rumit untuk memungkinkan akses SSH di port 22, akses web di port, 80dan mengamankan akses web di port 443. Edit ufw.ymlfile untuk memuat yang berikut ini.

- 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

Secara opsional, Anda dapat memasukkan file swap. Ini penting jika server Anda memiliki RAM kurang dari 2GB untuk menghindari kehabisan memori. Edit swap.ymlmengandung yang berikut ini.

- 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

Langkah 5 - Tambahkan tugas yang mungkin untuk pengaturan virtualmin

Virtualmin memiliki file penginstal sendiri yang dapat diunduh dan dijalankan oleh Ansible. Di sini kita menggunakan minimal install ( LINK). Item tambahan adalah untuk mengkonfigurasi kata sandi server MySQL yang tidak diatur ketika diinstal oleh Virtualmin. Kita perlu menghentikan MySQL sementara dan menambahkan direktori otentikasi sebelum mengubah kata sandi. Edit virtualmin.ymlmengandung yang berikut ini.

- 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

Peran Ansible sekarang selesai dan kami siap digunakan.

Langkah 6 - Lakukan instal dengan Ansible

Dari folder ansible, kita sekarang dapat menjalankan perintah berikut, dan Ansible akan melakukan semua tugas yang telah kita buat secara otomatis. Pertama kali Anda terhubung, Anda akan mendapatkan peringatan kunci SSH, cukup ketik " yes" di prompt.

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

Jika kita ingin menggunakan server lain, kita cukup mengubah alamat ip di file hosts dan menjalankan perintah itu lagi untuk menyelesaikan pengaturan yang persis sama.

Langkah 7 - Wizard pasca pemasangan Virtualmin

Instalasi selesai dan sekarang kita dapat pergi ke https://192.0.2.1:10000(gunakan alamat ip server Anda). Browser Anda akan mengeluarkan peringatan keamanan karena sertifikat ditandatangani sendiri, jadi klik advanceddan tambahkan pengecualian. Anda akan disajikan halaman login. Nama pengguna adalah root, dan kata sandi adalah yang Anda masukkan ke group_vars/allfile di langkah 3. Pertama kali Anda memasuki Virtualmin Anda akan disajikan dengan wizard pasca-instalasi. Anda bisa melalui pengaturan ini secara manual atau klik canceluntuk menerima default.

Langkah 8 - Buat server dan instal WordPress

Untuk menjalankan dan menjalankan server Wordpress pertama Anda, dari dasbor Virtualmin klik Create Virtual Server. Anda harus memasukkan nama domain, deskripsi, dan kata sandi administrator. Nama domain harus berbeda dari nama domain Virtualmin yang sepenuhnya memenuhi syarat, dan Anda harus mengarahkan data DNS ke alamat ip server Anda.

Klik Create Server. Setelah Virtualmin selesai membuat server Anda, klik Install Scriptsmenu sebelah kiri. Pilih Wordpress, klik Show install options, dan pada halaman berikut pilih lokasi instalasi Wordpress. Cukup pilih At top leveldan klik Install Now.

Itu semua yang perlu Anda lakukan - Anda dapat menyelesaikan instalasi Wordpress dengan mengunjungi Anda http://example.net/wp-admin/install.php(di mana example.netnama domain server virtual ini). Jika catatan DNS Anda belum disebarkan, Anda dapat membuka Services > Preview Websitedari menu Virtualmin.

Anda dapat mengulangi langkah ini beberapa kali untuk membuat beberapa situs Wordpress di server Vultr yang sama.



Leave a Comment

Instal WordPress di OpenBSD 6.2

Instal WordPress di OpenBSD 6.2

Pendahuluan WordPress adalah sistem manajemen konten yang dominan di internet. Ini memberdayakan semuanya, mulai dari blog hingga situs web kompleks dengan konten dinamis

Instal dan Konfigurasi Blog Ghost v1.0.0 di Ubuntu 16.04

Instal dan Konfigurasi Blog Ghost v1.0.0 di Ubuntu 16.04

Ghost adalah platform penerbitan sumber terbuka modern yang dibangun di atas Node.js dengan klien admin Ember.js, API JSON, dan API tema yang ditenagai oleh Handlebars.js. Ghos

Cara Menyebarkan Ghost v0.11 LTS di Ubuntu 16.04

Cara Menyebarkan Ghost v0.11 LTS di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Ghost adalah platform blogging sumber terbuka yang telah mendapatkan popularitas di kalangan pengembang dan pengguna biasa sejak 201 nya

Cara Menyebarkan Hantu di Debian 8.7

Cara Menyebarkan Hantu di Debian 8.7

Menggunakan Sistem yang Berbeda? Ghost adalah platform blogging sumber terbuka yang mulai populer di kalangan pengembang dan pengguna biasa sejak dirilis pada 2013. saya

Cara Memasang Dotclear di Debian 9 (Stretch)

Cara Memasang Dotclear di Debian 9 (Stretch)

Menggunakan Sistem yang Berbeda? Dotclear adalah mesin blog yang sangat sederhana. Ini adalah open-source dan mudah digunakan. Tutorial ini akan melalui instalasi pada

Menyiapkan Platform Penerbitan Ghost Profesional di OpenBSD 6

Menyiapkan Platform Penerbitan Ghost Profesional di OpenBSD 6

Ghost adalah pemula baru dan terbaik untuk menyaingi WordPress. Pengembangan tema cepat dan mudah dipelajari karena pengembang Ghost memutuskan untuk menggunakan keduanya

Menjalankan WordPress di OpenBSD 6.5 dengan OpenBSDs HTTPD

Menjalankan WordPress di OpenBSD 6.5 dengan OpenBSDs HTTPD

Pendahuluan Semakin dekat Anda memasang OpenBSD ke default dan tanpa banyak paket tambahan, semakin aman. Sementara yang lebih umum

Cara Memasang MODX Revolution pada VPS LAMPU Fedora 26

Cara Memasang MODX Revolution pada VPS LAMPU Fedora 26

Menggunakan Sistem yang Berbeda? MODX Revolution adalah Sistem Manajemen Konten (CMS) yang cepat, fleksibel, dapat diskalakan, gratis, dan sumber terbuka.

Memasang Fork CMS pada CentOS 7

Memasang Fork CMS pada CentOS 7

Menggunakan Sistem yang Berbeda? Fork adalah CMS open source yang ditulis dalam PHP. Kode sumber Forks di-host di GitHub. Panduan ini akan menunjukkan cara menginstal Fork CM

Cara Memasang Penata Jenis CMS pada CentOS 7

Cara Memasang Penata Jenis CMS pada CentOS 7

Typesetter adalah CMS open source yang ditulis dalam PHP yang berfokus pada kemudahan penggunaan dengan pengeditan True WYSIWYG dan penyimpanan file-datar. Pada artikel ini, kita akan menginstalin

Cara Memasang MODX Revolution pada CentOS 7 LAMP VPS

Cara Memasang MODX Revolution pada CentOS 7 LAMP VPS

Menggunakan Sistem yang Berbeda? MODX Revolution adalah Sistem Manajemen Konten (CMS) yang cepat, fleksibel, dapat diskalakan, gratis, dan sumber terbuka.

Cara Memasang Dotclear di Ubuntu 16.04

Cara Memasang Dotclear di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Dotclear adalah mesin blog yang sangat sederhana yang telah dibangun di atas PHP. Dalam tutorial ini, kita akan menginstal Dotclear di Ubunt

Cara Memasang Neos CMS pada CentOS 7

Cara Memasang Neos CMS pada CentOS 7

Neos adalah sistem manajemen konten sumber terbuka inovatif yang bagus untuk membuat dan mengedit konten online. Dengan mengingat penulis dan editor, Neo

Membuat Blog Jekyll di CentOS 7

Membuat Blog Jekyll di CentOS 7

Menggunakan Sistem yang Berbeda? Jekyll adalah alternatif yang bagus untuk WordPress. Itu tidak memerlukan basis data apa pun dan berfungsi dengan bahasa yang banyak dikenalnya

Menginstal Fork CMS di Ubuntu 16.04 LTS

Menginstal Fork CMS di Ubuntu 16.04 LTS

Menggunakan Sistem yang Berbeda? Fork adalah CMS open source yang ditulis dalam PHP. Kode sumber Forks di-host di GitHub. Panduan ini akan menunjukkan cara menginstal Fork CM

Membuat Blog Jekyll di Ubuntu 16.04

Membuat Blog Jekyll di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Jekyll adalah alternatif yang bagus untuk WordPress untuk blogging atau berbagi konten. Itu tidak memerlukan database apa pun dan sangat mudah saya

Menyiapkan WordPress Dengan WooCommerce di CentOS 6

Menyiapkan WordPress Dengan WooCommerce di CentOS 6

Contoh Vultr adalah cara yang bagus untuk menjalankan blog WordPress Anda, tetapi ekstensi yang lebih penting untuk WordPress adalah WooCommerce, sebuah plugin eCommerce yang memperluas

Memasang Fork CMS pada Debian 9

Memasang Fork CMS pada Debian 9

Menggunakan Sistem yang Berbeda? Fork adalah CMS open source yang ditulis dalam PHP. Kode sumber Forks di-host di GitHub. Panduan ini akan menunjukkan cara menginstal Fork CM

Cara Menyebarkan Ghost di Ubuntu 16.04

Cara Menyebarkan Ghost di Ubuntu 16.04

Menggunakan Sistem yang Berbeda? Ghost adalah platform blogging sumber terbuka yang mulai populer di kalangan pengembang dan pengguna biasa sejak dirilis pada 2013. saya

Memasang Fork CMS di Fedora 28

Memasang Fork CMS di Fedora 28

Menggunakan Sistem yang Berbeda? Fork adalah CMS open source yang ditulis dalam PHP. Kode sumber Forks di-host di GitHub. Panduan ini akan menunjukkan cara menginstal Fork CM

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut