Compare commits
	
		
			10 commits
		
	
	
		
			9c7192ed0d
			...
			88d122ea6e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 88d122ea6e | |||
| 76e7c7a5de | |||
| 141ed2b0d3 | |||
| 821ce472a4 | |||
| 1cd318b7f6 | |||
| a88555da13 | |||
| 7062e1b2fb | |||
| d6b4014e1c | |||
| 0362a9fc41 | |||
| 09b233e461 | 
					 12 changed files with 652 additions and 17 deletions
				
			
		
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
								
							|  | @ -1,9 +1,5 @@ | ||||||
| # AMBIENTE LOCAL PARA DESARROLLADORES (MRDEVS TOOLS) | # AMBIENTE LOCAL PARA DESARROLLADORES (MRDEVS TOOLS) | ||||||
| ## GUÍA PARA DESARROLLADORES - REV. 30/11/2024 | ## GUÍA PARA DESARROLLADORES - REV. 08/12/2024 | ||||||
| 
 |  | ||||||
| ### REQUISITOS DE INSTALACIÓN |  | ||||||
| 
 |  | ||||||
| (Pendiente) |  | ||||||
| 
 | 
 | ||||||
| ### PREPARACIÓN DE AMBIENTE LOCAL PARA DESARROLLADORES | ### PREPARACIÓN DE AMBIENTE LOCAL PARA DESARROLLADORES | ||||||
| 
 | 
 | ||||||
|  | @ -14,17 +10,51 @@ En la carpeta $HOME descargue el repositorio devs (la carpeta no debe existir): | ||||||
|     $ cd $HOME |     $ cd $HOME | ||||||
|     $ git clone https://git.rosero.one/mrosero/devs.git |     $ git clone https://git.rosero.one/mrosero/devs.git | ||||||
| 
 | 
 | ||||||
| #### Instalación de herramientas para gestión de contenedores | **Nota:** Previamente, debe tener instalado el comando git. | ||||||
|  | 
 | ||||||
|  | #### Instalación de herramientas básicas y de gestión de contenedores  | ||||||
| 
 | 
 | ||||||
| A partir de este momento, la carpeta $HOME/devs será nuestra área de desarrollo donde se descargaran los diversos ambientes de desarrollo. Como primer paso instalaremos las herramientas básicas y de gestión de contenedores. Por razones de seguridad, priorizamos el uso de **podman**. | A partir de este momento, la carpeta $HOME/devs será nuestra área de desarrollo donde se descargaran los diversos ambientes de desarrollo. Como primer paso instalaremos las herramientas básicas y de gestión de contenedores. Por razones de seguridad, priorizamos el uso de **podman**. | ||||||
| 
 | 
 | ||||||
|     $ cd $HOME/devs |     $ cd $HOME/devs | ||||||
|     $ bin/bootstrap.sh |     $ bin/bootstrap.sh | ||||||
| 
 | 
 | ||||||
| ### GESTIÓN DE DNS LOCAL PARA DESARROLLADORES (DNSMASQ) | #### Actualización de ambiente local de desarrollo | ||||||
| 
 | 
 | ||||||
| #### Habilitar permiso local para puerto 53 (DNS) | Actualice los nuevos cambios y funcionalidades del ambiente de desarrollo local raíz | ||||||
| 
 | 
 | ||||||
| Antes de poder levantar el contenedor dnsmasq, se requiere dar permisos para poder habilitar el puerto 53: |     $ cd $HOME/devs | ||||||
|  |     $ bin/update.sh | ||||||
|  | 
 | ||||||
|  | ### ACCESO VPN A INFRAESTRUCTURA PARA DESARROLLADORES | ||||||
|  | 
 | ||||||
|  | #### Instalación de Cliente VPN con ambiente GUI (gráfico) | ||||||
|  | 
 | ||||||
|  | Para tener acceso a todos los recursos y servidores de desarrollo se requiere acceder vía VPN a la infraestructura d desarrollo. Para esto, se requiere instalar el cliente PRITUNL como sigue: | ||||||
|  | 
 | ||||||
|  |     $ cd $HOME/devs | ||||||
|  |     $ bin/vpn_install.sh [--help] [--version] [--update] | ||||||
|  | 
 | ||||||
|  | Nota: En determinadas versiones, las actualizaciones a partir de los repositorios no es posible por lo que usamos el argumento --update. | ||||||
|  |   | ||||||
|  | #### Instalación de Cliente OpenVPN con ambiente TUI (texto) | ||||||
|  | 
 | ||||||
|  | (pendiente) | ||||||
|  | 
 | ||||||
|  | #### Obtener archivo de configuración para acceso VPN | ||||||
|  | 
 | ||||||
|  | (pendiente) | ||||||
|  | 
 | ||||||
|  | ### GESTIONANDO FIRMA GPG | ||||||
|  | 
 | ||||||
|  | #### Inicialización de configuración GPG | ||||||
|  | 
 | ||||||
