Tenemos un script que instala el software necesario para implantar aplicaciones web, en concreto WordPress, en nuestro sistema. Queremos modificarlo para que reciba por parámetro o almacene en una variable la ruta de un fichero de información de software a instalar.
En este fichero deberíamos tener toda la información necesaria para instalar los paquetes de software desde apt así como descargar el software necesario desde internet.
La idea es recorrer este fichero línea a línea, analizar la línea, y actuar en consecuencia.
¿Qué información necesitamos?
Está en el script, la idea es automatizar más todavía el proceso de descarga e instalación de todo lo necesario para poder implantar un tipo de software, en este caso WordPress. La finalidad es poder reutilizar este script para futuras implantaciones de software. De esta forma, si queremos implantar otro software lo único que tendremos que hacer será crear otro fichero con la información de lo que necesitamos: ya no tocamos el código, solo creamos un fichero de configuración nuevo.
Una ayudita, por favor
Si miramos el script tenemos dos tipos de software que descargamos e instalamos, uno lo descargamos de internet y otro lo instalamos con apt install. Sabiendo esto, podemos definir dos tipos de registros en el fichero:
- Tipo 1: El que tiene que descargar algo desde una URL.
- Tipo 2: El que instala una serie de paquetes desde apt
Una forma de organizarlo es añadir un campo de identificación de tipo, que sería el primer campo. Por ejemplo, se me ocurre, así así:
1;https://es.wordpress.org/latest-es_ES.zip;latest-es_ES.zip
2;apache2;php;php-mysql;apache2-mod-php
Solución propuesta


Leer el fichero línea a línea

Vamos a probar

En lugar de mostrar la línea del fichero, tenemos que procesarla.

Vamos a procesar de verdad, necesitamos definir el separador si o si, vamos a empezar por ; aunque puede que lo tengamos que cambiar más adelante (o no).
La función, por ahora, de procesado de registros quedaría como sigue

El fichero de datos ahora mismo está así:

¿y ahora qué?
Ahora deberíamos hacer lo siguiente:
- Obtener el nombre del fichero de la URL para poder hacer referencia si lo necesitamos.
- Ser capaces de descargar el software de la URL con el comando wget y guardar el fichero en /var/www/html/software
- Ser capaces de instalar la lista de paquetes en el tipo 2 con la aplicación apt y comando install
Los puntos 2 y 3 podemos inspirarnos en el script de instalación de wordpress.
Dejar una respuesta