Com implementar diversos llocs de Wordpress mitjançant Virtualmin i Ansible a Ubuntu 16.04

Un ús comú d'un servidor virtual Vultr és allotjar llocs web de Wordpress. Aquesta guia us mostra com automatitzar la configuració d'un servidor virtual des de zero (utilitzant Ansible) i desplegar diversos llocs web independents de Wordpress (utilitzant Webmin/Virtualmin). Virtualmin/Webmin és una interfície d'usuari gràfica que us permet gestionar el desplegament de diversos comptes de servidor virtual a la mateixa màquina (complet amb la pila LAMP/LEMP). Virtualmin és molt semblant a cPanel i Plesk, i en aquest tutorial farem servir l'edició gratuïta GPL. Després de la configuració inicial del servidor Vultr i la instal·lació de Virtualmin, podeu configurar ràpidament diversos servidors virtuals des de la interfície de Virtualmin i instal·lar directament Wordpress en aquest servidor virtual amb el seu propi nom de domini.

En aquest tutorial, en comptes d'introduir manualment una llarga llista d'ordres, utilitzarem Ansible. Ansible és una eina d'automatització basada en Python que us permet automatitzar de manera fiable i repetida les tasques del servidor. Això vol dir que un cop hàgiu seguit aquest tutorial, podreu desplegar un altre servidor de la mateixa manera amb només un parell d'ordres.

Requisits previs

  • Almenys un nom de domini totalment qualificat i accés als registres DNS
  • Un compte de Vultr

Pas 1: instal·leu Ansible a la vostra màquina local

Instal·leu Ansible a la vostra màquina local o a un altre servidor.

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

Pas 2: genereu claus SSH i implementeu el servidor

Ansible funciona iniciant sessió al vostre servidor mitjançant SSH. L'accés SSH és més segur si fem servir claus en lloc d'una contrasenya. Primer generem un parell de claus públiques i privades.

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

Al ssh_keysdirectori ara hi haurà dos fitxers ssh_keysi ssh_keys.pub. ssh_keysés el vostre fitxer de clau privada i s'ha de mantenir segur. Ara podeu obrir el ssh_keys.pub, que conté la clau pública.

Inicieu sessió al tauler web de Vultr i feu clic a Deploy New Server.

Seleccioneu una regió, tipus de servidor (Ubuntu 16.04), mida del servidor i, a continuació, a la part 6 ( SSH keys), feu clic a Add New. A la pàgina següent, enganxeu la vostra clau pública i doneu-li un nom i feu clic a Add SSH key. Finalment, assegureu-vos que la clau estigui seleccionada i feu clic a Deploy now.
Un cop el servidor s'hagi acabat de desplegar, se us mostrarà la seva adreça IP. Haureu d'iniciar sessió al servidor DNS del vostre nom de domini i apuntar-lo a aquesta adreça.

Pas 3: creeu una configuració bàsica d'Ansible

Els fitxers d'automatització d'Ansible s'anomenen roles. Primer configurarem l'estructura de directoris (dins del ansibledirectori que acabeu de crear al pas 1) i els fitxers bàsics.

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

Editeu el hostsfitxer perquè contingui el següent, substituint ip addressel servidor que acabeu de crear. Ansible utilitza Python 2, que Ubuntu 16.04 no té instal·lat per defecte. Al hostsfitxer diem a Ansible que utilitzi Python 3.

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

Editeu el deploy.ymlfitxer perquè contingui el següent. Anem a utilitzar l' rootusuari.

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

Editeu el /group_vars/allfitxer perquè contingui el següent. Aquestes variables indiquen a Ansible la ubicació de les vostres claus SSH, els paràmetres del fitxer d'intercanvi, el vostre nom de domini totalment qualificat i la contrasenya d'arrel. Recordeu no incloure el fitxer al control de fonts, ja que conté la vostra contrasenya en text clar.

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

Editeu el common/handlers/main.ymlfitxer perquè contingui el següent.

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

Pas 4: creeu tasques Ansible per a la configuració bàsica del servidor

L'automatització Ansible és més fàcil d'entendre si la desglossem en tasques. Creem fitxers per a cadascuna de les nostres tasques en el procés.

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

main.yml hauria d'apuntar a cada fitxer que contingui les ordres Ansible, així que editeu-lo perquè contingui el següent.

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