|  | Como un requisito de nuestra plataforma, todos los desarrolladores deberán contar, por lo menos, con una clave GPG, que se utilizará para firmar o decifrar archivos, correos u otros.  Esto se hará con el uso del comando gpgp que ya debió ser instalado con la ejecución de bin/boostrap.sh. | ||||||
|  | 
 | ||||||
|  | En este paso estableceremos la configuración por defecto de GPG: | ||||||
|  | 
 | ||||||
|  |     $ cd $HOME/devs | ||||||
|  |     $ bin/gpg_init.sh | ||||||
|  | 
 | ||||||
|  | #### Creación de clave GPG | ||||||
| 
 | 
 | ||||||
|     $ dns/setport53.sh |  | ||||||
|  | @ -55,6 +55,7 @@ install() { | ||||||
|     local WGET_PACKAGE=wget |     local WGET_PACKAGE=wget | ||||||
|     local DIALOG_PACKAGE=dialog |     local DIALOG_PACKAGE=dialog | ||||||
| 	local SOPS_PACKAGE=sops | 	local SOPS_PACKAGE=sops | ||||||
|  |     local GNUPG_PACKAGE=gnupg | ||||||
| 
 | 
 | ||||||
| 	# Load base bash library | 	# Load base bash library | ||||||
| 	source $BIN_PATH/$LIBRARY/base.lib | 	source $BIN_PATH/$LIBRARY/base.lib | ||||||
|  | @ -86,6 +87,13 @@ install() { | ||||||
| 	  os_pkgs_install $GIT_PACKAGE | 	  os_pkgs_install $GIT_PACKAGE | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
|  | 	# Install gnupg from OS Packages | ||||||
|  | 	command_installed $GNUPG_PACKAGE | ||||||
|  | 	if [ $? -ne 0 ] | ||||||
|  | 	then | ||||||
|  | 	  os_pkgs_install $GNUGP_PACKAGE | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
| 	# Install dialog from OS Packages | 	# Install dialog from OS Packages | ||||||
| 	command_installed $DIALOG_PACKAGE | 	command_installed $DIALOG_PACKAGE | ||||||
| 	if [ $? -ne 0 ] | 	if [ $? -ne 0 ] | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								bin/config/gpg.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								bin/config/gpg.config
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | keyserver hkps://keyserver.ubuntu.com | ||||||
|  | utf8-strings | ||||||
|  | keyid-format long | ||||||
|  | with-fingerprint | ||||||
|  | with-sig-list | ||||||
|  | list-options show-notations | ||||||
							
								
								
									
										99
									
								
								bin/gpg_init.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										99
									
								
								bin/gpg_init.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,99 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # gpg_init.sh | ||||||
|  | # Modified: 2024/12/09 10:27:00 | ||||||
|  | # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||||
|  | # | ||||||
|  | # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||||
|  | # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||||
|  | # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||||
|  | # o (a su elección) cualquier versión posterior. | ||||||
|  | # | ||||||
|  | # Este programa se distribuye con la esperanza de que sea útil, | ||||||
|  | # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||||
|  | # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||||
|  | # Licencia Pública Affero General de GNU para obtener más detalles. | ||||||
|  | # | ||||||
|  | # Debería haber recibido una copia de la Licencia Pública Affero General | ||||||
|  | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | DEVSPATH=devs | ||||||
|  | BIN_HOME=$HOME/$DEVSPATH | ||||||
|  | BIN_MESG=bin/msg | ||||||
|  | BIN_LIBS=bin/lib | ||||||
|  | 
 | ||||||
|  | # CHECK SHELL LANGUAGE | ||||||
|  | BIN_LANG=${LANG:0:2} | ||||||
|  | 
 | ||||||
|  | # LOAD BASE BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/base.lib | ||||||
|  | #baselib_test | ||||||
|  | 
 | ||||||
|  | # LOAD CONSOLE BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/console.lib | ||||||
|  | #consolelib_test | ||||||
|  | 
 | ||||||
|  | # LOAD GPG BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/gpg.lib | ||||||
|  | #gpglib_test | ||||||
|  | 
 | ||||||
|  | # Load head messages | ||||||
|  | load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head" | ||||||
|  | 
 | ||||||
|  | # Load gpg messages | ||||||
|  | load_messages $BIN_HOME $BIN_MESG $BIN_LANG "gpg" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ########### MAIN PROGRAM ########### | ||||||
|  | 
 | ||||||
|  | # Set program title | ||||||
|  | title="$head_000 $head_002" | ||||||
|  | apps_title="${gpmsg_000}" | ||||||
|  | 
 | ||||||
|  | # Check if dialog is not installed, exited! | ||||||
|  | command_installed "dialog" | ||||||
|  | if [ $? -ne 0 ] | ||||||
|  | then | ||||||
|  |   display_devstools_header "${gpmsg_000}" | ||||||
|  |   echo "${head_001}" | ||||||
|  |   exit 200 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Check if os is valid! | ||||||
|  | get_osname | ||||||
|  | if [ "${os_name}" == "${head_unknow}" ] | ||||||
|  | then | ||||||
|  |   dialog_error_box "${head_error}" "${head_os_error}" | ||||||
|  |   exit 3 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Reset gpg configuration to template | ||||||
|  | dialog_yesno "${gpmsg_101}" | ||||||
|  | case ${result} in | ||||||
|  |   0) | ||||||
|  |     gpg_setting "$BIN_HOME" "$GPG_DEFAULT_PATH" "$GPG_DEFAULT_PATH" "$DATEBAK" | ||||||
|  |     rc=$? | ||||||
|  |     case $rc in | ||||||
|  |       0) | ||||||
|  |         dialog_error_box "${head_info}" "${gpmsg_102}" | ||||||
|  |         clear | ||||||
|  |         exit 0 | ||||||
|  |         ;; | ||||||
|  |       1) | ||||||
|  |         dialog_error_box "${head_error}" "${gpmsg_103}" | ||||||
|  |         clear | ||||||
|  |         exit 0 | ||||||
|  |         ;; | ||||||
|  |       *) | ||||||
|  |         dialog_error_box "${head_error}" "${head_op_error} (${rc})" | ||||||
|  |         ;; | ||||||
|  |     esac | ||||||
|  |     ;; | ||||||
|  |   *) | ||||||
|  |     dialog_error_box "${head_error}" "${head_op_error}" | ||||||
|  |     ;; | ||||||
|  | esac | ||||||
|  | 
 | ||||||
