Come distribuire più siti Wordpress usando Virtualmin e Ansible su Ubuntu 16.04

Un uso comune di un server virtuale Vultr è l'hosting di siti Web Wordpress. Questa guida mostra come automatizzare da zero la configurazione di un server virtuale (usando Ansible) e distribuire più siti Web Wordpress indipendenti (usando Webmin / Virtualmin). Virtualmin / Webmin è un'interfaccia utente grafica che consente di gestire la distribuzione di più account di server virtuali sullo stesso computer (completo di stack LAMP / LEMP). Virtualmin è molto simile a cPanel e Plesk e in questo tutorial utilizzeremo l'edizione GPL gratuita. Dopo la configurazione iniziale del server Vultr e l'installazione di Virtualmin, è possibile configurare molto rapidamente più server virtuali dall'interfaccia di Virtualmin e installare direttamente Wordpress su quel server virtuale completo con il proprio nome di dominio.

In questo tutorial, invece di inserire manualmente un lungo elenco di comandi, utilizzeremo invece Ansible. Ansible è uno strumento di automazione basato su Python che consente di automatizzare in modo affidabile e ripetuto le attività del server. Ciò significa che dopo aver seguito questo tutorial, sarai in grado di distribuire un altro server allo stesso modo con solo un paio di comandi.

Prerequisiti

  • Almeno un nome di dominio completo e accesso ai record DNS
  • Un account Vultr

Passaggio 1: installazione di Ansible sul computer locale

Installa Ansible sul tuo computer locale o su un altro server.

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

Passaggio 2: generare le chiavi SSH e distribuire il server

Ansible funziona accedendo al server tramite SSH. L'accesso a SSH è più sicuro se utilizziamo le chiavi anziché una password. Generiamo prima una coppia di chiavi pubblica e privata.

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

Nella ssh_keysdirectory ora ci saranno due file ssh_keyse ssh_keys.pub. ssh_keysè il tuo file di chiave privata e dovrebbe essere tenuto al sicuro. Ora puoi aprire il ssh_keys.pub, che contiene la chiave pubblica.

Accedi alla dashboard web Vultr e fai clic Deploy New Server.

Seleziona una regione, il tipo di server (Ubuntu 16.04), le dimensioni del server e quindi nella parte 6 ( SSH keys), fai clic su Add New. Nella pagina successiva incolla la tua chiave pubblica, assegnagli un nome e fai clic Add SSH key. Assicurati infine che la chiave sia selezionata e fai clic Deploy now.
Una volta terminata la distribuzione del server, ti verrà mostrato il suo indirizzo IP. Dovrai accedere al server DNS del tuo nome di dominio e puntarlo a questo indirizzo.

Passaggio 3: creare una configurazione Ansible di base

Vengono chiamati i file di automazione di Ansible roles. Prima imposteremo la struttura della directory (all'interno della ansibledirectory appena creata nel passaggio 1) e i file di base.

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

Modifica il hostsfile per contenere quanto segue, sostituendo il ip addressper il server appena creato. Ansible usa python 2, che Ubuntu 16.04 non ha installato di default. Nel hostsfile diciamo ad Ansible di usare Python 3.

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

Modifica il deploy.ymlfile per contenere quanto segue. Utilizzeremo l' rootutente.

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

Modifica il /group_vars/allfile per contenere quanto segue. Queste variabili indicano ad Ansible l'ubicazione delle chiavi SSH, i parametri del file di scambio, il nome di dominio completo e la password di root. Ricorda di non includere il file nel controllo del codice sorgente poiché contiene la password in chiaro.

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

Modifica il common/handlers/main.ymlfile per contenere quanto segue.

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

Passaggio 4: creare attività Ansible per la configurazione di base del server

L'automazione sensibile è più facile da capire se la suddividiamo in attività. Creiamo file per ciascuna delle nostre attività nel processo.

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

main.yml dovrebbe puntare a ciascun file contenente i comandi Ansible, quindi modificalo per contenere quanto segue.

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

Il primo passo per configurare un nuovo server è aggiornare la cache dei repository e impostare il fuso orario. Modifica il common/handlers/setup.ymlfile per contenere quanto segue.

- apt: update_cache=yes
  sudo: yes

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

Ora forniremo all'utente root una password (di cui avremo bisogno per accedere all'interfaccia web di virtualmin), ma disabiliteremo gli accessi password tramite SSH (poiché stiamo utilizzando il metodo di autenticazione con chiavi più sicure). Modifica users.ymlper contenere quanto segue.

