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

Penggunaan biasa pelayan maya Vultr adalah untuk menghoskan laman web Wordpress. Panduan ini menunjukkan kepada anda bagaimana mengautomasikan konfigurasi pelayan maya dari awal (menggunakan Ansible) dan menyebarkan beberapa laman web Wordpress bebas (menggunakan Webmin / Virtualmin). Virtualmin / Webmin adalah antara muka pengguna grafik yang membolehkan anda menguruskan penyebaran beberapa akaun pelayan maya 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 percuma. Selepas penyediaan awal pelayan Vultr dan pemasangan Virtualmin, anda dapat dengan cepat menyediakan beberapa pelayan maya dari antara muka Virtualmin dan memasang Wordpress secara langsung pada pelayan maya yang lengkap dengan nama domainnya sendiri.

Dalam tutorial ini, daripada memasukkan senarai perintah yang panjang secara manual, kita akan menggunakan Ansible. Ansible adalah alat automasi berasaskan python yang membolehkan anda mengautomasikan tugas pelayan dengan pasti dan berulang kali. Ini bermakna setelah anda mengikuti tutorial ini, anda akan dapat menggunakan pelayan lain dengan cara yang sama hanya dengan beberapa perintah.

Prasyarat

  • Sekurang-kurangnya satu Nama Domain yang Berkelayakan Penuh dan akses ke rekod DNS
  • Akaun Vultr

Langkah 1 - Memasang Ansible pada mesin tempatan anda

Pasang Ansible pada mesin tempatan anda atau pelayan lain.

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

Langkah 2 - Hasilkan kekunci SSH dan gunakan pelayan

Ansible berfungsi dengan masuk ke pelayan anda melalui SSH. Akses SSH paling selamat jika kita menggunakan kunci dan bukannya kata laluan. Mari kita jana pasangan kunci awam dan swasta terlebih dahulu.

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

Di dalam ssh_keysdirektori sekarang akan ada dua fail, ssh_keysdan ssh_keys.pub. ssh_keysadalah fail kunci peribadi anda dan harus disimpan dengan selamat. Anda kini boleh membuka ssh_keys.pub, yang mengandungi kunci awam.

Log masuk ke papan pemuka web Vultr dan klik Deploy New Server.

Pilih wilayah, Jenis pelayan (Ubuntu 16.04), saiz pelayan, dan kemudian di bahagian 6 ( SSH keys), klik Add New. Pada halaman seterusnya tampal kunci awam anda dan beri nama, dan klik Add SSH key. Akhirnya pastikan kunci dipilih dan klik Deploy now.
Setelah pelayan selesai menggunakan anda akan ditunjukkan alamat ipnya. Anda perlu log masuk ke pelayan DNS nama domain anda dan arahkan ke alamat ini.

Langkah 3 - Buat konfigurasi Ansible asas

Fail automasi Ansible dipanggil roles. Kami pertama kali akan menyiapkan struktur direktori (di dalam ansibledirektori yang baru anda buat pada langkah 1), dan fail asasnya.

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

Edit hostsfail untuk mengandungi yang berikut, menggantikan ip addresspelayan yang baru anda buat. Ansible menggunakan python 2, yang belum dipasang oleh Ubuntu 16.04 secara lalai. Dalam hostsfail kami memberitahu Ansible untuk menggunakan python 3.

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

Edit deploy.ymlfail untuk mengandungi yang berikut. Kami akan menggunakan rootpengguna.

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

Edit /group_vars/allfail untuk mengandungi yang berikut. Pemboleh ubah ini memberitahu Ansible lokasi kunci SSH anda, parameter fail pertukaran, Nama Domain yang Layak sepenuhnya dan kata laluan root. Harap ingat jangan memasukkan fail dalam kawalan sumber kerana mengandungi kata laluan 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.ymlfail untuk mengandungi yang berikut.

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

Langkah 4 - Buat tugas-tugas Ansible untuk penyediaan pelayan asas

Automasi yang boleh difahami lebih mudah difahami jika kita membahagikannya kepada tugas. Mari buat fail untuk setiap tugas kami 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 fail yang mengandungi perintah Ansible, jadi edit untuk mengandungi yang berikut.

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

Langkah pertama dalam menyediakan pelayan baru adalah mengemas kini cache repo dan menetapkan zon waktu. Edit common/handlers/setup.ymlfail untuk mengandungi yang berikut.

- apt: update_cache=yes
  sudo: yes

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

Sekarang, kami akan memberikan kata laluan kepada pengguna root (yang kami perlukan untuk mengakses antara muka web virtualmin), tetapi melumpuhkan log masuk kata laluan melalui SSH (kerana kami menggunakan kaedah pengesahan kunci yang lebih selamat). Edit users.ymluntuk mengandungi yang berikut.

- 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 keselamatan, kami memerlukan firewall. Kami akan menggunakan Firewall Tanpa Komplikasi untuk membenarkan akses SSH di port 22, akses web di port 80dan akses web selamat di port 443. Edit ufw.ymlfail untuk mengandungi yang berikut.

