Skip to main content

MIGRANDO O ARCHIVEMATICA PARA UM NOVO SERVIDOR

A migração do archivematica foi de um servidor CentOS 7.9 para Rocky Linux 9.4

A versão do archivematica era o 1.14.1 e foi migrado para 1.16.0

Atualizando o sistema operacional:

sudo yum -y update

Se o seu ambiente usar SELinux, você precisará executar no mínimo os seguintes comandos. Configuração adicional pode ser necessária para sua configuração local.

# Allow Nginx to use ports 81 and 8001
sudo semanage port -m -t http_port_t -p tcp 81
sudo semanage port -a -t http_port_t -p tcp 8001
# Allow Nginx to connect the MySQL server and Gunicorn backends
sudo setsebool -P httpd_can_network_connect_db=1
sudo setsebool -P httpd_can_network_connect=1
# Allow Nginx to change system limits
sudo setsebool -P httpd_setrlimit 1

Alguns repositórios extras precisam ser instalados para cumprir o procedimento de instalação.

sudo -u root yum install -y epel-release yum-utils
sudo -u root yum-config-manager --enable crb

INSTALANDO OS REPOSITÓRIOS DO ELASTICSEARCH E O ARCHIVEMATICA

  • Elasticsearch
sudo -u root rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF'
  • Archivematica
sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/archivematica.repo
[archivematica]
name=archivematica
baseurl=https://packages.archivematica.org/1.15.x/rocky9/
gpgcheck=1
gpgkey=https://packages.archivematica.org/GPG-KEY-archivematica-sha512
enabled=1
EOF'

sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/archivematica-extras.repo
[archivematica-extras]
name=archivematica-extras
baseurl=https://packages.archivematica.org/1.15.x/rocky9-extras
gpgcheck=1
gpgkey=https://packages.archivematica.org/GPG-KEY-archivematica-sha512
enabled=1
EOF'

INSTALANDO O ELASTICSEARCH, MARIADB E GEARMAND

Serviços comuns como Elasticsearch, MariaDB e Gearmand devem ser instalados e habilitados antes da instalação do Archivematica.

sudo -u root yum install -y java-1.8.0-openjdk-headless mariadb-server gearmand
sudo -u root yum install -y elasticsearch
sudo -u root systemctl enable elasticsearch
sudo -u root systemctl start elasticsearch
sudo -u root systemctl enable mariadb
sudo -u root systemctl start mariadb
sudo -u root systemctl enable gearmand
sudo -u root systemctl start gearmand

MIGRANDO OS BANCOS NO MARIADB

CRIANDO O DUMP DOS BANCOS

No servidor de origem:

mysqldump -u root -p MCP > ~/am_backup.sql
mysqldump -u root -p storage_service > ~/storage_service.sql

Agora devemos copiá-los para o servidor de destino.

CRIANDO O BANCO DE DADOS DO ARCHIVEMATICA E DO STORAGE SERVICE

Agora que o MariaDB está instalado e funcionando, crie os bancos de dados Archivematica e Storage Service e configure as credenciais esperadas.

sudo -H -u root mysql -hlocalhost -uroot -e "DROP DATABASE IF EXISTS MCP; CREATE DATABASE MCP CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
sudo -H -u root mysql -hlocalhost -uroot -e "DROP DATABASE IF EXISTS storage_service; CREATE DATABASE SS CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
sudo -H -u root mysql -hlocalhost -uroot -e "CREATE USER 'archivematica'@'localhost' IDENTIFIED BY '<omitida>';"
sudo -H -u root mysql -hlocalhost -uroot -e "GRANT ALL ON MCP.* TO 'archivematica'@'localhost';"
sudo -H -u root mysql -hlocalhost -uroot -e "GRANT ALL ON storage_service.* TO 'archivematica'@'localhost';"
FAZENDO O RESTORE DO BANCO

Uma vez copiados os dumps, devemos restaurá-lo nos bancos recém criados.

mysql -u root -p MCP < ~/am_backup.sql
mysql -u root -p storage_service < ~/storage_service.sql

MIGRANDO O INDICE NO ELASTICSEARCH

CONFIGURANDO O CAMINHO DO REPOSITÓRIO

O repositório dos snapshots no SciELO é um ponto de montagem NFS. Este ponto NFS deve ser montado no novo servidor. Mas antes instale o pacote nfs-utils:

sudo yum install nfs-utils -y

Crie o diretório  do repositório:

sudo mkdir /var/lib/elasticsearch/backup-repo

Configure o /etc/fstab para persistir:

storage-scielo-251.scielo.org:/archivematica_es_bkp /var/lib/elasticsearch/backup-repo nfs vers=4,rsize=8192,wsize=8192,timeo=14,intr 0 0

Agora basta montar:

sudo systemctl daemon-reload
sudo mount -a
ADICIONADO O ELASTICSEARCH NA CONFIGURAÇÃO

Edite o arquivo  /etc/elasticsearch/elasticsearch.yml e adicione a linha abaixo de path.logs:

path.repo: /var/lib/elasticsearch/backup-repo

Reinicie o elasticsearch

sudo systemctl restart elasticsearch

Devemos garantir que o usuário elasticsearch seja o dono do diretório /var/lib/elasticsearch/backup-repo:

sudo chown elasticsearch. -R /var/lib/elasticsearch/backup-repo
CRIANDO O REPOSITÓRIO
curl -XPUT -H 'Content-Type: application/json' 'http://localhost:9200/_snapshot/es_backup_archivematica' -d '{
    "type": "fs",
    "settings": {
        "compress" : true,
        "location": "/var/lib/elasticsearch/backup-repo/es_backup_archivematica"
    }
 }'

Consulte o repositório:

curl -X GET "localhost:9200/_cat/snapshots/es_backup_archivematica?v&s=id&pretty"

image.png

RESTAURANDO O ÚLTIMO SNAPSHOT
curl -X POST "localhost:9200/_snapshot/es_backup_archivematica/20240917-235942/_restore?pretty"
LISTANDO OS INDICES RESTAURADOS
curl -X GET "http://localhost:9200/_cat/indices?v"

image.png

MIGRANDO O ARCHIVEMATICA STORAGE SERVICE

Instale o serviço de armazenamento Archivematica Storage Service

sudo -u root yum install -y python-pip archivematica-storage-service

Copie o arquivo /etc/sysconfig/archivematica-storage-service do servidor de origem

Instale o Archivematica Dashboard e o MCP Service e Client:

sudo -u root yum install -y archivematica-common archivematica-mcp-server archivematica-dashboard archivematica-mcp-client

Copie o arquivo /etc/sysconfig/archivematica-dashboard, /etc/sysconfig/archivematica-storage-service e o  /etc/sysconfig/archivematica-mcp-client do servidor de origem.

APLICANDO A MIGRAÇÃO DO BANCO DO ARCHIVEMATICA

sudo -u archivematica bash -c " \
    set -a -e -x
    source /etc/default/archivematica-dashboard || \
        source /etc/sysconfig/archivematica-dashboard \
            || (echo 'Environment file not found'; exit 1)
    cd /usr/share/archivematica/dashboard
    /usr/share/archivematica/virtualenvs/archivematica/bin/python manage.py migrate --noinput
";

APLICANDO A MIGRAÇÃO DO BANCO DO ARCHIVEMATICA STORAGE SERVICE

sudo -u archivematica bash -c " \
    set -a -e -x
    source /etc/default/archivematica-storage-service || \
        source /etc/sysconfig/archivematica-storage-service \
            || (echo 'Environment file not found'; exit 1)
    cd /usr/lib/archivematica/storage-service
    /usr/share/archivematica/virtualenvs/archivematica-storage-service/bin/python manage.py migrate
";

Reiniciando os serviços:

sudo systemctl restart archivematica-storage-service
sudo systemctl restart archivematica-dashboard
sudo systemctl restart archivematica-mcp-client
sudo systemctl restart archivematica-mcp-server
sudo -u root systemctl enable nginx
sudo -u root systemctl start nginx
sudo -u root systemctl enable rngd
sudo -u root systemctl start rngd

CONFIGURANDO O ANTI-VIRUS

sudo -u root sed -i 's/^#TCPSocket/TCPSocket/g' /etc/clamd.d/scan.conf
sudo -u root sed -i 's/^Example//g' /etc/clamd.d/scan.conf

Depois disso, podemos ativar e iniciar/reiniciar serviços

sudo -u root systemctl enable archivematica-mcp-client
sudo -u root systemctl start archivematica-mcp-client
sudo -u root systemctl enable fits-nailgun
sudo -u root systemctl start fits-nailgun
sudo -u root systemctl enable clamd@scan
sudo -u root systemctl start clamd@scan
sudo -u root systemctl restart archivematica-dashboard
sudo -u root systemctl restart archivematica-mcp-server

CONFIGURANDO O NGINX

O archivematica-dashboard e o archivematica-storage-service terão um vhost configurado:

/etc/nginx/conf.d/archivematica-dashboard.conf

server {
  listen 80 default_server;
  client_max_body_size 256M;
  server_name _;
  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_buffering off;
    proxy_read_timeout 172800s;
    proxy_pass http://localhost4:7400;
  }
}

/etc/nginx/conf.d/archivematica-storage-service.conf

server {
  listen 8001 default_server;
  client_max_body_size 256M;
  server_name _;
  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_buffering off;
    proxy_read_timeout 172800s;
    proxy_pass http://localhost4:7500;
    proxy_http_version 1.1;
  }
}

Agora iremos configurar o proxy reverso no ha-1 para ativar o https:

/etc/nginx/conf.d/archivematica-scielo-org.conf

upstream archivematica {
    server 192.168.2.126:80;
}

server {
    listen 443 http2;
    server_name archivematica.scielo.org;
    ssl_certificate /certificados2/scielo.org/fullchain.pem;
    ssl_certificate_key /certificados2/scielo.org/privkey.pem;
    ssl on;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security max-age=15768000;
    keepalive_timeout   150s;
    client_max_body_size 100M;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-SSL-Protocal $ssl_protocol;
        proxy_redirect http:// $scheme://;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://archivematica;
        proxy_http_version 1.1;
        proxy_read_timeout 900s;
        proxy_redirect      off;
        allow all;
}

    gzip on;
    access_log /var/log/nginx/archivematica-scielo-org/archivematica-scielo-org.log;
    error_log /var/log/nginx/archivematica-scielo-org/archivematica-scielo-org-error.log warn;
}

server {
    listen 80;
    server_name archivematica.scielo.org;
    return 301 https://$server_name$request_uri;

}