- 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

Per sicurezza, abbiamo bisogno di un firewall. Utilizzeremo il firewall semplice per consentire l'accesso SSH sulla porta 22, l'accesso Web sulla porta 80e l'accesso Web sicuro sulla porta 443. Modifica il ufw.ymlfile per contenere quanto segue.

- 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

Facoltativamente, è possibile includere un file di scambio. Questo è essenziale se il tuo server ha meno di 2 GB di RAM per evitare arresti anomali della memoria. Modifica swap.ymlper contenere quanto segue.

- 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

Passaggio 5: aggiungere l'attività Ansible per l'installazione di virtualmin

Virtualmin ha il suo file di installazione che può essere scaricato ed eseguito da Ansible. Qui stiamo usando l'installazione minima ( LINK). Gli elementi aggiuntivi sono la configurazione della password del server MySQL che non è impostata quando installata da Virtualmin. È necessario arrestare temporaneamente MySQL e aggiungere la directory di autenticazione prima di modificare la password. Modifica virtualmin.ymlper contenere quanto segue.

- 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

Il ruolo Ansible è ora terminato e siamo pronti per la distribuzione.

Passaggio 6: eseguire l'installazione con Ansible

Dalla cartella ansible, ora possiamo semplicemente eseguire il seguente comando e Ansible eseguirà tutte le attività che abbiamo creato automaticamente. La prima volta che ti connetti riceverai un avviso chiave SSH, basta digitare " yes" al prompt.

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

Se desideriamo utilizzare un altro server, possiamo semplicemente cambiare l'indirizzo IP nel file hosts ed eseguire nuovamente quel comando per completare esattamente la stessa configurazione.

Passaggio 7: procedura guidata di post-installazione di Virtualmin

L'installazione è completa e ora possiamo andare a https://192.0.2.1:10000(usare l'indirizzo IP del tuo server). Il tuo browser emetterà un avviso di sicurezza perché il certificato è autofirmato, quindi fai clic su advancede aggiungi un'eccezione. Ti verrà presentata una pagina di accesso. Il nome utente è roote la password è quella immessa nel group_vars/allfile al passaggio 3. La prima volta che si accede a Virtualmin, verrà visualizzata la procedura guidata di post-installazione. È possibile passare manualmente attraverso queste impostazioni o fare clic cancelper accettare le impostazioni predefinite.

Passaggio 8: creare un server e installare WordPress

Per avviare e far funzionare il tuo primo server Wordpress, dalla dashboard di Virtualmin fai clic su Create Virtual Server. Devi inserire un nome di dominio, una descrizione e una password dell'amministratore. Il nome di dominio dovrebbe essere diverso dal nome di dominio completo di Virtualmin e dovrai indirizzare il record DNS all'indirizzo IP del tuo server.

Fare clic Create Server. Una volta che Virtualmin ha terminato di creare il tuo server, fai clic Install Scriptssul menu a sinistra. Seleziona Wordpress, fai clic Show install optionse nella pagina seguente scegli la posizione dell'installazione di Wordpress. Basta scegliere At top levele fare clic Install Now.

Questo è tutto ciò che devi fare: puoi completare l'installazione di Wordpress visitando il tuo http://example.net/wp-admin/install.php(dove si example.nettrova questo nome di dominio dei server virtuali). Se i tuoi record DNS non si sono ancora propagati, puoi andare Services > Preview Websitedal menu Virtualmin.

Puoi ripetere questo passaggio più volte per creare più siti Wordpress tutti sullo stesso server Vultr.



Leave a Comment

Installazione di Fork CMS su Fedora 28

Installazione di Fork CMS su Fedora 28

Usi un sistema diverso? Fork è un CMS open source scritto in PHP. Il codice sorgente di Forks è ospitato su GitHub. Questa guida ti mostrerà come installare Fork CM

Come distribuire Ghost v0.11 LTS su CentOS 7.3

Come distribuire Ghost v0.11 LTS su CentOS 7.3

Usi un sistema diverso? Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dal suo 201

Come distribuire Ghost v0.11 LTS su Debian 8

Come distribuire Ghost v0.11 LTS su Debian 8

Usi un sistema diverso? Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dal suo 201

Come installare MODX Revolution su un Fedora 26 LAMP VPS

