Automatización de actualizaciones de software con Cosmovisor

Descripción general

Cosmovisor es un sofisticado administrador de procesos diseñado para facilitar una alternativa sencilla al initiad startcomando convencional. Está diseñado para su uso tanto manual como como servicio del sistema, proporcionando actualizaciones automáticas perfectas para blockchains que utilizan Cosmos SDK.

Paso 1: instalar Cosmovisor

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

Paso 2: configurar Cosmovisor

export DAEMON_HOME=~/.initia
export DAEMON_NAME=initiad

cosmovisor init `<path-to-executable>`
cp `<shared-library-path>` $DAEMON_HOME/cosmovisor/current/bin/

# only if there is planned upgrade
export UPGRADE_NAME=<upgrade-name>
export UPGRADE_VERSION=<upgrade-version>

mkdir -p $DAEMON_HOME/cosmovisor/upgrades/$UPGRADE_NAME/bin
cp `<path-to-upgrade-executable>` \
   `<path-to-upgrade-shared-library>` \
   $DAEMON_HOME/cosmovisor/upgrades/$UPGRADE_NAME/bin

Paso 3: configurar el archivo de servicio del sistema

[Unit]
Description=initiad

[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/go/bin/cosmovisor run start --home /home/ubuntu/.initia
WorkingDirectory=/home/ubuntu/.initia
Restart=on-abort
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=initiad
LimitNOFILE=4096
Environment="DAEMON_NAME=initiad"
Environment="DAEMON_HOME=/home/ubuntu/.initia" 
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="LD_LIBRARY_PATH=/home/ubuntu/.initia/cosmovisor/current/bin"

[Install]
WantedBy=multi-user.target

Paso 4: reiniciar iniciado

sudo systemctl daemon-reload
sudo systemctl restart initiad 

Last updated