PM2 / Monit - Migración al systemd

PM2 / Monit - Migración al systemd

Asegúrese de haber iniciado sesión como usuario no root que se utiliza para ejecutar zend y el tracker de nodos seguro.

  • Instalar paquetes de la guía oficial.

  • Detener el rastreador con pm2.

  • Actualización del rastreador (tracker) a la versión 10.12.0 

  • Crear unidades systemd para el rastreador de nodos (node tracker).

  • Iniciar el rastreador (tracker) con systemd.

  • Pare zend con monit.

  • Crear unidades systemd para zend.

  • Inicie zend con systemd.

  • Verificar el estado de zend y zendtracker.

  • Habilitar unidades de servicio en el arranque.

  • Asegúrese de que Firewall sea monitoreado por systemd.

  • Mata y elimina pm2.

  • Eliminar y purgar monit.

  • acme.sh - Migración a certbot

Descripción

Comando

Descripción

Comando

1

Instalar el repositorio universal y los paquetes para certbot y asegurarse de que otros paquetes estén instalados y actualizados desde la guía oficial.

sudo apt install software-properties-common -y

Salta esta instrucción si tienes un Sistema Debian, NO SALTAR OTRAS INSTRUCCIONES EN ESTE PASO 

sudo add-apt-repository universe -y

Asegurarse de copiar el comando entero, especialmente para comandos largos.

sudo apt-get install build-essential software-properties-common apt-transport-https lsb-release dirmngr pwgen git jq ufw curl aria2 -y
2

Actualice el caché del paquete.

sudo apt-get update
3

Instale curl y agregue el repositorio nodejs y actualice el paquete caché.

 

NOTA: Omita este paso para Ubuntu

Debian 9 solamente

sudo apt-get install curl -y curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get update
4

Instale npm, actualizándolo a la última versión.

sudo apt-get install npm -y && sudo npm install -g n && sudo n latest
5

Detener el rastreador de nodos (node tracker).

NOTA: Si por alguna razón tiene más de un rastreador ejecutándose en pm2, puede tener que cambiar "0" al número que corresponde con su rastreador y detenerlos también. Puede obtener una lista de los números ejecutando: pm2 list

pm2 stop 0
6

Cambia el directorio a donde el rastreador de nodos (node tracker) fue clonado, esta dirección sería  ~/nodetracker para la guía oficial. Para versiones menos recientes y para otras guías sería ~/zencash/secnodetracker for older documentation or other guides

cd ~/nodetracker

Ejecuta el siguiente comando si el comando de arriba falla debido a que el directorio no existe.

mv ~/zencash/secnodetracker ~/nodetracker && cd ~/nodetracker
7

Actualiza git con la nueva URL del repositorio y recupera el último código fuente

git checkout -- package.json git remote set-url origin https://github.com/ZencashOfficial/nodetracker.git git fetch origin git checkout master git pull