Come installare MODX Revolution su un Fedora 26 LAMP VPS

Usi un sistema diverso? MODX Revolution è un sistema di gestione dei contenuti (CMS) rapido, flessibile, scalabile, gratuito e open source di livello aziendale scritto i

Come installare MODX Revolution su un FPS VPS di FreeBSD 11

Come installare MODX Revolution su un FPS VPS di FreeBSD 11

Usi un sistema diverso? MODX Revolution è un sistema di gestione dei contenuti (CMS) rapido, flessibile, scalabile, di livello aziendale scritto in PHP. Io

Come installare MODX Revolution su un Debian 9 LAMP VPS

Come installare MODX Revolution su un Debian 9 LAMP VPS

Usi un sistema diverso? MODX Revolution è un sistema di gestione dei contenuti (CMS) rapido, flessibile, scalabile, gratuito e open source di livello aziendale scritto i

Esecuzione di WordPress su OpenBSD 6.5 con HTTPD OpenBSD

Esecuzione di WordPress su OpenBSD 6.5 con HTTPD OpenBSD

Introduzione Più vicino manterrai linstallazione di OpenBSD al valore predefinito e senza altrettanti pacchetti aggiunti, più sicura sarà. Mentre più commo

Installa WordPress su OpenBSD 6.2

Installa WordPress su OpenBSD 6.2

Introduzione WordPress è il sistema di gestione dei contenuti dominante su Internet. Alimenta tutto, dai blog ai siti Web complessi con contenuti dinamici

Come distribuire Ghost su Debian 8.7

Come distribuire Ghost su Debian 8.7

Usi un sistema diverso? Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dalla sua versione del 2013. io

Come installare Dotclear su Debian 9 (Stretch)

Come installare Dotclear su Debian 9 (Stretch)

Usi un sistema diverso? Dotclear è un motore di blogging molto semplice. È open-source e facile da usare. Questo tutorial eseguirà linstallazione su

Come installare Neos CMS su CentOS 7

Come installare Neos CMS su CentOS 7

Neos è un innovativo sistema di gestione dei contenuti open source che è ottimo per creare e modificare contenuti online. Con in mente autori ed editori, Neo

Configurare WordPress con WooCommerce su CentOS 6

Configurare WordPress con WooCommerce su CentOS 6

Le istanze Vultr sono un ottimo modo per eseguire il tuo blog WordPress, ma unestensione più notevole di WordPress è WooCommerce, un plug-in e-commerce che estende

Configurare Ghost Professional Publishing Platform su OpenBSD 6

Configurare Ghost Professional Publishing Platform su OpenBSD 6

Ghost è lultimo e il migliore in assoluto per competere con WordPress. Lo sviluppo del tema è rapido e facile da imparare perché gli sviluppatori Ghost hanno deciso di utilizzare entrambi

Installa e configura un blog Ghost v1.0.0 su Ubuntu 16.04

Installa e configura un blog Ghost v1.0.0 su Ubuntu 16.04

Ghost è una moderna piattaforma di pubblicazione open source costruita su Node.js con un client di amministrazione Ember.js, unAPI JSON e unAPI tematica basata su Handlebars.js. ghos

Come distribuire Ghost v0.11 LTS su Ubuntu 16.04

Come distribuire Ghost v0.11 LTS su Ubuntu 16.04

Usi un sistema diverso? Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dal suo 201

Installazione di Fork CMS su CentOS 7

Installazione di Fork CMS su CentOS 7

Usi un sistema diverso? Fork è un CMS open source scritto in PHP. Il codice sorgente di Forks è ospitato su GitHub. Questa guida ti mostrerà come installare Fork CM

Come installare il tipografo CMS su CentOS 7

Come installare il tipografo CMS su CentOS 7

Typesetter è un CMS open source scritto in PHP incentrato sulla facilità duso con lediting True WYSIWYG e larchiviazione di file flat. In questo articolo, verremo installati

Come installare MODX Revolution su un Ubuntu 16.04 LAMP VPS

Come installare MODX Revolution su un Ubuntu 16.04 LAMP VPS

Usi un sistema diverso? MODX Revolution è un sistema di gestione dei contenuti (CMS) rapido, flessibile, scalabile, gratuito e open source di livello aziendale scritto i

Come distribuire Ghost v0.11 LTS su Fedora 25

Come distribuire Ghost v0.11 LTS su Fedora 25

Usi un sistema diverso? Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dal suo 201

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.