Merge pull request 'refs #2206 give some care to the Custom scripts' (#59) from scripts-custom into main
ogclient/pipeline/head This commit looks good
Details
ogclient/pipeline/head This commit looks good
Details
Reviewed-on: #59pull/60/head 0.16.0
commit
461c5faed5
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.16.0] - 2025-06-12
|
||||
|
||||
### Changed
|
||||
|
||||
- Gave some care to the "Custom" scripts
|
||||
|
||||
## [0.15.3] - 2025-06-12
|
||||
|
||||
### Fixed
|
||||
|
|
|
@ -47,7 +47,7 @@ if not mount_out or not re.search (rf'{mntdir}.*\(rw', mount_out):
|
|||
|
||||
if shutil.which ('bootOsCustom.py'):
|
||||
print ('[10] Configuración personalizada del inicio.')
|
||||
subprocess.run ([f'{ogGlobals.OGSCRIPTS}/bootOsCustom.py'])
|
||||
subprocess.run ([f'{ogGlobals.OGSCRIPTS}/bootOsCustom.py', disk, par])
|
||||
|
||||
print ('[70] Desmontar todos los sistemas de archivos.')
|
||||
subprocess.run (['sync'])
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
# bootOsCustom
|
||||
#@brief Plantilla para script de configuración personalizada de sistema operativo restaurado.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@warning Renombrar este fichero como "bootOsCustom" para personalizar el script estándar "bootOs".
|
||||
#@note La partición a inicializar debe estar montada
|
||||
#@version 1.1.1 Soporta varios discos
|
||||
#@date 2019/08/26
|
||||
#**/
|
||||
# CONFIGURAR: Partición de datos de Windows que no queremos ocultar (valor por defecto '0' no oculta nada)
|
||||
DISKDATA=0
|
||||
PARTDATA=0
|
||||
|
||||
PROG="$(basename $0)"
|
||||
# Control de errores
|
||||
if [ $# -lt 2 ]; then
|
||||
ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Parámetros obligatorios.
|
||||
DISK="$1" # Nº de disco.
|
||||
PART="$2" # Nº de partición.
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
DEVICE=$(ogDiskToDev "$DISK" "$PART") || exit $?
|
||||
|
||||
# Paso 1: Adaptar el código de ejemplo para arranque personalizado.
|
||||
# Nota: el script "bootOs" llama al script "bootOsCustom" después de realizar la operaciones de inicio estándar y antes de desmontar las particiones e iniciar el sistema operativo.
|
||||
|
||||
|
||||
MNTDIR=$(ogMount $DISK $PART) || exit $?
|
||||
NAME="$(ogGetHostname)"
|
||||
NAME=${NAME:-"pc"}
|
||||
OSTYPE=$(ogGetOsType $DISK $PART)
|
||||
|
||||
case "$OSTYPE" in
|
||||
Windows)
|
||||
## Mostrar las particiones NTFS de sistema (dos opciones)
|
||||
## Opción 1: SIN ocultar las demás.
|
||||
#ogEcho log session "[40] Mostrar y activar particion de Windows $PART."
|
||||
#[ $(ogGetPartitionType $DISK $PART) == "HNTFS" -o $(ogGetPartitionType $DISK $PART) == "WIN-RESERV" ] && ogUnhidePartition $DISK $PART
|
||||
|
||||
## Recorremos los distintos discos
|
||||
#for DEVICE in $(ogDiskToDev); do
|
||||
# d=$(ogDevToDisk $DEVICE)
|
||||
|
||||
# ## Mostrar las particiones NTFS de sistema (dos opciones)
|
||||
# ## Opción 2: Ocultamos las demás.
|
||||
# ogEcho log session "[40] Activar particion de Windows $PART y ocultar las demás."
|
||||
# for (( i=1; i<=$(ogGetPartitionsNumber $d); i++ )); do
|
||||
# if [ $d == $DISK -a $i == $PART ] || [ $d == $DISKDATA -a $i == $PARTDATA ]; then
|
||||
# [ $(ogGetPartitionType $d $i) == "HNTFS" -o $(ogGetPartitionType $d $i) == "WIN-RESERV" ] && ogUnhidePartition $d $i
|
||||
# else
|
||||
# [ "$(ogGetPartitionType $d $i)" == NTFS -o "$(ogGetPartitionType $d $i)" == "WINDOWS" ] && ogHidePartition $d $i
|
||||
# fi
|
||||
# done
|
||||
|
||||
# ## Borrar marcas de arrranque de todos los Windows instalados en el disco.
|
||||
# ogEcho log session "[30] Borrar marcas de arrranque de todos los Windows instalados en el disco."
|
||||
# for (( i=1; i<=$(ogGetPartitionsNumber $d); i++ )); do
|
||||
# [ "$(ogGetOsType $d $i)" == "Windows" ] && ogMount $d $i &>/dev/null
|
||||
# done
|
||||
# rm -f /mnt/*/ogboot.*
|
||||
|
||||
#done
|
||||
;;
|
||||
Linux)
|
||||
## Modificar el nombre del equipo
|
||||
#ogEcho log session "[30] Asignar nombre Linux \"$NAME\"."
|
||||
#ETC=$(ogGetPath $DISK $PART /etc)
|
||||
#[ -d "$ETC" ] && echo "$NAME" >$ETC/hostname 2>/dev/null
|
||||
|
||||
## Sustituir UUID o LABEL por su dispositivo en definición de sistema de archivo raíz.
|
||||
#if [ -f "$ETC/fstab" ]; then
|
||||
# ogEcho log session "[40] Actualizar fstab con particion raíz \"$PART\"."
|
||||
# awk -v P="$PART " '{ if ($2=="/" && $1!~/^#/) {sub(/^.*$/, P, $1)}
|
||||
# print }' $ETC/fstab >/tmp/fstab
|
||||
# mv /tmp/fstab $ETC/fstab
|
||||
#fi
|
||||
|
||||
## Cambiar claves usuarios, copiando fichero /etc/passwd
|
||||
## En el servidor el nuevo fichero debe situarse en el directorio del grupo:
|
||||
## /opt/opengnsys/images/groups/nombre_aula
|
||||
#if [ -r $(ogGetGroupDir)/passwd ]; then
|
||||
# ogEcho log session "[65] Cambiar claves de usuarios."
|
||||
# cp $(ogGetGroupDir)/passwd $MNTDIR/etc
|
||||
#fi
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
#/**
|
||||
# bootOsCustomTemplate.py
|
||||
#@brief Plantilla para script de configuración personalizada de sistema operativo restaurado.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@warning Renombrar este fichero como "bootOsCustom.py" para personalizar el script estándar "bootOs.py".
|
||||
#@note La partición a inicializar debe estar montada
|
||||
#**/
|
||||
|
||||
import sys
|
||||
|
||||
import ogGlobals
|
||||
from SystemLib import ogRaiseError, ogEcho
|
||||
from DiskLib import ogDiskToDev
|
||||
from FileSystemLib import ogMount
|
||||
from NetLib import ogGetHostname
|
||||
from InventoryLib import ogGetOsType
|
||||
|
||||
prog = sys.argv[0]
|
||||
|
||||
# Control de errores
|
||||
if len (sys.argv) < 3:
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'Formato: {prog} ndisco nfilesys')
|
||||
sys.exit (1)
|
||||
disk, par = sys.argv[1:]
|
||||
|
||||
device = ogDiskToDev (disk, par)
|
||||
if not device: sys.exit (1)
|
||||
|
||||
# Nota: el script "bootOs.py" llama al script "bootOsCustom.py" después de realizar la operaciones de inicio estándar y antes de desmontar las particiones e iniciar el sistema operativo.
|
||||
|
||||
mntdir = ogMount (disk, par)
|
||||
if not mntdir: sys.exit (1)
|
||||
name = ogGetHostname()
|
||||
if not name: name = 'pc'
|
||||
ostype = ogGetOsType (disk, par)
|
||||
|
||||
if 'Windows' == ostype:
|
||||
pass
|
||||
elif 'Linux' == ostype:
|
||||
pass
|
|
@ -1,78 +0,0 @@
|
|||
import sys
|
||||
import subprocess
|
||||
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
configureOsCustom
|
||||
@brief Plantilla para script de configuración personalizada de sistema operativo restaurado.
|
||||
@param $1 nº de disco
|
||||
@param $2 nº de partición
|
||||
@param $3 Repositorio: CACHE, REPO o dirección IP (opcional)
|
||||
@param $4 Nombre canónico de la imagen sin extensión (opcional)
|
||||
@warning Renombrar este fichero como "configureOsCustom" para sustituir al script estándar "configureOs".
|
||||
@note Los parámetros disco y partición son obligatorios y opcionalmente puede recibir también el repositorio y la imagen usada para en el despliegue.
|
||||
"""
|
||||
|
||||
def main():
|
||||
if len(sys.argv) not in [3, 5]:
|
||||
og_raise_error("OG_ERR_FORMAT", "Usage: configureOsCustom int_ndisc int_npart [str_repo str_imgname]")
|
||||
|
||||
disk = sys.argv[1]
|
||||
part = sys.argv[2]
|
||||
repo = sys.argv[3].upper() if len(sys.argv) > 3 else None
|
||||
imgname = sys.argv[4] if len(sys.argv) > 4 else None
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
# Paso 1: Adaptar el código de ejemplo para postconfiguración personalizada.
|
||||
configure_os(disk, part)
|
||||
|
||||
ostype = og_get_os_type(disk, part)
|
||||
if ostype == "Windows":
|
||||
# Postconfiguración de Windows.
|
||||
pass
|
||||
# Descomentar la siguiente línea para cambiar usuario de inicio.
|
||||
# subprocess.run(["ogSetWinlogonUser", disk, part, " "], check=True)
|
||||
# OPCIONAL: desactivar el chkdisk de windows tras la restauracion. Requiere configuracion previa en el engine.cfg
|
||||
# subprocess.run(["ogLoadHiveWindows", disk, part], check=True)
|
||||
# subprocess.run(["ogSetWindowsChkdisk", "OGWINCHKDISK"], check=True)
|
||||
# subprocess.run(["ogUpdateHiveWindows"], check=True)
|
||||
elif ostype == "Linux":
|
||||
# Postconfiguración de GNU/Linux.
|
||||
pass
|
||||
# OPCIONAL Para UEFI: cambia el UUID de la partición (para tener dos linux en un equipo)
|
||||
# subprocess.run(["ogUuidChange", disk, part], check=True)
|
||||
# OPCIONAL Limpiar dispositivos reconocidos previamente
|
||||
# subprocess.run(["ogCleanLinuxDevices", disk, part], check=True)
|
||||
# Instala (no configura) el codigo de arranque del Grub en la partición (no lo configura, se mantiene el original de la imagen)
|
||||
# subprocess.run(["ogGrubInstallPartition", disk, part], check=True)
|
||||
# OPCIONAL: instala y configura el codigo de arranque del Grub en el MBR (no lo configura, se mantiene el original de la imagen)
|
||||
# subprocess.run(["ogGrubInstallMbr", disk, part], check=True)
|
||||
# OPCIONAL: Instala y configura el Grub en el MBR y lo autoconfigura, entradas para los sistemas operativos, además al linux restaurado le añade los parámetros indicados.
|
||||
# subprocess.run(["ogGrubInstallMbr", disk, part, "TRUE", "irqpoll pci=noacpi noresume quiet splash"], check=True)
|
||||
elif ostype == "MacOS":
|
||||
# Postconfiguración de Mac OS X.
|
||||
with open(f"/mnt/{disk}/{part}/var/root/postconfd.sh", "a") as f:
|
||||
f.write("""
|
||||
### NOTA: descomentar las opciones deseadas.
|
||||
# Activar Journaling en HFS+ (no usar si el cliente continua en OpenGnsys).
|
||||
#diskutil enableJournal disk$[$1-1]s$2
|
||||
# Pedir usuario y clave en pantalla de conexión.
|
||||
#defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool yes
|
||||
# No mostrar botón de cambio rápido de usuario.
|
||||
#defaults write /Library/Preferences/.GlobalPreferences MultipleSessionEnabled -bool NO
|
||||
# Bloquear escritorio, fondo, dock, etc del usuario "usuario".
|
||||
#chflags uchange /Users/usuario/Library/Preferences/com.apple.desktop.plist
|
||||
#chflags uchange /Users/usuario/Library/Preferences/com.apple.dock.plist
|
||||
#chflags uchange /Users/usuario/Desktop
|
||||
# Añadir usuario "usuario" a la lista de desarrolladores de Xcode.
|
||||
#DevToolsSecurity --enable
|
||||
#dscl . -append /Groups/_developer GroupMembership usuario
|
||||
# Bajar volumen (valor entre 0 y 7).
|
||||
#osascript -e 'set volume 1'
|
||||
""")
|
||||
|
||||
# Paso 2: Incluir código genérico de postconfiguración.
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -31,9 +31,8 @@ import FileLib
|
|||
## [ -f $DEVICECFG ] && source $DEVICECFG
|
||||
## pero luego no utiliza ninguna de las variables definidas en el archivo...
|
||||
|
||||
disk = sys.argv[1]
|
||||
par = sys.argv[2]
|
||||
imgname = sys.argv[3]
|
||||
disk, par, *other = sys.argv[1:]
|
||||
imgname = other[0] if len (other) > 0 else ''
|
||||
|
||||
# Si el sistema de archivos no esta extendido, ampliarlo al tamaño de su partición.
|
||||
partsize = DiskLib.ogGetPartitionSize (disk, par)
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
# configureOsCustom
|
||||
#@brief Plantilla para scirpt de configuracion personalizada de sistema operativo restaurado.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP (opcional)
|
||||
#@param $4 Nombre canónico de la imagen sin extensión (opcional)
|
||||
#@warning Renombrar este fichero como "configureOsCustom" para sustituir al script estándar "configureOs".
|
||||
#@note Los parámetros disco y partición son obligatorios y opcionalmente puede recibir también el repositorio y la imagen usada para en el despliegue.
|
||||
#**/
|
||||
|
||||
|
||||
# Control de parámetros.
|
||||
[ $# -eq 2 -o $# -eq 4 ] || ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: configureOsCustom int_ndisc int_npart [str_repo str_imgname]" || exit $?
|
||||
|
||||
# Parámetros obligatorios.
|
||||
DISK="$1" # Nº de disco.
|
||||
PART="$2" # Nº de partición.
|
||||
# Parámetros opcionales.
|
||||
REPO="${3^^}" # Repositorio (en mayúsculas).
|
||||
IMGNAME="$4" # Nombre canónico de imagen (sin extensión).
|
||||
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
# Paso 1: Adaptar el código de ejemplo para postconfiguración personalizada.
|
||||
# Nota: incluye llamada al script "configureOs" para realizar previamente una configuración estándar.
|
||||
|
||||
# Configurarción típica.
|
||||
configureOs "$1" "$2"
|
||||
# Postconfiguración personalizada para cada tipo de sistema operativo.
|
||||
OSTYPE="$(ogGetOsType $1 $2)"
|
||||
case "$OSTYPE" in
|
||||
Windows) # Postconfiguración de Windows.
|
||||
# Descomentar la siguiente línea para cambiar usuario de inicio.
|
||||
#ogSetWinlogonUser $1 $2 " "
|
||||
# OPCIONAL: desactivar el chkdisk de windows tras la restauracion. Requiere configuracion previa en el engine.cfg
|
||||
#ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
|
||||
;;
|
||||
Linux) # Postconfiguración de GNU/Linux.
|
||||
##OPCIONAL Para UEFI: cambia el UUID de la partición (para tener dos linux en un equipo)
|
||||
#ogUuidChange $DISK $PART
|
||||
##OPCIONAL Limpiar dispositivos reconocidos previamente
|
||||
#ogCleanLinuxDevices $1 $2
|
||||
## Instala (no configura) el codigo de arranque del Grub en la partición (no lo configura, se mantiene el original de la imagen)
|
||||
#ogGrubInstallPartition $1 $2
|
||||
## OPCIONAL: instala y configura el codigo de arranque del Grub en el MBR (no lo configura, se mantiene el original de la imagen)
|
||||
#ogGrubInstallMbr $1 $2
|
||||
## OPCIONAL: Instala y configura el Grub en el MBR y lo autoconfigura, entradas para los sitemas operativos, ademas al linux restaurado le añade los parmetros indicados.
|
||||
#ogGrubInstallMbr $1 $2 TRUE "irqpoll pci=noacpi noresume quiet splash"
|
||||
;;
|
||||
MacOS) # Postconfiguración de Mac OS X.
|
||||
# Programa de inicio que será ejecutado en el arranque de Mac OS X.
|
||||
# NOTA: no modificar la línea siguiente.
|
||||
cat << EOT | sed -n -e '/rm -f /r /dev/stdin' -e 1x -e '2,${x;p}' -e '${x;p}' $MNTDIR/var/root/postconfd.sh
|
||||
|
||||
### NOTA: descomentar las opciones deseadas.
|
||||
# Activar Journaling en HFS+ (no usar si el cliente continua en OpenGnsys).
|
||||
#diskutil enableJournal disk$[$1-1]s$2
|
||||
# Pedir usuario y clave en pantalla de conexión.
|
||||
#defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool yes
|
||||
# No mostrar botón de cambio rápido de usuario.
|
||||
#defaults write /Library/Preferences/.GlobalPreferences MultipleSessionEnabled -bool NO
|
||||
# Bloquear escritorio, fondo, dock, etc del usuario "usuario".
|
||||
#chflags uchange /Users/usuario/Library/Preferences/com.apple.desktop.plist
|
||||
#chflags uchange /Users/usuario/Library/Preferences/com.apple.dock.plist
|
||||
#chflags uchange /Users/usuario/Desktop
|
||||
# Añadir usuario "usuario" a la lista de desarrolladores de Xcode.
|
||||
#DevToolsSecurity --enable
|
||||
#dscl . -append /Groups/_developer GroupMembership usuario
|
||||
# Bajar volumen (valor entre 0 y 7).
|
||||
#osascript -e 'set volume 1'
|
||||
|
||||
EOT
|
||||
# NOTA: no modificar la línea anterior.
|
||||
;;
|
||||
esac
|
||||
|
||||
# Paso 2: Incluir código genérico de postconfiguración.
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/python3
|
||||
#/**
|
||||
# configureOsCustom
|
||||
#@brief Plantilla para scirpt de configuracion personalizada de sistema operativo restaurado.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP (opcional)
|
||||
#@param $4 Nombre canónico de la imagen sin extensión (opcional)
|
||||
#@warning Renombrar este fichero como "configureOsCustom" para sustituir al script estándar "configureOs".
|
||||
#@note Los parámetros disco y partición son obligatorios y opcionalmente puede recibir también el repositorio y la imagen usada para en el despliegue.
|
||||
#**/
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
import ogGlobals
|
||||
from SystemLib import ogRaiseError, ogEcho
|
||||
from InventoryLib import ogGetOsType
|
||||
|
||||
prog = sys.argv[0]
|
||||
|
||||
if len (sys.argv) not in [3, 5]:
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'{ogGlobals.lang.MSG_FORMAT} configureOsCustom int_ndisc int_npart [str_repo str_imgname]')
|
||||
sys.exit (1)
|
||||
disk, par, *other = sys.argv[1:]
|
||||
repo = other[0].upper() if len (other) > 0 else ''
|
||||
imgname = other[1] if len (other) > 1 else ''
|
||||
|
||||
# Nota: incluye llamada al script "configureOs" para realizar previamente una configuración estándar.
|
||||
subprocess.run ([f'configureOs.py', disk, par, imgname])
|
||||
|
||||
ostype = ogGetOsType (disk, par)
|
||||
if 'Windows' == ostype:
|
||||
pass
|
||||
elif 'Linux' == ostype:
|
||||
pass
|
||||
elif 'MacOS' == ostype:
|
||||
pass
|
|
@ -63,7 +63,7 @@ def main (disk, par, repo, imgname):
|
|||
# Clear temporary file used as log track by httpdlog
|
||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
||||
# salvo si es llamado desde createImageCustom
|
||||
if 'createImageCustom' != SystemLib.ogGetCaller():
|
||||
if 'createImageCustom.py' != SystemLib.ogGetCaller():
|
||||
with open (ogGlobals.OGLOGSESSION, 'w') as fd: fd.write ('')
|
||||
with open (ogGlobals.OGLOGCOMMAND, 'w') as fd: fd.write ('')
|
||||
with open (f'{ogGlobals.OGLOGCOMMAND}.tmp', 'w') as fd: fd.write ('')
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
# createImageCustom
|
||||
#@brief Plantilla para scirpt de creación personalizada de imagen.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP
|
||||
#@param $4 Nombre canónico de la imagen sin extensión
|
||||
#@warning Renombrar este fichero como "createImageCustom" para sustituir al script estándar "createImage".
|
||||
#**/
|
||||
|
||||
|
||||
# Control de parámetros.
|
||||
[ $# -eq 4 ] || ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: createImageCustom int_ndisc int_npart str_repo str_imgname" || exit $?
|
||||
|
||||
# Toma de parámetros.
|
||||
DISK="$1" # Nº de disco.
|
||||
PART="$2" # Nº de partición.
|
||||
REPO="${3^^}" # Repositorio (en mayúsculas).
|
||||
IMGNAME="$4" # Nombre canónico de imagen (sin extensión).
|
||||
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
|
||||
# Paso 1: Añadir aquí el código para el proceso previo antes de la creación de la imagen en el equipo modelo (opcional).
|
||||
|
||||
|
||||
# Paso 2: Sustituir, si se desea, la llamada al proceso estándar de creación de imagen por código personalizado.
|
||||
createImage "$@"
|
||||
|
||||
|
||||
# Paso 3: Añadir aquí el código para el proceso posterior tras la creación de la imagen (opcional).
|
||||
|
||||
|
|
@ -1,27 +1,25 @@
|
|||
#!/usr/bin/python3
|
||||
#/**
|
||||
# createImageCustom
|
||||
#@brief Plantilla para scirpt de creación personalizada de imagen.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP
|
||||
#@param $4 Nombre canónico de la imagen sin extensión
|
||||
#@warning Renombrar este fichero como "createImageCustom" para sustituir al script estándar "createImage".
|
||||
#**/
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
#!/usr/bin/env python3
|
||||
import ogGlobals
|
||||
from SystemLib import ogRaiseError
|
||||
|
||||
def main():
|
||||
# Control de parámetros.
|
||||
if len(sys.argv) != 5:
|
||||
ogRaiseError(os.getenv('OG_ERR_FORMAT', 1), "createImageCustom int_ndisc int_npart str_repo str_imgname")
|
||||
|
||||
# Toma de parámetros.
|
||||
DISK = sys.argv[1] # Nº de disco.
|
||||
PART = sys.argv[2] # Nº de partición.
|
||||
REPO = sys.argv[3].upper() # Repositorio (en mayúsculas).
|
||||
IMGNAME = sys.argv[4] # Nombre canónico de imagen (sin extensión).
|
||||
# Control de parámetros.
|
||||
if len (sys.argv) != 5:
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'{ogGlobals.lang.MSG_FORMAT} createImageCustom int_ndisc int_npart str_repo str_imgname')
|
||||
sys.exit (1)
|
||||
disk, par, repo, imgname = sys.argv[1:]
|
||||
repo = repo.upper()
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
# Paso 1: Añadir aquí el código para el proceso previo antes de la creación de la imagen en el equipo modelo (opcional).
|
||||
|
||||
# Paso 2: Sustituir, si se desea, la llamada al proceso estándar de creación de imagen por código personalizado.
|
||||
createImage(DISK, PART, REPO, IMGNAME)
|
||||
|
||||
# Paso 3: Añadir aquí el código para el proceso posterior tras la creación de la imagen (opcional).
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
subprocess.run (['createImage.py', disk, par, repo, imgname])
|
||||
|
|
|
@ -138,9 +138,9 @@ def main (repo, imgname, disk, par, proto='UNICAST', protoopt=''):
|
|||
params = [repo, imgname, disk, par, proto, protoopt]
|
||||
|
||||
# Si existe, ejecuta script personalizado "restoreImageCustom"; si no, llama al genérico "restoreImage".
|
||||
if shutil.which ('restoreImageCustom'):
|
||||
if shutil.which ('restoreImageCustom.py'):
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[55] {ogGlobals.lang.MSG_HELP_ogRestoreImage}: restoreImageCustom {params}')
|
||||
retval = subprocess.run (['restoreImageCustom'] + params).returncode
|
||||
retval = subprocess.run (['restoreImageCustom.py'] + params).returncode
|
||||
else:
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[55] {ogGlobals.lang.MSG_HELP_ogRestoreImage}: restoreImage {params}')
|
||||
retval = subprocess.run (['restoreImage.py'] + params).returncode
|
||||
|
@ -160,9 +160,9 @@ def main (repo, imgname, disk, par, proto='UNICAST', protoopt=''):
|
|||
SystemLib.ogEcho (['log', 'session'], None, f' [ ] {ogGlobals.lang.MSG_SCRIPTS_TIME_PARTIAL} : {int (time3/60)}m {int (time3%60)}s')
|
||||
|
||||
# Si existe, ejecuta script personalizado de postconfiguración "configureOsCustom"; si no, llama al genérico "configureOs".
|
||||
if shutil.which ('configureOsCustom'):
|
||||
if shutil.which ('configureOsCustom.py'):
|
||||
SystemLib.ogEcho (['log', 'session'], None, '[90] configureOsCustom')
|
||||
subprocess.run (['configureOsCustom', disk, par, repo, imgname])
|
||||
subprocess.run (['configureOsCustom.py', disk, par, repo, imgname])
|
||||
else:
|
||||
SystemLib.ogEcho (['log', 'session'], None, f'[90] {ogGlobals.lang.MSG_SCRIPTS_OS_CONFIGURE}')
|
||||
subprocess.run (['configureOs.py', disk, par, imgname])
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
#!/bin/bash
|
||||
#/**
|
||||
# restoreImageCustom
|
||||
#@brief Plantilla para scirpt de rastauración personalizada de imagen.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP
|
||||
#@param $4 Nombre canónico de la imagen sin extensión
|
||||
#@warning Renombrar este fichero como "restoreImageCustom" para sustituir al script estándar "restoreImage".
|
||||
#**/
|
||||
|
||||
|
||||
# Control de parámetros.
|
||||
[ $# -ge 4 -a $# -le 6 ] || ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: restoreImageCustom str_repo str_imagen int_ndisco int_npart [ str_proto [\"str_opciones\"] ]" || exit $?
|
||||
|
||||
# Toma de parámetros.
|
||||
REPO="${1^^}" # Repositorio (en mayúsculas).
|
||||
IMGNAME="$2" # Nombre canónico de imagen (sin extensión).
|
||||
DISK="$3" # Nº de disco.
|
||||
PART="$4" # Nº de partición.
|
||||
PROTO="${5^^}" # Protocolo de comunicaciones (por defecto, UNICAST).
|
||||
PROTO=${PROTO:-"UNICAST"}
|
||||
PROTOOPT="$6" # Opciones del protocolo separadas por ":" (opcional).
|
||||
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
|
||||
# Paso 1: Añadir aquí el código para el proceso previo antes de la restauración de la imagen en los equipos (opcional).
|
||||
|
||||
|
||||
# Paso 2: Sustituir, si se desea, la llamada al proceso estándar de restauración de imagen por código personalizado.
|
||||
restoreImage "$@"
|
||||
|
||||
|
||||
# Aviso: editar la plantilla "configureOsCustom" para añadir el código personalizado para el proceso de postconfiguración de los clientes (no incluir aquí dicho código).
|
||||
|
|
@ -1,35 +1,28 @@
|
|||
import sys
|
||||
import os
|
||||
import SystemLib
|
||||
#!/usr/bin/python3
|
||||
#/**
|
||||
# restoreImageCustom
|
||||
#@brief Plantilla para scirpt de rastauración personalizada de imagen.
|
||||
#@param $1 nº de disco
|
||||
#@param $2 nº de partición
|
||||
#@param $3 Repositorio: CACHE, REPO o dirección IP
|
||||
#@param $4 Nombre canónico de la imagen sin extensión
|
||||
#@warning Renombrar este fichero como "restoreImageCustom" para sustituir al script estándar "restoreImage".
|
||||
#**/
|
||||
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
restoreImageCustom
|
||||
@brief Plantilla para script de restauración personalizada de imagen.
|
||||
@param $1 nº de disco
|
||||
@param $2 nº de partición
|
||||
@param $3 Repositorio: CACHE, REPO o dirección IP
|
||||
@param $4 Nombre canónico de la imagen sin extensión
|
||||
@warning Renombrar este fichero como "restoreImageCustom" para sustituir al script estándar "restoreImage".
|
||||
"""
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
import ogGlobals
|
||||
from SystemLib import ogRaiseError
|
||||
|
||||
# Control de parámetros.
|
||||
if not (4 <= len(sys.argv) <= 6):
|
||||
SystemLib.ogRaiseError(os.getenv('OG_ERR_FORMAT'), "restoreImageCustom str_repo str_imagen int_ndisco int_npart [ str_proto [\"str_opciones\"] ]")
|
||||
|
||||
if len (sys.argv) < 5 or len (sys.argv) > 7):
|
||||
ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'restoreImageCustom str_repo str_imagen int_ndisco int_npart [ str_proto ["str_opciones"] ]')
|
||||
sys.exit (1)
|
||||
# Toma de parámetros.
|
||||
REPO = sys.argv[1].upper() # Repositorio (en mayúsculas).
|
||||
IMGNAME = sys.argv[2] # Nombre canónico de imagen (sin extensión).
|
||||
DISK = sys.argv[3] # Nº de disco.
|
||||
PART = sys.argv[4] # Nº de partición.
|
||||
PROTO = sys.argv[5].upper() if len(sys.argv) > 5 else "UNICAST" # Protocolo de comunicaciones (por defecto, UNICAST).
|
||||
PROTOOPT = sys.argv[6] if len(sys.argv) > 6 else "" # Opciones del protocolo separadas por ":" (opcional).
|
||||
repo, imgname, disk, par, *other = sys.argv[1:]
|
||||
repo = repo.upper()
|
||||
proto = other[0].upper() if len (other) > 0 else 'UNICAST'
|
||||
protoopt = other[1] if len (other) > 1 else ''
|
||||
|
||||
# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
|
||||
|
||||
# Paso 1: Añadir aquí el código para el proceso previo antes de la restauración de la imagen en los equipos (opcional).
|
||||
|
||||
# Paso 2: Sustituir, si se desea, la llamada al proceso estándar de restauración de imagen por código personalizado.
|
||||
restoreImage(*sys.argv[1:])
|
||||
|
||||
# Aviso: editar la plantilla "configureOsCustom" para añadir el código personalizado para el proceso de postconfiguración de los clientes (no incluir aquí dicho código).
|
||||
subprocess.run (['restoreImage.py', repo, imgname, disk, par, proto, protoopt])
|
||||
|
|
Loading…
Reference in New Issue