> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/open-v5.2.1/linux/instalacion.md).

# Instalación

Este documento proporciona el manual de instalación del Sistema Editran.

Editran es una plataforma de comunicaciones, desarrollada por Indra, sobre redes de datos e Internet que posibilita la comunicación directa entre aplicaciones informáticas residentes en diferentes máquinas y sistemas operativos de diferentes empresas, organismos y entidades públicas o privadas.

El documento describe los procesos que es necesario realizar para instalar y configurar el Sistema Editran. También se incluyen los procesos necesarios para actualizar una instalación a su siguiente versión oficial.

El manual va dirigido a administradores de sistemas y se asume que el lector posee los conocimientos técnicos necesarios para realizar las tareas que en él se describen.

## Definiciones

* **Presentación:** Conjunto de parámetros que en Editran definen cada tipo de transmisión.
* **Editran/GC:** Módulo Editran para el intercambio de claves RSA.

## Pre-requisitos

### Requisitos Hardware

Las características hardware del equipo dependerán del nivel de carga de trabajo que se espere en cada despliegue del producto. Se da una configuración orientativa por tipos de instalación.

#### Procesador

Dada la diversidad de arquitecturas diferentes existentes para estos sistemas operativos, deben consultar con el fabricante de los equipos el que se adapte mejor a sus necesidades. En líneas generales el rendimiento del producto mejora con:

* Mayor velocidad del procesador.
* Mayor número de núcleos/hilos.

#### Espacio HDD

El disco necesario depende en gran parte del tamaño máximo de los ficheros transmitidos y del tiempo que se mantengan en el equipo. Al no conocerse de antemano, sólo se tienen en cuenta los siguientes factores:

* Espacio necesario para el software Editran. Depende del SO, pero no supera los 30 MB.
* Espacio necesario para datos de configuración del producto. Cada perfil de transmisión definido ocupa unos 35 KB. El total de transmisiones a configurar dependerá tanto del número de entidades con las que debamos comunicar como de los tipos de información intercambiada. Por tanto, para una instalación media (250 perfiles diferentes) habría que contar con 10 MB aproximadamente.
* Espacio para ficheros temporales creados por Editran durante las transmisiones. Por cada transmisión se necesitará tener espacio en disco para el triple del volumen de datos transferidos. En la tabla se da un dimensionamiento recomendado según el uso que se vaya a hacer del producto, basado en el número máximo de transmisiones concurrentes y el volumen de los ficheros intercambiados.

#### Dimensionamiento HDD

| Carga    | Nº Transmisiones | Tamaño Ficheros | Espacio HDD |
| -------- | ---------------- | --------------- | ----------- |
| Baja     | 1 - 25           | 50 MB           | 20 GB       |
| Estándar | 25 - 100         | 250 MB          | 140 GB      |
| Alta     | > 100            | 1 GB            | > 300 GB    |

#### Comunicaciones

* Tarjeta de red Ethernet para protocolo TCP/IP.

#### Soluciones de escalabilidad y alta disponibilidad

A nivel de infraestructuras para instalaciones que tengan estas necesidades se recomienda una solución de virtualización. Las implicaciones que tendría en el producto:

* Para que esta solución proporcione capacidades de escalabilidad, habría que asociarla a la instalación de múltiples instancias Editran aisladas, cada una gestionando su grupo de transmisiones.
* Es necesario instalar el componente Editran/PX que se configura para que enrute el tráfico entrante a la instancia que corresponda.

#### Arquitectura virtualización