NOTA: Si git devuelve un error con respecto a cualquier archivo, ejecute el siguiente comando (reemplazando 'filename con el archivo que le causo error, desplegado en el mensaje de error) y repita los comandos anteriores.

git checkout -- filename
8

Instale el último conjunto de módulos de nodos necesarios para el rastreador.

npm install
9

 

Solamente ejecuta los pasos 9 y 10 si estos aún no se han ejecutado. Si ya actualizaste al rastreador de nodos (node tracker) 0.3.1, estos pasos ya están completados.

10

Ubique las direcciones IPv4 y / o IPv6 públicas de su nodo y añádalas al archivo zen.conf como direcciones IP externas conectadas a través del puerto 9033 (predeterminado)

SOLO LOS SUPER NODOS SON NECESITAN REALIZAR CADA COMANDO EN ESTE PASO

LOS NODOS SEGUROS REQUIEREN AL MENOS UNA DIRECCIÓN EXTERNA Y PUERTO AÑADIDAS EN ZEN.CONF

NOTA: los nodos seguros solo requieren un tipo de IP, los Super Nodos requieren ambos tipos.

NOTA: Reemplace <IPv4> con el IPv4 público de su nodo, elimine <corchetes>

NOTA: Reemplace <IPv6> con el IPv6 público de su nodo en notación comprimida sin ceros a la izquierda, elimine <corchetes>

Utilice el siguiente enlace para asegurarse de que su dirección IPv6 esté en notación comprimida:

https://www.ultratools.com/tools/ipv6Compress

Cree variables ambientales para IPv4.

IPV4=<IPv4>

Añada el IPv4 externo a zen.conf

echo "externalip=$IPV4" >> ~/.zen/zen.conf

Cree variables ambientales para IPv6.

IPV6=<IPv6>

Añada el IPv6 externo a zen.conf

echo "externalip=$IPV6" >> ~/.zen/zen.conf

Añada el puerto a zen.conf - NODO SEGURO Y SUPER NODO

echo "port=9033" >> ~/.zen/zen.conf
11

Ejecute nuevamente la configuración del nodo para actualizar la lista de servidores de seguimiento e inicialice el nuevo rastreador (tracker), presione enter a través de cada uno de los valores para retener el conjunto actual

  • Ingrese 'secure' para la solicitud en la categoría 'node category'.

node setup.js
12

Pare zend con monit, luego pare monit. Se muestra que ambos comandos se detienen a través de systemctl y sysinit (solo se necesita uno, pero ambos están aquí para completar)

sudo monit stop zend && sleep 8 sudo systemctl stop monit sudo service monit stop
13

Cree un archivo de unidad systemd para zend, copie y pegue todo el bloque de texto.

echo \ "[Unit] Description=Zen daemon [Service] User=$USER Type=forking ExecStart=/usr/bin/zend -daemon -pid=$HOME/.zen/zend.pid PIDFile=$HOME/.zen/zend.pid Restart=always RestartSec=10 [Install] WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zend.service
14

Pruebe el archivo de la unidad zend.

sudo systemctl start zend && sleep 30
15

Cree un archivo de unidad systemd para el Rastreador de Nodo (Node Tracker), copie y pegue todo el bloque de texto

echo \ "[Unit] Description=Zen node daemon installed on ~/nodetracker/ [Service] User=$USER Type=simple WorkingDirectory=$HOME/nodetracker/ ExecStart=$(which node) $HOME/nodetracker/app.js Restart=always RestartSec=10 [Install] WantedBy=multi-user.target" | sudo tee /lib/systemd/system/zentracker.service
16

Pruebe el archivo de la unidad de seguimiento (tracker).

sudo systemctl start zentracker
17

Siga el resultado del registro del rastreador (tracker) para verificar que todo se vea bien, si todo parece correcto, salga con CTRL + C

sudo journalctl -fu zentracker

 

18

Revisa el estado de ambos, de zend y el rastreador (tracker), estos dos deben de desplegar "active (running)". Si la revisión de estado no te regresa al comando de línea, salga de la revisión de estado presionando CTRL + C.

sudo systemctl status zend zentracker

 

19

Si ambos funcionan correctamente, habilítelos en el arranque.

sudo systemctl enable zend zentracker
20

Use systemctl para habilitar el firewall.

NOTA: Muchas guías carecían de habilitar esto bajo systemctl.

Si el firewall no está instalado, ver: Parte 5 - Asegurando el Host

sudo ufw -f enable sudo systemctl start ufw sudo systemctl enable ufw sudo systemctl status ufw

 

21

Eliminar pm2 del inicio.

sudo rm /etc/systemd/system/pm2* sudo rm /etc/systemd/system/multi-user.target.wants/pm2*
22

Aborta el proceso y elimina PM2 (si todo lo anterior se ejecutó sin error)

Puede ver un mensaje sobre la actualización de npm, puede ignorar esto

pm2 kill sudo npm remove pm2 -g sudo rm -r ~/.pm2

 

 

23

Elimine monit que arranque del inicio (es posible que no necesite ambos comandos, ambos están presentes para acomodar el script systemd o init)

Ejecute ambos comandos si no está seguro de qué manera se configuró Monit

 

NOTA: Se espera que vea un error si ejecuta el comando que no corresponde a como se configuró Monit. Puede descartar de forma segura los errores del único comando de los dos presentados aquí.

sudo systemctl disable monit sudo update-rc.d monit remove
24

Remueve y purga monit del sistema y elimina los repositorios antiguos (si todo lo anterior se ejecutó sin error)

 

sudo apt-get remove monit -y sudo apt-get purge monit -y sudo apt-get -y autoremove rm -rf ~/zen_node.sh
25

acme.sh - Migración al certbot