El primer pas per configurar un nou servidor és actualitzar la memòria cau del repositori i configurar la zona horària. Editeu el common/handlers/setup.ymlfitxer perquè contingui el següent.

- apt: update_cache=yes
  sudo: yes

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

Ara, donarem a l'usuari root una contrasenya (que necessitarem per accedir a la interfície web virtualmin), però desactivarem els inicis de sessió amb contrasenya mitjançant SSH (ja que estem utilitzant el mètode d'autenticació de claus més segur). Edita users.ymlperquè contingui el següent.

- 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 seguretat, necessitem un tallafoc. Utilitzarem el tallafocs sense complicacions per permetre l'accés SSH al port 22, l'accés web al port 80i l'accés web segur al port 443. Editeu el ufw.ymlfitxer perquè contingui el següent.

- 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

Opcionalment, podeu incloure un fitxer d'intercanvi. Això és essencial si el vostre servidor té menys de 2 GB de RAM per evitar fallades de memòria. Edita swap.ymlperquè contingui el següent.

- 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

Pas 5: afegiu una tasca Ansible per a la configuració de virtualmin

Virtualmin té el seu propi fitxer d'instal·lació que Ansible pot descarregar i executar. Aquí estem utilitzant la instal·lació mínima ( LINK). Els elements addicionals són per configurar la contrasenya del servidor MySQL que no s'estableix quan Virtualmin la instal·la. Hem d'aturar temporalment MySQL i afegir el directori d'autenticació abans de canviar la contrasenya. Edita virtualmin.ymlperquè contingui el següent.

- 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

El rol d'Ansible s'ha acabat i estem preparats per desplegar-lo.

Pas 6: feu la instal·lació amb Ansible

Des de la carpeta ansible, ara només podem executar l'ordre següent i Ansible durà a terme totes les tasques que hem creat automàticament. La primera vegada que us connecteu, rebreu un avís de clau SSH, només heu d'escriure " yes" a la sol·licitud.

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

Si volem utilitzar un altre servidor, simplement podem canviar l'adreça IP al fitxer hosts i executar aquesta ordre de nou per completar exactament la mateixa configuració.

Pas 7: assistent de postinstal·lació de Virtualmin

La instal·lació s'ha completat i ara podem anar a https://192.0.2.1:10000(utilitza l'adreça IP del teu servidor). El vostre navegador emetrà un avís de seguretat perquè el certificat està signat automàticament, així que feu clic advancedi afegeix una excepció. Se us presentarà una pàgina d'inici de sessió. El nom d'usuari és root, i la contrasenya és la que heu introduït al group_vars/allfitxer al pas 3. La primera vegada que entreu a Virtualmin, se us presentarà l'assistent de post-instal·lació. Podeu passar per aquests paràmetres manualment o fer clic cancelper acceptar els valors predeterminats.

Pas 8: creeu un servidor i instal·leu WordPress

Per posar el vostre primer servidor Wordpress en funcionament, feu clic al tauler de control de Virtualmin Create Virtual Server. Haureu d'introduir un nom de domini, una descripció i una contrasenya d'administrador. El nom de domini hauria de ser diferent del nom de domini totalment qualificat de Virtualmin i haureu d'apuntar el registre DNS a l'adreça IP del vostre servidor.

Feu clic a Create Server. Un cop Virtualmin hagi acabat de crear el vostre servidor, feu clic Install Scriptsal menú de l'esquerra. Seleccioneu Wordpress, feu clic Show install optionsi, a la pàgina següent, trieu la ubicació de la instal·lació de Wordpress. Només has de triar At top leveli fer clic Install Now.

Això és tot el que heu de fer: podeu completar la instal·lació de Wordpress visitant el vostre http://example.net/wp-admin/install.php(on example.netés el nom de domini d'aquest servidor virtual). Si els vostres registres DNS encara no s'han propagat, podeu anar Services > Preview Websitedes del menú Virtualmin.

Podeu repetir aquest pas diverses vegades per crear diversos llocs de Wordpress al mateix servidor Vultr.


Creació dun bloc Jekyll a Ubuntu 16.04

Creació dun bloc Jekyll a Ubuntu 16.04

Utilitzeu un sistema diferent? Jekyll és una gran alternativa a WordPress per crear blocs o compartir contingut. No requereix cap base de dades i és molt fàcil

