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.
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 -ySalta esta instrucción si tienes un Sistema Debian, NO SALTAR OTRAS INSTRUCCIONES EN ESTE PASO sudo add-apt-repository universe -yAsegurarse 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 ~/nodetrackerEjecuta 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 pullNOTA: 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: | Cree variables ambientales para IPv4. IPV4=<IPv4>Añada el IPv4 externo a zen.conf echo "externalip=$IPV4" >> ~/.zen/zen.confCree variables ambientales para IPv6. IPV6=<IPv6>Añada el IPv6 externo a zen.conf echo "externalip=$IPV6" >> ~/.zen/zen.confAñ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
| 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 |
| ||