|  | # End Main Program | ||||||
|  | clear | ||||||
							
								
								
									
										100
									
								
								bin/hexroute
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										100
									
								
								bin/hexroute
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,100 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | ###################################################################### | ||||||
|  | # | ||||||
|  | #  hexroute - Convert human readable routes to dhcpd static route info | ||||||
|  | #             for Windows(r) clients | ||||||
|  | # | ||||||
|  | #  Copyright (c) 2005-2015 Karl McMurdo | ||||||
|  | # | ||||||
|  | #  Freely distributable, but please keep header intact | ||||||
|  | # | ||||||
|  | #  Update: May 10, 2007 Change Max Quad to 255 | ||||||
|  | # | ||||||
|  | ###################################################################### | ||||||
|  | 
 | ||||||
|  | function split_ipaddr() { | ||||||
|  | [ ${1:-X} = X -o "${1}" != ${1//[^.0-9]/} -o ${1:-X} = X \ | ||||||
|  |     -o "${1//[0-9]/}" != "..." ] && return 1 | ||||||
|  | 	local rval=0 | ||||||
|  | 	local t | ||||||
|  | 	local T[1] | ||||||
|  | 	local T[2] | ||||||
|  | 	local T[3] | ||||||
|  | 	local T[4] | ||||||
|  | 	T[1]=${1%%.*} | ||||||
|  | 	T[2]=${1#*.} | ||||||
|  | 	T[2]=${T[2]%%.*} | ||||||
|  | 	T[3]=${1#*.*.} | ||||||
|  | 	T[3]=${T[3]%%.*} | ||||||
|  | 	T[4]=${1#*.*.*.} | ||||||
|  | 	[ ${T[1]} = 0 ] && rval=1 | ||||||
|  | 	for t in 1 2 3 4 | ||||||
|  | 	do | ||||||
|  | 		[ ${T[${t}]:-999} -gt 255 ] && rval=1 | ||||||
|  | 		eval "${2}[${t}]=${T[${t}]}" | ||||||
|  | 	done | ||||||
|  | 	return ${rval} | ||||||
|  | } | ||||||
|  | USAGE='echo -e "Usage: ${0//*\/} [-v|-h] target/bits [gw] gateway [target/bits [gw] gateway ...]\n\n\tie: ${0} 172.16.0.0/16 gw 192.168.1.1\n" && exit 1' | ||||||
|  | INFO="HexRoute 1.0    Copyright (c) 2015 Karl McMurdo | ||||||
|  | 
 | ||||||
|  | Converts human readable route information to a dhcpd hex string | ||||||
|  | 
 | ||||||
|  | 	-v	Once prints full dhcpd.conf line for route(s) | ||||||
|  | 		Twice also prints option definiton lines for dhcpd.conf | ||||||
|  | 	-h	Prints this message | ||||||
|  | " | ||||||
|  | DHCPHDR="# New Option Type for Windows Client Static Routes | ||||||
|  | option new-static-routes code 249 = string;" | ||||||
|  | DHCPS="option new-static-routes " | ||||||
|  | DHCPE=";" | ||||||
|  | BADTARG='echo -e "Invalid target network: ${1}" && exit 2' | ||||||
|  | BADBITS='echo -e "Invalid Network bit value: ${1}" && exit 3' | ||||||
|  | BADGW='echo -e "Invalid Gateway: ${2}" && exit 4' | ||||||
|  | VERBOSE=false | ||||||
|  | EXTRAVERBOSE=false | ||||||
|  | 
 | ||||||
|  | while [ "${1:0:1}" = "-" ] | ||||||
|  | do | ||||||
|  | 	if [ "${1}" = "-v" ] | ||||||
|  | 	then | ||||||
|  | 		$VERBOSE && EXTRAVERBOSE=true | ||||||
|  | 		VERBOSE=true | ||||||
|  | 	elif [ "${1}" = "-h" ] | ||||||
|  | 	then | ||||||
|  | 		echo "${INFO}" | ||||||
|  | 		eval "${USAGE}" | ||||||
|  | 	else | ||||||
|  | 		eval "${USAGE}" | ||||||
|  | 	fi | ||||||
|  | 	shift | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | [ ${#} -lt 2 ] && eval "${USAGE}" | ||||||
|  | OUT="" | ||||||
|  | 
 | ||||||
|  | while [ ${#} -ge 2 ] | ||||||
|  | do | ||||||
|  | 	split_ipaddr ${1/\/*/} TARG || eval "${BADTARG}" | ||||||
|  | 	BITS=${1/*\//} | ||||||
|  | 	shift | ||||||
|  | 	[ ${BITS:-X} = X -o "${BITS}" != ${BITS//[^0-9]/} ] && eval "${BADBITS}" | ||||||
|  | 	[ ${BITS} -gt 32 -o ${BITS} -lt 1 ] && eval "${BADBITS}" | ||||||
|  | 	[ ${1:-X} = gw ] && shift | ||||||
|  | 	split_ipaddr ${1:-X} GW || eval "${BADGW}" | ||||||
|  | 	shift | ||||||
|  | 	OUT=${OUT}$( printf ":%02x:%02x" ${BITS} ${TARG[1]} ) | ||||||
|  | 	[ ${BITS} -gt 8 ]  && OUT=${OUT}$( printf ":%02x" ${TARG[2]} ) | ||||||
|  | 	[ ${BITS} -gt 16 ] && OUT=${OUT}$( printf ":%02x" ${TARG[3]} ) | ||||||
|  | 	[ ${BITS} -gt 24 ] && OUT=${OUT}$( printf ":%02x" ${TARG[4]} ) | ||||||
|  | 	OUT=${OUT}$( printf ":%02x:%02x:%02x:%02x" ${GW[@]} ) | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | $EXTRAVERBOSE && echo "${DHCPHDR}" | ||||||
|  | if $VERBOSE | ||||||
|  | then | ||||||
|  | 	echo ${DHCPS}${OUT/:/}${DHCPE} | ||||||
|  | else | ||||||
|  | 	echo ${OUT/:/} | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | @ -19,6 +19,8 @@ | ||||||
| 
 | 
 | ||||||
| DEVS_NAME=config/project.head | DEVS_NAME=config/project.head | ||||||
| GIT_IGNORE=.gitignore | GIT_IGNORE=.gitignore | ||||||
|  | DATENOW="$(date +"%Y-%m-%d %H:%M:%S")" | ||||||
|  | DATEBAK="$(date +"%Y%m%d%H%M%S")" | ||||||
| 
 | 
 | ||||||
| DOCKER_LOCAL=dockerfile.local | DOCKER_LOCAL=dockerfile.local | ||||||
| DOCKER_BASE=dockerfile.base | DOCKER_BASE=dockerfile.base | ||||||
|  |  | ||||||
|  | @ -18,7 +18,79 @@ | ||||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| SOPS_VERSION=v3.9.2 | SOPS_VERSION=3.9.2 | ||||||
|  | PRITUNL_SIGN=7568D9BB55FF9E5287D586017AE645C0CF8E292A | ||||||
|  | PRITUNL_UPDT=1.3.4099.99 | ||||||
|  | UBUNTU_LIST=("jammy"  "noble" "oracular") | ||||||
|  | UBUNTU_UPDT_LIST=("noble" "oracular") | ||||||
|  | 
 | ||||||
|  | # Install pritunl vpn package | ||||||
|  | function install_pritunl() { | ||||||
|  | 
 | ||||||
|  |   if [ "$(uname)" == "Darwin" ]; then | ||||||
|  |       # En macOS, instalamos o actualizamos Python a través de Homebrew | ||||||
|  |       brew install git go node | ||||||
|  |       bash <(curl -s https://raw.githubusercontent.com/pritunl/pritunl-client-electron/master/tools/install_macos.sh) | ||||||
|  |       return $? | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   OS_INFO=$(lsb_release -a 2>/dev/null) | ||||||
|  |   if [ $? -eq 0 ]; then | ||||||
|  |      OS_VERSION=$(echo "$OS_INFO" | grep "Codename" | awk '{print $2}' | tr -d ' ') | ||||||
|  |   else | ||||||
|  |     OS_INFO=$(cat /etc/os-release 2>/dev/null) | ||||||
|  |     OS_VERSION=$(echo "$OS_INFO" | grep "VERSION_CODENAME" | awk -F ': +' '{print $2}') | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   if echo "$OS_INFO" | grep -q "Ubuntu"; then | ||||||
|  |     if printf "%s\n" "${UBUNTU_LIST[@]}" | grep -q "^${OS_VERSION}$" | ||||||
|  |     then | ||||||
|  |       if [ ! -f /etc/apt/sources.list.d/pritunl.list ]; then | ||||||
|  |         echo "deb https://repo.pritunl.com/stable/apt $OS_VERSION main" > /etc/apt/sources.list.d/pritunl.list | ||||||
|  |       fi | ||||||
|  |       if [ ! -f /etc/apt/trusted.gpg.d/pritunl.asc ]; then | ||||||
|  |         gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys $PRITUNL_SIGN | ||||||
|  |         gpg --armor --export $PRITUNL_SIGN | tee /etc/apt/trusted.gpg.d/pritunl.asc | ||||||
|  |       fi | ||||||
|  |       apt update | ||||||
|  |       apt install pritunl-client-electron -y | ||||||
|  |       local rc=$? | ||||||
|  |       if [ $rc -eq 0 ]; then | ||||||
|  |         systemctl daemon-reload | ||||||
|  |         rc=$? | ||||||
|  |       fi | ||||||
|  |       return $rc | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   return 10 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Update pritunl vpn package | ||||||
|  | function update_pritunl() { | ||||||
|  | 
 | ||||||
|  |   OS_INFO=$(lsb_release -a 2>/dev/null) | ||||||
|  |   if [ $? -eq 0 ]; then | ||||||
|  |      OS_VERSION=$(echo "$OS_INFO" | grep "Codename" | awk '{print $2}' | tr -d ' ') | ||||||
|  |   else | ||||||
|  |     OS_INFO=$(cat /etc/os-release 2>/dev/null) | ||||||
|  |     OS_VERSION=$(echo "$OS_INFO" | grep "VERSION_CODENAME" | awk -F ': +' '{print $2}') | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   if echo "$OS_INFO" | grep -q "Ubuntu"; then | ||||||
|  |     if printf "%s\n" "${UBUNTU_UPDT_LIST[@]}" | grep -q "^${OS_VERSION}$" | ||||||
|  |     then | ||||||
|  |       cd /tmp | ||||||
|  |       wget https://github.com/pritunl/pritunl-client-electron/releases/download/$PRITUNL_UPDT/pritunl-client-electron_$PRITUNL_UPDT-0ubuntu1.${OS_VERSION}_amd64.deb | ||||||
|  |       dpkg -i pritunl-client-electron_$PRITUNL_UPDT-0ubuntu1.${OS_VERSION}_amd64.deb | ||||||
|  |       return $? | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  |   return 10 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| # Install python3 package | # Install python3 package | ||||||
| function python3_install() { | function python3_install() { | ||||||
|  | @ -66,24 +138,32 @@ function sops_install() { | ||||||
|   case $arch in |   case $arch in | ||||||
|     x86_64) |     x86_64) | ||||||
|       # Download the binary |       # Download the binary | ||||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.amd64 |       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$SOPS_VERSION.linux.amd64 | ||||||
|       if [ $? -eq 0 ]; then |       if [ $? -eq 0 ]; then | ||||||
|         # Move the binary in to your PATH |         # Move the binary in to your PATH | ||||||
|         mv sops-v$SOPS_VERSION.linux.amd64 /usr/local/bin/sops |         mv sops-v$SOPS_VERSION.linux.amd64 /usr/local/bin/sops | ||||||
|         # Make the binary executable |         if [ $? -eq 0 ]; then | ||||||
|         chmod +x /usr/local/bin/sops |           # Make the binary executable | ||||||
|  |           chmod a+x /usr/local/bin/sops | ||||||
|  |         else | ||||||
|  |           return 1 | ||||||
|  |         fi | ||||||
|       else |       else | ||||||
|         return 1 |         return 1 | ||||||
|       fi |       fi | ||||||
|       ;; |       ;; | ||||||
|     arm*) |     arm*) | ||||||
|       # Download the binary |       # Download the binary | ||||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.arm64 |       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$SOPS_VERSION.linux.arm64 | ||||||
|       if [ $? -eq 0 ]; then |       if [ $? -eq 0 ]; then | ||||||
|         # Move the binary in to your PATH |         # Move the binary in to your PATH | ||||||
|         mv sops-v$SOPS_VERSION.linux.arm64 /usr/local/bin/sops |         mv sops-v$SOPS_VERSION.linux.arm64 /usr/local/bin/sops | ||||||
|         # Make the binary executable |         if [ $? -eq 0 ]; then | ||||||
|         chmod +x /usr/local/bin/sops |           # Make the binary executable | ||||||
|  |           chmod a+x /usr/local/bin/sops | ||||||
|  |         else | ||||||
|  |           return 1 | ||||||
|  |         fi | ||||||
|       else |       else | ||||||
|         return 1 |         return 1 | ||||||
|       fi |       fi | ||||||
|  |  | ||||||
							
								
								
									
										77
									
								
								bin/lib/gpg.lib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								bin/lib/gpg.lib
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,77 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # Library: gpg.lib | ||||||
|  | # Modified: 2024/12/09 08:20:00 | ||||||
|  | # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||||
|  | # | ||||||
|  | # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||||
|  | # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||||
|  | # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||||
|  | # o (a su elección) cualquier versión posterior. | ||||||
|  | # | ||||||
|  | # Este programa se distribuye con la esperanza de que sea útil, | ||||||
|  | # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||||
|  | # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||||
|  | # Licencia Pública Affero General de GNU para obtener más detalles. | ||||||
|  | # | ||||||
|  | # Debería haber recibido una copia de la Licencia Pública Affero General | ||||||
|  | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | GPG_DEFAULT_PATH=~/.gnupg | ||||||
|  | GPG_CFG_PATH=bin/config | ||||||
|  | GPG_TEMPLATE=gpg.config | ||||||
|  | GPG_CONFIG=gpg.conf | ||||||
|  | GPG_SUBKEY_ID="" | ||||||
|  | DB_GPG_SUBKEYS_KEY="subkey_id" | ||||||
|  | DB_GPG_SUBKEYS="GPG_SUBKEYS" | ||||||
|  | DF_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||||
|  | REVOKE_FILES="*.rev" | ||||||
|  | 
 | ||||||
|  | # Test library | ||||||
|  | function gpglib_test() { | ||||||
|  |   echo "GPG Library loaded!" | ||||||
|  |   exit 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Set gpg environment | ||||||
|  | function gpg_setting() { | ||||||
|  | 
 | ||||||
|  |     local BIN_CONFIG=$1 | ||||||
|  |     local GPG_PATH=$2 | ||||||
|  |     local LOCAL_BACKUP=$3 | ||||||
|  |     local TIMESTAMP=$4 | ||||||
|  | 
 | ||||||
|  |     # Check if gpg directory path exists | ||||||
|  |     if [ ! -d "${GPG_PATH}" ] | ||||||
|  |     then | ||||||
|  |         # Create gpg directory path | ||||||
|  |         mkdir -p ${GPG_PATH} | ||||||
|  |         if [ $? -ne 0 ]; then | ||||||
|  |           return 2 | ||||||
|  |         fi | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # Check if gpg template file exists | ||||||
|  |     if [ ! -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" ] | ||||||
|  |     then | ||||||
|  |         return 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     if [ -d "${LOCAL_BACKUP}" ] | ||||||
|  |     then | ||||||
|  |       if [ -f "${GPG_PATH}/${GPG_CONFIG}" ] | ||||||
|  |       then | ||||||
|  |         # Destination file backup | ||||||
|  |         local BACKUP_FILE="${LOCAL_BACKUP}/gpg${TIMESTAMP}.bak" | ||||||
|  |         cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" | ||||||
|  |         if [ $? -ne 0 ]; then | ||||||
|  |           return 3 | ||||||
|  |         fi | ||||||
|  |       fi | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # Copia el archivo de plantilla al destino | ||||||
|  |     cp -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" "${GPG_PATH}/${GPG_CONFIG}" | ||||||
|  |     return $? | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -12,12 +12,21 @@ | ||||||
| #============================================================================== | #============================================================================== | ||||||
| 
 | 
 | ||||||
| bomsg_000="BOOTSTRAP" | bomsg_000="BOOTSTRAP" | ||||||
|  | bomsg_001="ACTUALIZAR DEVS" | ||||||
| bomsg_002="PERMITIR PUERTO 53" | bomsg_002="PERMITIR PUERTO 53" | ||||||
| bomsg_003="Puerto 53 no se ha liberado!" | bomsg_003="Puerto 53 no se ha liberado!" | ||||||
| bomsg_004="Puerto 53 (dns) ha sido liberado para uso no-root" | bomsg_004="Puerto 53 (dns) ha sido liberado para uso no-root" | ||||||
| bomsg_005="Arquitectura desconocida:" | bomsg_005="Arquitectura desconocida:" | ||||||
| bomsg_006="Instalando Mozilla SOPS..." | bomsg_006="Instalando Mozilla SOPS..." | ||||||
| bomsg_007="Instalación de Mozilla SOPS completada..." | bomsg_007="Instalación de Mozilla SOPS completada..." | ||||||
|  | bomsg_008_1="Carpeta" | ||||||
|  | bomsg_008_2="no es del ambiente de desarrollo!" | ||||||
|  | bomsg_010="INSTALAR VPN" | ||||||
|  | bomsg_011="Instalando cliente VPN (pritunl)" | ||||||
|  | bomsg_012="No se completo la instalación del cliente VPN (pritunl)" | ||||||
|  | bomsg_013="Cliente VPN (pritunl) instalado satisfactoriamente!" | ||||||
|  | bomsg_014="Sistema Operativo no soportado por pritunl" | ||||||
|  | bomsg_015="ACTUALIZAR VPN" | ||||||
| 
 | 
 | ||||||
| pymsg_001="Instalando python3" | pymsg_001="Instalando python3" | ||||||
| pymsg_002="Instalando dialog" | pymsg_002="Instalando dialog" | ||||||
|  | @ -29,3 +38,11 @@ pdmsg_001="Instalando Podman..." | ||||||
| pdmsg_003="Podman fue instalado satisfactoriamente" | pdmsg_003="Podman fue instalado satisfactoriamente" | ||||||
| 
 | 
 | ||||||
| domsg_005="----> Docker previamente instalado, desinstale para poder instalar PODMAN o utilice DOCKER" | domsg_005="----> Docker previamente instalado, desinstale para poder instalar PODMAN o utilice DOCKER" | ||||||
|  | 
 | ||||||
|  | bomsg_101_1="Uso:" | ||||||
|  | bomsg_101_2="[--help] [--version] [--update]" | ||||||
|  | bomsg_102="Descripción: Este bash script se usa para instalar el cliente vpn (pritunl)" | ||||||
|  | bomsg_103="Opciones:" | ||||||
|  | bomsg_104="  --help     Muestra este mensaje de ayuda." | ||||||
|  | bomsg_105="  --version  Muestra la versión del script." | ||||||
|  | bomsg_106="  --update   Hace una actualización (upgrade) del cliente cuando no disponible en el repo" | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								bin/msg/gpg.es
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								bin/msg/gpg.es
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | #!/usr/bin/env bash | ||||||
|  | #bash script     : gpg.es | ||||||
|  | #apps            : GPG Developer Utilities | ||||||
|  | #description     : GPG Translate Messages (es) | ||||||
|  | #author		     : MRP/mrp - Mauro Rosero P. | ||||||
|  | #company email   : mauro@rosero.one | ||||||
|  | #personal email  : mauro.rosero@gmail.com | ||||||
|  | #date            : 20241130 | ||||||
|  | #version         : 1.0.2 | ||||||
|  | #notes           : | ||||||
|  | #============================================================================== | ||||||
|  | #============================================================================== | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | gpmsg_000="INICIALIZAR GPG" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | gpmsg_101="Desea inicializar la configuración de GPG?" | ||||||
|  | gpmsg_102="Inicialización de configuración GPG completada!" | ||||||
|  | gpmsg_103="Plantilla de configuración GPG no existe!" | ||||||
							
								
								
									
										60
									
								
								bin/update.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										60
									
								
								bin/update.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,60 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # update.sh | ||||||
|  | # Modified: 2024/12/01 15:27:00 | ||||||
|  | # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||||
|  | # | ||||||
|  | # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||||
|  | # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||||
|  | # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||||
|  | # o (a su elección) cualquier versión posterior. | ||||||
|  | # | ||||||
|  | # Este programa se distribuye con la esperanza de que sea útil, | ||||||
|  | # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||||
|  | # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||||
|  | # Licencia Pública Affero General de GNU para obtener más detalles. | ||||||
|  | # | ||||||
|  | # Debería haber recibido una copia de la Licencia Pública Affero General | ||||||
|  | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | DEVSPATH=devs | ||||||
|  | BIN_HOME=$HOME/$DEVSPATH | ||||||
|  | BIN_MESG=bin/msg | ||||||
|  | BIN_LIBS=bin/lib | ||||||
|  | 
 | ||||||
|  | # CHECK SHELL LANGUAGE | ||||||
|  | BIN_LANG=${LANG:0:2} | ||||||
|  | 
 | ||||||
|  | # LOAD BASE BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/base.lib | ||||||
|  | #baselib_test | ||||||
|  | 
 | ||||||
|  | load_bootstrap_msg() { | ||||||
|  | 
 | ||||||
|  |   local BIN_PATH=$1 | ||||||
|  |   local MSG_PATH=$2 | ||||||
|  |   local LANGUAGE=$3 | ||||||
|  | 
 | ||||||
|  |   # Load head messages | ||||||
|  |   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "head" | ||||||
|  | 
 | ||||||
|  |   # Load bootstrap messages | ||||||
|  |   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "bootstrap" | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Load messages | ||||||
|  | load_bootstrap_msg $BIN_HOME $BIN_MESG $BIN_LANG | ||||||
|  | 
 | ||||||
|  | # Display Headers | ||||||
|  | display_devstools_header "- $bomsg_001" | ||||||
|  | 
 | ||||||
|  | # Run update devs environment | ||||||
|  | if [ "$PWD" == "$BIN_HOME" ] | ||||||
|  | then | ||||||
|  |   git pull | ||||||
|  | else | ||||||
|  |   cd $BIN_HOME | ||||||
|  |   git pull | ||||||
|  | fi | ||||||
|  | 
 | ||||||
							
								
								
									
										136
									
								
								bin/vpn_install.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										136
									
								
								bin/vpn_install.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,136 @@ | ||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # vpn_install.sh | ||||||
|  | # Modified: 2024/12/01 15:27:00 | ||||||
|  | # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||||
|  | # | ||||||
|  | # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||||
|  | # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||||
|  | # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||||
|  | # o (a su elección) cualquier versión posterior. | ||||||
|  | # | ||||||
|  | # Este programa se distribuye con la esperanza de que sea útil, | ||||||
|  | # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||||
|  | # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||||
|  | # Licencia Pública Affero General de GNU para obtener más detalles. | ||||||
|  | # | ||||||
|  | # Debería haber recibido una copia de la Licencia Pública Affero General | ||||||
|  | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
|  | 
 | ||||||
|  | DEVSPATH=devs | ||||||
|  | BIN_HOME=$HOME/$DEVSPATH | ||||||
|  | BIN_MESG=bin/msg | ||||||
|  | BIN_LIBS=bin/lib | ||||||
|  | VERSION=1.0.1 | ||||||
|  | 
 | ||||||
|  | # CHECK SHELL LANGUAGE | ||||||
|  | BIN_LANG=${LANG:0:2} | ||||||
|  | 
 | ||||||
|  | # LOAD BASE BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/base.lib | ||||||
|  | #baselib_test | ||||||
|  | 
 | ||||||
|  | function load_bootstrap_msg() { | ||||||
|  | 
 | ||||||
|  |   local BIN_PATH=$1 | ||||||
|  |   local MSG_PATH=$2 | ||||||
|  |   local LANGUAGE=$3 | ||||||
|  | 
 | ||||||
|  |   # Load head messages | ||||||
|  |   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "head" | ||||||
|  | 
 | ||||||
|  |   # Load bootstrap messages | ||||||
|  |   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "bootstrap" | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Function to display help message | ||||||
|  | function help() { | ||||||
|  |     echo "$bomsg_101_1 $0 $bomsg_101_2" | ||||||
|  |     echo "$bomsg_102" | ||||||
|  |     echo "$bomsg_103" | ||||||
|  |     echo "$bomsg_104" | ||||||
|  |     echo "$bomsg_105" | ||||||
|  |     echo "$bomsg_106" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function install() { | ||||||
|  | 	local BIN_PATH=$1 | ||||||
|  | 	local LIBRARY=$2 | ||||||
|  | 	local MESSAGES=$3 | ||||||
|  |     local INSTALL_LANG=$4 | ||||||
|  |     local UPDATE=$5 | ||||||
|  | 
 | ||||||
|  | 	# Load base bash library | ||||||
|  | 	source $BIN_PATH/$LIBRARY/base.lib | ||||||
|  | 
 | ||||||
|  | 	# Load bootstrap bash library | ||||||
|  | 	source $BIN_PATH/$LIBRARY/bootstrap.lib | ||||||
|  | 
 | ||||||
|  | 	# Load bootstrap messages | ||||||
|  | 	load_bootstrap_msg $BIN_PATH $MESSAGES $INSTALL_LANG | ||||||
|  | 
 | ||||||
|  |     # Install pritunl vpn client (gui) | ||||||
|  |     if $UPDATE; then | ||||||
|  |       update_pritunl | ||||||
|  |       rc=$? | ||||||
|  |     else | ||||||
|  |       install_pritunl | ||||||
|  |       rc=$? | ||||||
|  |     fi | ||||||
|  |     case $rc in | ||||||
|  |       0) | ||||||
|  |         echo "$bomsg_013" | ||||||
|  |         ;; | ||||||
|  |       10) | ||||||
|  |         echo "$bomsg_014" | ||||||
|  |         ;; | ||||||
|  |       *) | ||||||
|  |         echo "$bomsg_012" | ||||||
|  |         ;; | ||||||
|  |     esac | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Load messages | ||||||
|  | load_bootstrap_msg $BIN_HOME $BIN_MESG $BIN_LANG | ||||||
|  | 
 | ||||||
|  | # Check for arguments option | ||||||
|  | help=false | ||||||
|  | version=false | ||||||
|  | update=false | ||||||
|  | title=$bomsg_010 | ||||||
|  | while [[ $# -gt 0 ]]; do | ||||||
|  |   case $1 in | ||||||
|  |     --help) | ||||||
|  |         help=true | ||||||
|  |         shift | ||||||
|  |         ;; | ||||||
|  |     --version) | ||||||
|  |         version=true | ||||||
|  |         shift | ||||||
|  |         ;; | ||||||
|  |     --update) | ||||||
|  |         title="$bomsg_015" | ||||||
|  |         update=true | ||||||
|  |         shift | ||||||
|  |         ;; | ||||||
|  |   esac | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | # Check to show help | ||||||
|  | if $help; then | ||||||
|  |   help | ||||||
|  |   exit 0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Check to show command version | ||||||
|  | if $version; then | ||||||
|  |   echo "$head_version $VERSION" | ||||||
|  |   exit 0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Display Headers | ||||||
|  | display_devstools_header "- $title" | ||||||
|  | 
 | ||||||
|  | # Run install with sudo | ||||||
|  | sudo bash -c "$(declare -f load_bootstrap_msg; declare -f install); install $BIN_HOME $BIN_LIBS $BIN_MESG $BIN_LANG $update" | ||||||
		Loading…
	
		Reference in a new issue