Com instal·lar MODX Revolution en un Ubuntu 16.04 LAMP VPS

Com instal·lar MODX Revolution en un Ubuntu 16.04 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, de codi obert i de grau empresarial escrit en PHP. És jo

Instal·leu WordPress a OpenBSD 6.2

Instal·leu WordPress a OpenBSD 6.2

Introducció WordPress és el sistema de gestió de continguts dominant a Internet. Potencia tot, des de blocs fins a llocs web complexos amb contingut dinàmic

Creació dun bloc Jekyll a CentOS 7

Creació dun bloc Jekyll a CentOS 7

Utilitzeu un sistema diferent? Jekyll és una bona alternativa a WordPress. No requereix cap base de dades i funciona amb un llenguatge que molts coneixen

Com instal·lar MODX Revolution en un CentOS 7 LAMP VPS

Com instal·lar MODX Revolution en un CentOS 7 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Instal·lació de Fork CMS a CentOS 7

Instal·lació de Fork CMS a CentOS 7

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com instal·lar el Neos CMS a CentOS 7

Com instal·lar el Neos CMS a CentOS 7

Neos és un innovador sistema de gestió de continguts de codi obert ideal per crear i editar contingut en línia. Tenint en compte els autors i editors, Neo

Com implementar Ghost v0.11 LTS a CentOS 7.3

Com implementar Ghost v0.11 LTS a CentOS 7.3

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que ha anat guanyant popularitat entre desenvolupadors i usuaris corrents des del 201.

Com instal·lar SilverStripe CMS en un FreeBSD 11 FAMP VPS

Com instal·lar SilverStripe CMS en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? SilverStripe és un sistema de gestió de continguts (CMS) de codi obert, flexible i extensible, escrit en PHP. És fàcil

Com implementar Ghost v0.11 LTS a Fedora 25

Com implementar Ghost v0.11 LTS a Fedora 25

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que ha anat guanyant popularitat entre desenvolupadors i usuaris corrents des del 201.

Com implementar diversos llocs de Wordpress mitjançant Virtualmin i Ansible a Ubuntu 16.04

Com implementar diversos llocs de Wordpress mitjançant Virtualmin i Ansible a Ubuntu 16.04

Un ús comú d'un servidor virtual Vultr és allotjar llocs web de Wordpress. Aquesta guia us mostra com automatitzar la configuració d'un servidor virtual des de zero

Configuració de la plataforma de publicació professional Ghost a OpenBSD 6

Configuració de la plataforma de publicació professional Ghost a OpenBSD 6

Ghost és l'últim i millor advenent que rivalitza amb WordPress. El desenvolupament de temes és ràpid i fàcil d'aprendre perquè els desenvolupadors de Ghost van decidir utilitzar tots dos

Instal·leu i configureu un bloc Ghost v1.0.0 a Ubuntu 16.04

Instal·leu i configureu un bloc Ghost v1.0.0 a Ubuntu 16.04

Ghost és una plataforma de publicació moderna i de codi obert construïda a Node.js amb un client d'administració Ember.js, una API JSON i una API temàtica impulsada per Handlebars.js. Ghos

Com instal·lar MODX Revolution en un Fedora 26 LAMP VPS

Com instal·lar MODX Revolution en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Com instal·lar Dotclear a Debian 9 (Stretch)

Com instal·lar Dotclear a Debian 9 (Stretch)

Utilitzeu un sistema diferent? Dotclear és un motor de blocs molt senzill. És de codi obert i fàcil d'utilitzar. Aquest tutorial passarà per la instal·lació

Instal·lació de Fork CMS a Ubuntu 16.04 LTS

Instal·lació de Fork CMS a Ubuntu 16.04 LTS

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com implementar Ghost a Debian 8.7

Com implementar Ghost a Debian 8.7

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que està guanyant popularitat entre desenvolupadors i usuaris normals des del seu llançament el 2013. jo

Instal·lació de Fork CMS a Debian 9

Instal·lació de Fork CMS a Debian 9

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com instal·lar Typesetter CMS a CentOS 7

Com instal·lar Typesetter CMS a CentOS 7

Typesetter és un CMS de codi obert escrit en PHP centrat en la facilitat d'ús amb l'edició True WYSIWYG i l'emmagatzematge de fitxers plans. En aquest article, ens instal·larem

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació