# 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 <span class="s1">/etc/elasticsearch/elasticsearch.yml e adicione a linha abaixo de </span><span class="s1">path.logs:</span>

```
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](https://documentacao.scielo.org/uploads/images/gallery/2024-09/scaled-1680-/VMUimage.png)](https://documentacao.scielo.org/uploads/images/gallery/2024-09/VMUimage.png)

##### RESTAURANDO O ÚLTIMO SNAPSHOT

```
curl -X POST "localhost:9200/_snapshot/es_backup_archivematica/20240917-235942/_restore?pretty"
```

##### <span class="s1">LISTANDO OS INDICES RESTAURADOS</span>

```
curl -X GET "http://localhost:9200/_cat/indices?v"
```

[![image.png](https://documentacao.scielo.org/uploads/images/gallery/2024-09/scaled-1680-/7SDimage.png)](https://documentacao.scielo.org/uploads/images/gallery/2024-09/7SDimage.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/<span class="s1">archivematica-storage-service e o </span><span class="s1">/etc/sysconfig/archivematica-mcp-client </span>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:

<span class="s1">/etc/nginx/conf.d/</span><span class="s2">archivematica-dashboard.conf</span>

```
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;
  }
}
```

<span class="s1">/etc/nginx/conf.d/archivematica-storage-service.conf</span>

```
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:

<span class="s1">/etc/nginx/conf.d/archivematica-scielo-org.conf</span>

```
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;

}

```

#### MIGRANDO OS DADOS

Os dados que estão em <span class="s1">/var/archivematica/ devem ser migrados e as permissões ajustadas para o usuário archivematica.</span>

```
[root@node01-archivematica ~]# ls -lha /var/archivematica/
total 16K
drwxr-xr-x.   5 archivematica archivematica   75 Sep 18 17:03 .
drwxr-xr-x.  21 root          root          4.0K Sep 18 16:58 ..
drwxr-xr-x.  15 archivematica archivematica 4.0K Jul 19  2023 sharedDirectory
drwxrwx---.   2 archivematica archivematica   24 Sep 17 09:47 storage-service
drwxr-xr-x. 172 archivematica archivematica 4.0K Sep 19 16:14 storage_service
```

#### REFERÊNCIA

[https://www.archivematica.org/en/docs/archivematica-1.15/admin-manual/installation-setup/installation/install-rocky/#install-pkg-rocky](https://www.archivematica.org/en/docs/archivematica-1.15/admin-manual/installation-setup/installation/install-rocky/#install-pkg-rocky)

[https://www.archivematica.org/pt-br/docs/archivematica-1.15/admin-manual/installation-setup/upgrading/upgrading/#upgrade](https://www.archivematica.org/pt-br/docs/archivematica-1.15/admin-manual/installation-setup/upgrading/upgrading/#upgrade)

[https://www.archivematica.org/en/docs/storage-service-0.22/migration-sqlite-mysql/#migration-sqlite-mysql](https://www.archivematica.org/en/docs/storage-service-0.22/migration-sqlite-mysql/#migration-sqlite-mysql)

[https://www.archivematica.org/en/docs/archivematica-1.12/admin-manual/maintenance/maintenance/](https://www.archivematica.org/en/docs/archivematica-1.12/admin-manual/maintenance/maintenance/)