- 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

Sebagai pilihan, anda boleh memasukkan fail pertukaran. Ini penting sekiranya pelayan anda mempunyai RAM kurang dari 2GB untuk mengelakkan kehabisan memori. Edit swap.ymluntuk mengandungi yang berikut.

- 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 - Tambah tugas Ansible untuk persediaan virtualmin

Virtualmin mempunyai fail pemasangnya sendiri yang boleh dimuat turun dan dijalankan oleh Ansible. Di sini kita menggunakan pemasangan minimum ( LINK). Item tambahan adalah untuk mengkonfigurasi kata laluan pelayan MySQL yang tidak ditetapkan ketika dipasang oleh Virtualmin. Kita perlu menghentikan sementara MySQL dan menambahkan direktori pengesahan sebelum menukar kata laluan. Edit virtualmin.ymluntuk mengandungi yang berikut.

- 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

Peranan Ansible kini selesai dan kami sudah bersedia untuk digunakan.

Langkah 6 - Lakukan pemasangan dengan Ansible

Dari folder ansible, kita sekarang hanya dapat menjalankan perintah berikut, dan Ansible akan melaksanakan semua tugas yang kita buat secara automatik. Kali pertama anda menyambung, anda akan mendapat amaran kunci SSH, cukup taip " yes" pada arahan.

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

Sekiranya kita ingin menggunakan pelayan lain, kita hanya dapat mengubah alamat ip dalam fail host dan menjalankan perintah itu lagi untuk menyelesaikan persiapan yang sama.

Langkah 7 - Wizard pasca pemasangan Virtualmin

Pemasangan selesai dan sekarang kita boleh pergi ke https://192.0.2.1:10000(gunakan alamat ip pelayan anda). Penyemak imbas anda akan mengeluarkan amaran keselamatan kerana sijil ditandatangani sendiri, jadi klik advanceddan tambahkan pengecualian. Anda akan diberikan halaman log masuk. Nama pengguna adalah root, dan kata laluan adalah yang anda masukkan ke group_vars/alldalam langkah 3. Pada kali pertama anda memasukkan Virtualmin, anda akan diberikan wizard pasca pemasangan. Anda boleh melalui tetapan ini secara manual atau klik canceluntuk menerima lalai.

Langkah 8 - Buat pelayan dan pasang WordPress

Untuk menghidupkan dan menjalankan pelayan Wordpress pertama anda, dari klik papan pemuka Virtualmin Create Virtual Server. Anda perlu memasukkan nama domain, keterangan dan kata laluan pentadbir. Nama domain harus berbeza dengan nama domain yang memenuhi syarat Virtualmin, dan anda perlu mengarahkan catatan DNS ke alamat ip pelayan anda.

Klik Create Server. Setelah Virtualmin selesai membuat pelayan anda, klik Install Scriptspada menu sebelah kiri. Pilih Wordpress, klik Show install options, dan pada halaman berikut pilih lokasi pemasangan Wordpress. Cukup pilih At top leveldan klik Install Now.

Itu sahaja yang perlu anda lakukan - anda boleh menyelesaikan pemasangan Wordpress dengan mengunjungi http://example.net/wp-admin/install.php(di mana example.netnama domain pelayan maya ini). Sekiranya rekod DNS anda belum disebarkan, anda boleh pergi Services > Preview Websitedari menu Virtualmin.

Anda boleh mengulangi langkah ini berkali-kali untuk membuat banyak laman Wordpress semuanya di pelayan Vultr yang sama.



Leave a Comment

Cara Menyebarkan Ghost v0.11 LTS di Fedora 25

Cara Menyebarkan Ghost v0.11 LTS di Fedora 25

Menggunakan Sistem Berbeza? Ghost adalah platform blog sumber terbuka yang telah mendapat populariti di kalangan pembangun dan pengguna biasa sejak tahun 201

Pasang WordPress di OpenBSD 6.2

Pasang WordPress di OpenBSD 6.2

Pengenalan WordPress adalah sistem pengurusan kandungan yang dominan di internet. Ini memberi kuasa kepada semua dari blog ke laman web yang kompleks dengan kandungan dinamik

Cara Memasang Revolusi MODX pada FreeBSD 11 FAMP VPS

Cara Memasang Revolusi MODX pada FreeBSD 11 FAMP VPS

Menggunakan Sistem Berbeza? MODX Revolution adalah Sistem Pengurusan Kandungan (CMS) bertaraf perusahaan yang cepat, fleksibel, berskala, terbuka, yang ditulis dalam PHP. Ia i

Cara Memasang Neos CMS di CentOS 7

Cara Memasang Neos CMS di CentOS 7

Neos adalah sistem pengurusan kandungan sumber terbuka yang inovatif yang bagus untuk membuat dan menyunting kandungan dalam talian. Dengan pemikiran pengarang dan editor, Neo