![esquema arquitectura virtualizacion](https://261070666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2W4cn5C1WDTJzDOR25es%2Fuploads%2Fgit-blob-da2fd5fca3544945d93d3783b4bbfb8a41f48e4e%2Fimage1.png?alt=media)

### Requisitos Software

#### Sistemas Operativos

En entornos Unix se distribuyen paquetes de software para los SO y arquitecturas de la tabla. Los paquetes se generan y se prueban en las versiones dadas de cada SO, no obstante, es normal que sean compatibles con versiones superiores.

#### Paquetes software

| SO              | Arquitectura | Nombre                                  |
| --------------- | ------------ | --------------------------------------- |
| Linux Red Hat 8 | X86\_64      | Editran-v5.2.1.x-x86\_64-redhat8.tar.gz |
| Linux Red Hat 9 | X86\_64      | Editran-v5.2.1.x-x86\_64-redhat9.tar.gz |

#### Software adicional

* Es necesario que esté instalado el paquete ***OpenSSL***. En realidad, Editran sólo tiene dependencia de la librería **libcrypto** que es la que proporciona los algoritmos de cifrado simétrico y de clave pública usados en su criptografía. Para RHL8 la versión a instalar es **1.1.1**, para RHL9 la versión a instalar es **3.5**.
* Se debe disponer en el sistema anfitrión de una ***máquina virtual Java***, a partir de una versión **JRE-21**.

### Conectividad

* EDITRAN es un protocolo cliente/servidor. Para habilitar conexiones remotas desde cualquier otra entidad deberá disponer de acceso a Internet con una IP pública fija asignada y un puerto TCP abierto de entrada y/o salida (por defecto EDITRAN utiliza el puerto 7777).

> Se recomienda que el equipo dónde se instala EDITRAN esté en la red interna con una IP privada y la conexión a Internet se haga a través del módulo EDITRAN/PX desarrollado como pasarela para añadir más seguridad a las comunicaciones TCP/IP en redes públicas. Para obtener más información de este componente, consultar su Manual de usuario

## Instalación del sistema

### Tareas previas

#### Descarga de software Onesait Editran

Para la descarga del software acceda al portal para clientes EDITRAN: [Editran - Editran (onesait.com)](https://www.onesait.com/editran/).

En ***Recursos > Unix > Software*** encontrará enlaces a los paquetes software del producto para los Sistemas Operativos actualmente soportados.

Si necesita ayuda puede ponerse en contacto con el grupo de soporte en:

* Teléfono de soporte -- 91 480 80 80
* Dirección e-mail - <editran@minsait.com>

#### Creación del usuario editran

Aunque no es imprescindible, se recomienda crear una nueva cuenta de usuario especialmente creada para trabajar con editran. Por seguridad, sólo este usuario debería tener los permisos para ejecutar y configurar el sistema asumiendo el rol de administrador del producto.

### Procedimiento de instalación

* Como usuario ***root***, cree un directorio principal en un sistema de archivos que cuente con espacio suficiente para funcionar como ubicación destino de Editran. Por ejemplo:

> \# mkdir /opt/editran
>
> Copiar en este directorio el fichero de instalación con extensión **.tar.gz** descargado. Revisar el apartado de los requisitos software para calcular el espacio en disco que puede necesitar para su entorno de producción.

*Nota: En este documento en ocasiones se utiliza \<home-editran> como referencia para mencionar el directorio raíz de la instalación elegido, que por defecto se utiliza /opt/editran pero puede ser cambiado por otro. Si elige uno distinto, deberá sustituir cualquier referencia al directorio raíz /opt/editran por el elegido.*

* Cambie el propietario del directorio al usuario **editran**. Por ejemplo:

> \# chown --R editran /opt/editran

* Inicie sesión con usuario **editran**, cambie a directorio de instalación y extraiga los archivos del paquete software (en el ejemplo usando el paquete Linux Editran-v5.2.1.x-x86\_64-redhat8.tar.gz):

> $ cd /opt/editran
>
> $ tar --zxvpf Editran-v5.2.1.x-x86\_64-redhat8.tar

* El software descargado se estructura según el siguiente árbol de directorios:

```txt
\<home-editran>
      |-- bin
      |     |-- jar
      |     |-- lib
      |     |-- utils
      |     |-- SL
      |-- inst
      |-- cfg
      |-- log
      |-- tmp
```

* \<home-editran>: Creado por el usuario como directorio raíz del software de Editran.
* *\<home-editran>*/**bin**: Programas que implementan la funcionalidad de Editran.
* *\<home-editran>*/bin/**jar**: Librerías Java de la utilidad gráfica para administración del fichero de claves DES.
* *\<home-editran>*/bin/**lib**: Librerías de las que dependen los programas editran tanto las propias como las de terceros distribuidas con el producto
* *\<home-editran>*/bin/**utils**: Scripts que sirven como ejemplo para instalaciones en las que se necesite desarrollar procedimientos específicos previos y posteriores a las transmisiones.
* \*\<home-\*editran>/bin/**SL**: Servicio de gestión de licencia.
* *\<home-editran>*/**inst**: Scripts útiles durante el proceso de instalación del producto.
* *\<home-editran>*/**cfg**: Se crea vacío en la instalación y es dónde por defecto Editran dejará todos sus ficheros de configuración.
* *\<home-editran>*/**log**: En este directorio Editran deja los ficheros de log del sistema.
* *\<home-editran>*/**tmp**: Se crea vacío en la instalación. Editran lo usa como directorio para almacenar ficheros temporales generados durante las transmisiones: tampones, estado, etc...
* Crear fichero de claves DES (**ckds.des**). Se puede generar uno nuevo tal y como se explica en el apéndice 9.1, o bien se puede copiar el que va en la instalación:

```bash
cd <home-editran>/cfg
cp -p ckds.install ckds.des
```

* Dimensionar los ficheros de log cíclicos que sirven para monitorizar la actividad del sistema. El tamaño se da en número de mensajes guardados, en el ejemplo 20.000:

> $ ./makelog --n 20000

* Crear script de arranque de Editran (**EDItran**). Se debe copiar el que va en la instalación con nombre **EDItran.install**, para posteriormente editarlo si se requiere con [los parámetros de inicio](#parámetros-de-inicio):

```bash
cp -p EDItran.install EDItran
```

* Crear fichero de configuración del servicio de Licencia.

```bash
cp -p SL/App.conf.install SL/App.conf
```

* Antes de empezar a operar con Editran, es necesario continuar con las tareas posteriores a la instalación. Además, hay una configuración mínima del producto que debe hacerse antes de iniciar el sistema.

### Tareas posteriores

#### Verificar dependencias

La instalación de Editran incluye el script *\<home-editran>***/inst/depends** con el objeto de facilitar al administrador del sistema la tarea de identificar y resolver las dependencias de librerías de terceros que tiene el producto. El script se apoya en los comandos que cada SO proporciona para la gestión de paquetes software (rpm, pkginfo, etc.).

Se explican los pasos que realiza el script con ejemplos de diferentes resultados obtenidos.

* **Ejemplo 1**: Un caso de éxito en RHL9

```bash
#Dependencias:
-->OpenSSL v3
#Paquetes instalados [rpm]:
openssl V3.5.5
openssl-devel V3.5.5
openssl-fips-provider V3.0.7
openssl-fips-provider-so V3.0.7
openssl-libs V3.5.5
xmlsec1-openssl V1.2.29
#Resolviendo libcrypto.so.3  Ya esta resuelta
	libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f33c5a00000)
lrwxrwxrwx 1 root root 18 Apr 10 08:07 /lib64/libcrypto.so.3 -> libcrypto.so.3.5.5
```

* **Ejemplo 2**: OpenSSL no está instalado como paquete Sw pero el administrador conoce su ubicación.

```bash
#Dependencias:
-->OpenSSL v3

#Paquetes instalados [rpm]:
#Resolviendo libcrypto.so.3 ... no instalada
```

Suponiendo que la librería se encuentra en **/usr/lib**, se crearía el siguiente link:

```bash
cd \<home-editran>/bin/lib
ln -s /usr/lib/libcrypto.so.3.5.5 libcrypto.so.3
```

#### Licencia de uso

Para poder utilizar Editran es necesario disponer de una licencia válida emitida por **Indra**. El licenciamiento se realiza por equipo, así que la licencia queda asociada al servidor concreto en el que se va a arrancar el sistema.

Para solicitarla, siga estos pasos:

* Ejecute el script de generación del identificador del equipo:

  ```bash
  cd \<home-editran>/bin
  ./licencia.sh
  ```
* Envíe a <editran@minsait.com> el fichero **hostid\_dd-mm-yyyy.txt** generado por el script. Si dispone de una licencia anterior, adjunte también el fichero **licencia.dat** de esa instalación.
* Cuando reciba la nueva licencia por correo, copie el archivo adjunto en el directorio **bin/SL** y renómbrelo como **licencia.dat**.
* Proteja ese fichero para evitar modificaciones accidentales, ya que Editran deja de funcionar si la licencia no es válida o se altera.

## Configuración inicial del sistema

Una vez instalado EDITRAN es necesario realizar una serie de tareas con el objetivo de configurar el sistema, para que todos sus componentes puedan ejecutarse adecuadamente.

En este apartado se describe sólo la configuración mínima necesaria para que pueda arrancar el sistema, en los manuales de usuario de los componentes Editran/P y Editran/G se explica en detalle la manera en que se crean los perfiles para las transmisiones.

### Ajustes de configuración del Servidor de Licencia

En esta fase debe revisarse la configuración del servicio de licencia. Como mínimo, hay que ajustar el parámetro **BASE** y, además, de forma opcional, pueden personalizarse los puertos de escucha.

Estos parámetros se configuran en `<home-editran>/bin/SL/App.conf`:

* **BASE** (obligatorio)

  Define el directorio raíz asociado al servicio, donde se generan sus ficheros de trabajo (logs, informes, temporales, etc.).

  Puede establecerse explícitamente con la ruta de la carpeta SL. No obstante, salvo necesidad específica, **se recomienda dejar la línea comentada** para que el servicio use la ruta por defecto del producto.

  Ejemplo ajustando la ruta con el directorio adecuado:

  ```txt
  # Dir BASE de la Aplicación
  BASE: /opt/bin/SL
  ```

  Ejemplo comentando la línea:

  ```txt
  # Dir BASE de la Aplicación
  # BASE: <home-editran>/bin/SL
  ```
* **SL.PORTSRV** (opcional)

  Permite cambiar el puerto del servidor de licencia (valor por defecto: **50777**).

  ```txt
  # SL (Servidor Licencia)
  #-------------------------
  SL.PORTSRV: 50777
  ```

  Si se modifica, debe coincidir con el puerto definido en la variable **LICSRV** de [los parámetros de inicio](#parámetros-de-inicio). No utilice puertos reservados por Editran.
* **FC.PORTSRV** (opcional, solo si la licencia incluye facturación)

  Permite cambiar el puerto del servidor de facturación (valor por defecto: **50778**).

  ```txt
  # FC (Servidor Facturación)
  #---------------------------
  # Día del mes que se genera el informe
  #DIAINF: 1
  FC.PORTSRV: 50788
  ```

  Si se modifica, debe coincidir con el puerto definido en la variable **FACTSRV** de [los parámetros de inicio](#parámetros-de-inicio). No utilice puertos reservados por Editran.
* **DIAINF** (opcional, solo si la licencia incluye facturación)

  Indica el día del mes en que se genera el informe de facturación. Por defecto, se genera el día 1; descoméntelo solo si quiere otro valor.

  ```txt
  # FC (Servidor Facturación)
  #---------------------------
  # Día del mes que se genera el informe
  DIAINF: 2
  ```

### Entorno local

Para que EDITRAN pueda ejecutarse es imprescindible haber establecido los siguientes parámetros:

* **Código Entidad**: Indra asigna un código único que identifica a cada entidad/organismo en la red lógica EDITRAN.
* **IP y puerto del servicio**: Dirección IP del servidor y puerto TCP abierto para la escucha de conexiones remotas.

En el manual de usuario de EDITRAN/P \[Ref. 1-2] puede ver cómo realizar esta tarea desde la interfaz de usuario. Si se arranca el sistema sin estar definido, en el fichero **log/editranp.out** aparece el siguiente mensaje de error:

`10/11/2017 14:43:55.728 \[xinitenv.c] No existe perfil del entorno local`

## Parámetros de inicio

Hay otras propiedades que afectan al comportamiento de EDITRAN que se pueden parametrizar para establecer el entorno de ejecución en el momento de iniciar el Sistema. La forma de hacerlo es des-comentar y dar valor a las variables de entorno del script **EDItran**.

### Variables de entorno de editran

| **Variable**        | **Descripción**                                                                                                                                                                                                                                                                               | Valores admitidos                                   | Valor por defecto |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ----------------- |
| EDI\_IPC\_KEY\_BASE | Rango de puertos TCP usados para la comunicación entre los procesos Editran. Será necesario definirlo si coinciden con puertos ya en uso por otras aplicaciones.                                                                                                                              |                                                     | 8000              |
| EDI\_DATA           | Directorio para los ficheros de datos de Editran: configuración y ficheros temporales (tampones, estado, etc.). En esta versión existe la posibilidad de desligarlos del path de instalación del producto definiendo la ruta en la que los procesos buscan y guardan dichos ficheros.         | Path existente y con permisos                       | home-editran      |
| EDI\_TOUT\_IDLE     | La variable establece el timeout de inactividad del protocolo. Cualquier sesión conectada, pero sin tráfico de datos se liberará agotado ese tiempo.                                                                                                                                          |                                                     | 600(segundos)     |
| EDI\_DBGL           | Determina el nivel de información de log que se registra durante las transmisiones.                                                                                                                                                                                                           | 2(traza) y 3(debug)                                 | info              |
| EDI\_MGLOG          | Determina si la información de log se registra en un único fichero o en ficheros diferentes para cada *Presentación*. Dichos ficheros se guardan en \<home-editran>/log.                                                                                                                      | Si no existe la variable el fichero de log es único | fichero único     |
| EDI\_GUPGRADE       | Los parámetros que Editran pasa a los programas de usuario previos y posteriores han cambiado en esta versión. Se recomienda que se adapten durante el proceso de migración pero si no es posible, se puede trabajar en modo compatible con versiones inferiores dando valor a esta variable. | Si existe la variable se activa el modo compatible  | modo estándar     |
| EDI\_REPORT\_PATH   | Generación de informes diarios de ficheros transmitidos. Más detalle de esta funcionalidad en *Manual de Usuario Editran/G*.                                                                                                                                                                  |                                                     |                   |
| EDI\_REPORT\_LEVEL  | Nivel de detalle en la generación de informes de ficheros.                                                                                                                                                                                                                                    | 0(básico), 1(extendido)                             | básico            |
| EDI\_SHARE\_FF      | Integración con el servicio de firma (Editran/FF). Más detalle de esta funcionalidad en *Manual de Usuario Editran/G*.                                                                                                                                                                        |                                                     |                   |
| LICSRV              | Variable para configurar la ip y el puerto de escucha del servidor de licencia. El puerto debe tener el mismo valor que la variable SL.PORTSRV definida en el punto [Servicio de Licencia](#servicio-de-licencia)                                                                             |                                                     | 127.0.0.1:50777   |
| EDI\_DELAY\_LIC     | Variable para configurar el tiempo de espera tras arrancar el servicio de licencia.                                                                                                                                                                                                           | Número de segundos de demora                        | 2 segundos        |

De igual forma, habría que quitar de las listas de arranque/parada (variables PROC\_STAR y PROC\_STOP) la referencia al proceso **edifilesrv** cuando el cliente no tenga licenciada la "*FEATURE **distribuido***". De lo contrario, al arrancar la aplicación saldrá el error correspondiente y, aunque **no afecta** al funcionamiento, puede crear incertidumbre.

Es opción del administrador de Editran dejar las listas por defecto, sabiendo que ese mensaje de error se puede ignorar, pero eso más adelante puede ser tratado por algún operador que desconozca esta circunstancia e interpretarlo como una incidencia.

### Instancias Editran concurrentes

Si necesita tener varias instancias de Editran en la misma máquina, configure cada una como un entorno independiente.

#### Qué debe ser distinto en cada instancia

| Elemento                         | Requisito                                              |
| -------------------------------- | ------------------------------------------------------ |
| Usuario de la aplicación Editran | Un usuario diferente por instancia.                    |
| Directorio de instalación        | Un directorio diferente por instancia.                 |
| EDI\_IPC\_KEY\_BASE              | Un valor diferente por instancia.                      |
| Puertos de licencia              | Un valor diferente por instancia.                      |
| Recursos TCP de Editran          | IP y/o puertos de escucha diferenciados por instancia. |

#### Pasos de configuración (por instancia)

1. Instale Editran con un usuario y un directorio exclusivos para esa instancia.
2. Edite el script **EDItran** y defina valores propios para:

   ```txt
   EDI_IPC_KEY_BASE=<valor_unico>
   LICSRV=127.0.0.1:<puertoLicencia>
   # Configurar FACTSRV solo si la licencia tiene facturación
   FACTSRV=127.0.0.1:<puertoFacturacion>
   ```
3. Añada esas mismas variables con los mismos valores en el perfil del usuario que arranca la instancia.
4. En **SL/App.conf**, configure los puertos:

   ```txt
   SL.PORTSRV: <puertoLicencia>
   # Configurar FC.PORTSRV solo si la licencia tiene facturación
   FC.PORTSRV: <puertoFacturacion>
   ```

   `SL.PORTSRV` debe coincidir exactamente con el puerto configurado en `LICSRV`.\
   `FC.PORTSRV` debe coincidir exactamente con el puerto configurado en `FACTSRV`.
5. Verifique que los recursos TCP (IP/puertos) de esa instancia no se solapan con los de otras instancias.

> **Resultado esperado:** cada instancia puede arrancar y operar en paralelo sin conflicto de puertos ni de recursos compartidos.

## Iniciar y detener el sistema

### Script EDItran

En los entornos Unix para arrancar y parar el sistema se ejecuta el script **EDItran**. Su sintaxis es:

```bash
Usage: EDItran [-l] [-t] [-f] start|stop|status|version
-l Operativa restringida al Servidor de Licencia
-t Traza
-f Ignora otro EDITRAN arrancado
start Arranca el servicio
stop Detiene el servicio
status Obtiene el estado del servicio
version Muestra la version del sistema EDITRAN
```

Al arrancar Editran se admiten las siguientes opciones:

* **-l** Esta opción restringe el alcance del comando solo al servidor de licencia.
* **-t** Activa traza. Los procesos de Editran dejan información adicional que permite depurar situaciones de error. La traza se escribe en la salida estándar de errores del proceso que se redirige a un fichero que se nombra como el proceso que lo genera y extensión **.out**. Esta información será requerida normalmente por el grupo de Soporte de Editran para analizar incidencias.

> Desde la versión 5.0.2, existe también la posibilidad de activar la traza temporalmente sin que se tenga que parar y arrancar Editran. La manera de hacerlo es enviando la señal SIGUSR2 al proceso que se necesite analizar. Por ejemplo, si se tratase de ***editranp***, el usuario que arrancó el sistema deberá seguir los siguientes pasos:

* Obtener el pid del proceso

```bash
ps -ef | grep editranp
usredi 1143 1 0 Sep 29 ? 72:40 editranp
```

* Activar la traza enviando la señal al proceso con el comando ***kill*** \[^1]

```bash
/usr/bin/kill -USR2 1143
```

* Una vez realizada la prueba que se quiere analizar, desactivar la traza volviendo a ejecutar:

```bash
/usr/bin/kill -USR2 1143
```

En el fichero **log/editranp.out** quedan reflejadas estas acciones con los siguientes mensajes:

```
10/11/2017 15:40:14.094 [LOG][SIG17]:Traza On
10/11/2017 15:50:18.615 [LOG][SIG17]:Traza Off
```

* **-f** Si se especifica esta opción, al hacer **start** se permite arrancar Editran aunque haya otra instancia arrancada. Para que varios sistemas puedan funcionar simultáneamente de forma correcta es necesario haber realizado la instalación con los requisitos que se detallan en el apartado [Instancias Editran concurrentes](#instancias-editran-concurrentes).

### Servicio editran.service en Linux Red Hat

Es posible arrancar y parar Editran como servicio. Para ello debe configurar la unidad de servicio proporcionada en la instalación del producto siguiendo los siguientes pasos:

* Modificar el fichero /opt/editran/bin/service/editran.service

```txt
[Unit]
Description=Editran
After=network.target

[Service]
Type=forking
User=editran
WorkingDirectory=/opt/editran/bin
Environment=JAVA_HOME=/path/to/java
ExecStart=/opt/editran/bin/EDItran -s start
ExecStop=/opt/editran/bin/EDItran -s stop

[Install]
WantedBy=multi-user.target
```

* En el apartado User habrá que definir el usuario que arrancará el servicio.
* En WorkingDirectory, ExecStart y ExecStop hay que definir la ruta de instalación de Editran.
* En la ruta /path/to/java se debe definir la ruta de instalación de java.
* Autenticado como **root**, en **/etc/systemd/system/** \*/ se debe crear el fichero de enlace editran.service apuntando a /opt/editran/bin/service/editran.service (salvo que la instalación de editran esté en un punto de montaje, en ese caso se debe crear una copia de /opt/editran/bin/service/editran.service en /etc/systemd/system)
* Posteriormente se debe recargar la configuración del administrador systemd: `systemctl daemon-reload`
* Si lo desea, se puede configurar el servicio para que se inicie automáticamente al arrancar el sistema: `systemctl enable editran.service`

Dependiendo de las dependencias particulares de su sistema, es posible que tenga que adaptar el fichero editran.service para que esta opción funcione correctamente.

* Los comandos admitidos por el servicio son:
* systemctl status editran.service
* systemctl start editran.service
* systemctl stop editran.service
* systemctl restart editran.service

> **Nota:** Antes de arrancar el servicio debe tener una licencia válida y un entorno local definido.

## Actualización de versión

### Versión origen 5.2.1.x sin cambio de SO

Una vez descargado el paquete de la nueva versión de Editran, debe realizar los siguientes pasos:

* Detener Editran.
* Realizar una copia de seguridad del directorio de Editran. Por ejemplo:

```bash
cp -r /opt/editran /opt/editran.v521x
```

* Extraer los archivos del paquete de software adecuado a su sistema operativo (RHEL8 o RHEL9) en el directorio de instalación de Editran. Por ejemplo:

```bash
cd /opt/editran
tar --zxvpf Editran-v5.2.1.x-x86_64-redhatx.tar
```

* Crear el script de arranque de Editran (**EDItran**). Se debe copiar el incluido en la instalación con nombre **EDItran.install** y renombrar el de la instalación antigua. Por ejemplo:

```bash
mv EDItran EDItran.v521x
cp -p EDItran.install EDItran
```

> Posteriormente edite este script si desea incluir alguna de las opciones que se exponen en el punto 5.3

* No es necesario solicitar una nueva licencia, el fichero de licencia de la versión origen es compatible con la nueva versión actualizada.

### Versión origen 5.2.0 o anterior sin cambio de SO

Una vez descargado el paquete de la nueva versión de Editran, debe realizar los siguientes pasos:

* Detener Editran.
* Renombrar el directorio de instalación de Editran. Por ejemplo: `mv /opt/editran /opt/editran.v510`
* Realizar la instalación del producto.
* Solicitar una nueva licencia.
* Migrar la configuración de la versión anterior. Para ello dispone de la utilidad **migra-cfg**. El directorio *\<home-editran>***/inst** contiene los scripts (**.bash** y **.sh**, según sea nuestro *shell*) que realizan la tarea.

  Comprobar que la variable EDITRAN\_HOME del script que se utilice tenga el valor adecuado a la instalación del cliente.
* El script **migra-cfg.sh** realiza tres pasos diferentes, y, en caso de que alguno falle, tras arreglar el error, se puede relanzar utilizando la opción **-c** indicando el paso deseado `cfg2txt | txt2cfg | migragc`
* Si ni la instalación antigua ni la nueva tienen definido EDI\_DATA (directorio para los ficheros de datos de EDITRAN) hay que proceder de la siguiente manera:
* Situarse en *\<home-editran>***/bin** y ejecutar:

```bash
../inst/migra-cfg.sh
```

* El script va informando de los pasos que se realizan, pidiendo la respuesta del usuario cuando se necesitan datos adicionales o confirmación. De forma resumida las acciones que realiza el script y los mensajes que se muestran al usuario son:
* Se pide al usuario el path y versión a migrar:
  * Introduzca la version a migrar (ej. 50): 51
  * Version: 51
  * Introduzca la release a migrar (ej. 2): 0
  * Release: 0
  * Introduzca el path de version a migrar: /opt/editran.v510
  * Path: /opt/editran.v510
* Se copia la configuración al nuevo directorio creado *\<home-editran>***/migration**
  * Copiar configuracion V51 R0 \[OK]
* La migración de los ficheros de perfiles Editran se hace en dos pasos, primero se pasan a texto y a partir de ellos se crean los de la nueva versión.
  * Volcar Perfiles EDITRAN/P a texto `/opt/editran/migration/perfilesP.txt`
  * Volcar Perfiles EDITRAN/G a texto `/opt/editran/migration/perfilesG.txt`
  * Configurando EDITRAN/P `/opt/editran/migration/perfilesP.txt`
  * Configurando EDITRAN/G `/opt/editran/migration/perfilesG.txt`
* Por último, se migran las claves del módulo EDITRAN/GC. Dependiendo de la configuración original se mostrarán los siguientes mensajes:
* Si no se usaba EDITRAN/GC
  * editran/GC: /opt/editran.v510/controlGC.cfg no existe
* Si existen claves RSA pero sin módulo EDITRAN/GC
  * RSA: las claves /opt/editran.v510/ckds.rsa deben migrarse manualmente
* Se muestra el resultado (OK o ERROR) de la migración de claves:
  * Migrar EDITRAN/GC \[OK]
* Si durante este proceso aparecen mensajes de error debe contactar con el Soporte Técnico de Editran y enviar el contenido del directorio *\<home-editran>***/migration** para que se valoren dichos mensajes.
* Si la instalación antigua o la nueva tienen definido EDI\_DATA:

> En la siguiente tabla se indica la carpeta de migración que va a usar el script de migración y cómo se debe configurar la variable EDI\_DATA en la nueva instalación:

| Versión antigua | Versión nueva | Configuración EDI\_DATA nuevo y carpeta de migración              |
| --------------- | ------------- | ----------------------------------------------------------------- |
| EDI\_DATA       | EDI\_DATA     | <p>EDI\_DATA=$EDI\_DATA antiguo<br>carpeta=$EDI\_DATA antiguo</p> |
|                 | Sin EDI\_DATA | <p>Sin EDI\_DATA<br>carpeta=$EDI\_DATA antiguo</p>                |
| Sin EDI\_DATA   | EDI\_DATA     | <p>EDI\_DATA=$EDI\_DATA nuevo<br>carpeta=$EDI\_DATA nuevo</p>     |

La carpeta de migración debe contener los componentes indicados en la siguiente tabla, en caso de que alguno no esté, se debe copiar de la instalación antigua de Editran:

| Versión antigua    | Contenido de la carpeta de migración |
| ------------------ | ------------------------------------ |
| **Anterior a 520** | carpeta/editranp.cfg                 |
|                    | carpeta/editrang.cfg                 |
|                    | carpeta/controlGC.cfg                |
|                    | carpeta/.rsa                         |
|                    | carpeta/ckds.des                     |
| **520**            | carpeta/cfg/editranp.cfg             |
|                    | carpeta/cfg/editrang.cfg             |
|                    | carpeta/cfg/controlGC.cfg            |
|                    | carpeta/cfg/.rsa                     |
|                    | carpeta/bin/ckds.des                 |
| **521x**           | carpeta/cfg/editranp.cfg             |
|                    | carpeta/cfg/editrang.cfg             |
|                    | carpeta/cfg/controlGC.cfg            |
|                    | carpeta/cfg/.rsa                     |
|                    | carpeta/cfg/ckds.des                 |

Donde

* **editranp.cfg** y **editrang.cfg** son los ficheros de perfiles.
* Fichero de claves **ckds.des**
* Fichero de claves **ckds.rsa** (si existiera en la instalación anterior y sólo si tiene licencia RSA)
* **controlGC.cfg** (si existiera en la instalación anterior y sólo si tiene licencia RSA)
* Directorio **.rsa** (si existiera en la instalación anterior y sólo si tiene licencia RSA)

> En este punto ya pude situarse en *\<home-editran>***/bin** y ejecutar:

* $**../inst/migra-cfg.\[ba]sh**
* El script va informando de los pasos que se realizan, pidiendo la respuesta del usuario cuando se necesitan datos adicionales o confirmación. De forma resumida las acciones que realiza el script y los mensajes que se muestran al usuario son:
* Se pide al usuario el path y versión a migrar:
  * Introduzca la version a migrar (ej. 50): 51
  * Version: 51
  * Introduzca la release a migrar (ej. 2): 0
  * Release: 0
  * Detectado EDI\_DATA
  * Path: /opt/editran/share
* Se copia la configuración al nuevo directorio creado *\<home-editran>***/migration**
  * Copiar configuracion V51 R0 \[OK]
* La migración de los ficheros de perfiles Editran se hace en dos pasos, primero se pasan a texto y a partir de ellos se crean los de la nueva versión.
  * Volcar Perfiles EDITRAN/P a texto \[/opt/editran/migration/perfilesP.txt]\[OK]
  * Volcar Perfiles EDITRAN/G a texto \[/opt/editran/migration/perfilesG.txt]\[OK]
  * Configurando EDITRAN/P \[/opt/editran/migration/perfilesP.txt] \[OK]
  * Configurando EDITRAN/G \[/opt/editran/migration/perfilesG.txt] \[OK]
* Por último, se migran las claves del módulo EDITRAN/GC. Dependiendo de la configuración original se mostrarán los siguientes mensajes:
* Si no se usaba EDITRAN/GC
  * editran/GC: /opt/editran/share/controlGC.cfg no existe
* Si existen claves RSA pero sin módulo EDITRAN/GC
  * RSA: las claves /opt/editran/share/ckds.rsa deben migrarse manualmente
* Se muestra el resultado (OK o ERROR) de la migración de claves:
  * Migrar EDITRAN/GC \[OK]
* Si durante este proceso aparecen mensajes de error debe contactar con el Soporte Técnico de Editran y enviar el contenido del directorio \<home-editran>/migration para que se valoren dichos mensajes.
* Si la nueva instalación tiene EDI\_DATA, el script de migración dejará configurada una nueva carpeta que propondrá como nuevo EDI\_DATA.
  * Se ha creado un nuevo directorio /opt/editran/share\_FROM\_510 para ser utilizado como EDI\_DATA. Por favor reconfigure su instalacion.

### Migración entre diferentes SO

Una vez descargado el paquete de la nueva versión de Editran, debe realizar los siguientes pasos:

* Realizar la instalación del producto.
* Solicitar una nueva licencia.
* Exportar los perfiles a texto plano en el SO original. Ejecute los comandos respetando los nombres de los ficheros txt que aparecen en ellos:

> $ ediperfi -r -a -operfilesP.txt
>
> $ igaperfi -r -a -operfilesG.txt

* Crear en la nueva instalación el directorio *\<home-editran>***/migration**
* Si la nueva instalación tiene EDI\_DATA ese directorio será el elegido por el script de migración como carpeta origen de los ficheros. En otro caso, se debe crear una carpeta nueva dentro del directorio *\<home-editran>***/migration**
* Se deben copiar en el directorio del punto anterior los ficheros de la antigua versión siguiendo la estructura de la tabla:

| Versión antigua | Contenido de la carpeta de migración                                                   |
| --------------- | -------------------------------------------------------------------------------------- |
| Anterior a 520  | <p>perfilesP.txt<br>perfilesG.txt controlGC.cfg<br>.rsa<br>ckds.des<br>ckds.rsa</p>    |
| 520             | <p>perfilesP.txt<br>perfilesG.txt<br>cfg/controlGC.cfg<br>cfg/.rsa<br>bin/ckds.des</p> |
| 521             | <p>perfilesP.txt<br>perfilesG.txt<br>cfg/controlGC.cfg<br>cfg/.rsa<br>cfg/ckds.des</p> |

Donde

* **perfilesP.txt** y **perfilesG.txt** son los ficheros generados en el primer punto.
* Fichero de claves **ckds.des**
* Fichero de claves **ckds.rsa** (si existiera en la instalación anterior y sólo si tiene licencia RSA)
* **controlGC.cfg** (si existiera en la instalación anterior y sólo si tiene licencia RSA)
* Directorio **.rsa** (si existiera en la instalación anterior y sólo si tiene licencia RSA)

  .
* Situarse en *\<home-editran>***/bin** y ejecutar la utilidad de migración, especificando como argumento el paso a realizar: recuperar configuración desde texto. Si el SO origen es Windows es necesaria la opción **--w**.

> $ ../inst/migra-cfg.\[ba]sh \[-w] txt2cfg
>
> En este caso, las acciones y mensajes que la utilidad de migración muestra al usuario son:

* Se pide al usuario la versión a migrar:
  * Introduzca la version a migrar (ej. 50): 51
  * Version: 51
  * Introduzca la release a migrar (ej. 2): 0
  * Release: 0
* Si en la instalación nueva no hay EDI\_DATA se le solicitará al usuario la ruta completa de la carpeta de migración
  * Introduzca el path de version a migrar: /opt/editran/migration/v510
  * Path: /opt/editran/migration/v510
* Si existe EDI\_DATA se mostrará el mensaje:
  * Detectado EDI\_DATA
  * Path: /opt/editran/share
* Migración de los ficheros de perfiles a partir de los ficheros de texto.
  * Configurando EDITRAN/P \[/opt/editran/migration/v510/perfilesP.txt] \[OK]
  * Configurando EDITRAN/G \[/opt/editran/migration/v510/perfilesG.txt] \[OK]
* Por último, se migran las claves del módulo EDITRAN/GC. Dependiendo de la configuración original se mostrarán los siguientes mensajes:
* Si no se usaba EDITRAN/GC
  * editran/GC: /opt/editran/migration/v510/controlGC.cfg no existe
* Si existen claves RSA pero sin módulo EDITRAN/GC
  * RSA: las claves /opt/editran/migration/v510/ckds.rsa deben migrarse manualmente
* Se muestra el resultado (OK o ERROR) de la migración de claves:
  * Migrar EDITRAN/GC \[OK]
* Si durante este proceso aparecen mensajes de error debe contactar con el Soporte Técnico de Editran y enviar el contenido del directorio \<home-editran>/migration para que se valoren dichos mensajes.
* Si la nueva instalación tiene EDI\_DATA, el script de migración dejará configurada una nueva carpeta que propondrá como nuevo EDI\_DATA.

> Se ha creado un nuevo directorio /opt/editran/share\_FROM\_510 para ser utilizado como EDI\_DATA. Por favor reconfigure su instalación

* El cambio de SO puede implicar otros cambios (modificación de las rutas usadas en la configuración, adaptación de scripts usados como procedimientos de usuario, etc.) que quedan fuera de esta migración.

## Migración de scripts de usuario

Una vez completada la actualización desde una versión anterior a la 5.2.1.x, si existen scripts específicos que se ejecutan como procedimientos previos y posteriores a las transmisiones, deberá adaptarlos teniendo en cuenta que los parámetros de llamada sufren las mínimas modificaciones que se indican a continuación:

* En los programas previos a la transmisión la lista de parámetros es: presentación, sentido, código local, código remoto y aplicación.
* En los programas posteriores a la transmisión la lista de parámetros es: presentación, sentido, código local, código remoto, aplicación y el path absoluto del fichero con la lista de los ficheros emitidos o recibidos.
* Los programas posteriores sólo se ejecutan cuando la transmisión finaliza con éxito. En cualquier otro caso, incluidos los errores en el proceso de carga y descarga, se ejecutará el programa de excepción.
* Se recomienda, para esta nueva versión, que estos scripts se dejen en *\<home-editran>***/bin/utils** para diferenciarlos del software del producto.

No obstante, existe la posibilidad de indicar, mediante una variable del script **EDItran**, que se van a usar los scripts de versiones anteriores (des-comentando EDI\_GUPGRADE).

## Apéndices

### Instalación y cambio de la clave maestra HMK

La clave Maestra garantiza la integridad de las claves Auxiliares almacenadas en el fichero de **ckds.des**, ya que todas las claves que residen en el fichero se almacenan cifradas con dicha HMK.

El comando que realiza este servicio es **pinsdes**. Su sintaxis se muestra a continuación:

> pinsdes \<clave\_actual> \<clave\_nueva>

Siendo:

> \<clave\_actual>: clave Maestra instalada
>
> \<clave\_nueva>: nueva clave Maestra

El comando anterior cuando se usa en el proceso de instalación de la clave Maestra se invoca con \<clave\_actual> = \<clave\_nueva>, es decir, el usuario especifica la clave Maestra y su repetición. El comando validará que ambas claves son iguales.

Si **pinsdes** se usa para realizar el cambio de la clave Maestra instalada, el usuario deberá especificar en \<clave\_actual> la clave Maestra instalada en el fichero **ckds.des** existente y en \<clave\_nueva> la clave Maestra nueva. Las validaciones que se realizan en este caso son, por un lado, el conocimiento de la clave Maestra actual ---especificada como primer argumento del comando--- y, por otro, que la nueva clave Maestra ---especificada en segundo lugar---, sea diferente de la actual.

En ambos casos, se validará también que el formato de la clave Maestra que se quiere instalar tenga paridad impar; esto es, cada octeto (dos caracteres del alfabeto hexadecimal) de la nueva clave Maestra ha de tener un número impar de bits con valor 1.

Durante el proceso de cambio de la clave Maestra, conviene realizar una copia de seguridad o "backup" del mismo. Así, si durante el proceso se produjera algún error, existe la posibilidad de reponer el fichero de claves original.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/open-v5.2.1/linux/instalacion.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