Memasang CMS Fork pada Fedora 28

Memasang CMS Fork pada Fedora 28

Menggunakan Sistem Berbeza? Fork adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber garpu dihoskan pada GitHub. Panduan ini akan menunjukkan cara memasang Fork CM

Cara Memasang Revolusi MODX pada VPS Debian 9 LAMP

Cara Memasang Revolusi MODX pada VPS Debian 9 LAMP

Menggunakan Sistem Berbeza? MODX Revolution adalah Sistem Pengurusan Kandungan (CMS) bertaraf perusahaan yang pantas, fleksibel, berskala, bebas dan terbuka, bertulis i

Cara Menyebarkan Hantu pada Debian 8.7

Cara Menyebarkan Hantu pada Debian 8.7

Menggunakan Sistem Berbeza? Ghost adalah platform blog sumber terbuka yang semakin popular di kalangan pembangun dan pengguna biasa sejak dilancarkan pada tahun 2013. Saya

Menyiapkan WordPress Dengan WooCommerce di CentOS 6

Menyiapkan WordPress Dengan WooCommerce di CentOS 6

Contoh Vultr adalah cara terbaik untuk menjalankan blog WordPress anda, tetapi peluasan yang lebih ketara untuk WordPress ialah WooCommerce, plugin eCommerce yang meluas

Memasang CMS Fork pada Debian 9

Memasang CMS Fork pada Debian 9

Menggunakan Sistem Berbeza? Fork adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber garpu dihoskan pada GitHub. Panduan ini akan menunjukkan cara memasang Fork CM

Cara Menyebarkan Ghost v0.11 LTS di Ubuntu 16.04

Cara Menyebarkan Ghost v0.11 LTS di Ubuntu 16.04

Menggunakan Sistem Berbeza? Ghost adalah platform blog sumber terbuka yang telah mendapat populariti di kalangan pembangun dan pengguna biasa sejak tahun 201

Cara Menyebarkan Ghost di Ubuntu 16.04

Cara Menyebarkan Ghost di Ubuntu 16.04

Menggunakan Sistem yang berbeza? Ghost adalah platform blog sumber terbuka yang semakin popular di kalangan pembangun dan pengguna biasa sejak dilancarkan pada tahun 2013. Saya

Cara Pasang Dotclear pada Debian 9 (Stretch)

Cara Pasang Dotclear pada Debian 9 (Stretch)

Menggunakan Sistem Berbeza? Dotclear adalah mesin blog yang sangat mudah. Ia adalah sumber terbuka dan mudah digunakan. Tutorial ini akan melalui pemasangan pada

Cara Memasang Revolusi MODX pada Fedora 26 LAMP VPS

Cara Memasang Revolusi MODX pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? MODX Revolution adalah Sistem Pengurusan Kandungan (CMS) bertaraf perusahaan yang pantas, fleksibel, berskala, bebas dan terbuka, bertulis i

Memasang Fork CMS di CentOS 7

Memasang Fork CMS di CentOS 7

Menggunakan Sistem Berbeza? Fork adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber garpu dihoskan pada GitHub. Panduan ini akan menunjukkan cara memasang Fork CM

Cara Memasang Typesetter CMS di CentOS 7

Cara Memasang Typesetter CMS di CentOS 7

Typesetter adalah CMS sumber terbuka yang ditulis dalam PHP yang difokuskan pada kemudahan penggunaan dengan penyuntingan True WYSIWYG dan penyimpanan fail rata. Dalam artikel ini, kita akan installin

Menyiapkan Platform Penerbitan Profesional Profesional di OpenBSD 6

Menyiapkan Platform Penerbitan Profesional Profesional di OpenBSD 6

Ghost adalah yang terbaru dan hebat untuk menyaingi WordPress. Pengembangan tema cepat dan mudah dipelajari kerana pembangun Ghost memutuskan untuk menggunakan kedua

Membuat Blog Jekyll di CentOS 7

Membuat Blog Jekyll di CentOS 7

Menggunakan Sistem yang berbeza? Jekyll adalah alternatif yang baik untuk WordPress. Ia tidak memerlukan pangkalan data dan berfungsi dengan bahasa yang tidak asing lagi

Cara Menyebarkan Ghost v0.11 LTS di CentOS 7.3

Cara Menyebarkan Ghost v0.11 LTS di CentOS 7.3

Menggunakan Sistem Berbeza? Ghost adalah platform blog sumber terbuka yang telah mendapat populariti di kalangan pembangun dan pengguna biasa sejak tahun 201

Running WordPress pada OpenBSD 6.5 dengan OpenBSDs HTTPD

Running WordPress pada OpenBSD 6.5 dengan OpenBSDs HTTPD

Pengenalan Semakin dekat anda memasang OpenBSD anda ke lalai dan tanpa banyak pakej tambahan, semakin selamat. Walaupun semakin banyak koma

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut