Recientemente mi amado azure stack onpremise se jodio, asi que me toca reinstalar todo desde cero, han pasado casi dos años de darme fiel y buen servicio y apenas recordaba toda la movida gigantesca que tuve que hacer para poder tener un azure on premise 100% funcional y sin nada que envidiar al azure portal de pago.

El caso es que afortunadamente tuve la intención de publicar un post así que había grabado unos videos donde documentaba al menos el proceso inicial, realmente uno pensaría que ya solo con unas 12 horas de despliegue seria suficiente pero que va, tuve que buscármelas incluso retocar el código de instalación un poquito para tener un azure portal en mi casa.

Empezar el proceso es fácil necesitas descargarte una imagen de disco y montarla con un script en un Windows server 2019. Esto es debido a que las tripas de azure corren en HyperV.

Como podéis observar en el video expando los scripts de instalación para poder modificar 2 cosas muy concretas del código.

La primera es eliminar un if nullable si el usuario de instalación no tiene cierto rol (a saber porque eso esta ahí)

Y la segunda es poner mi propio dominio al azure stack que me voy a instalar, si lo dejas por defecto el dominio será local.azurestack.external

Una sorpresa que nos llevamos todos la primera vez que instalamos AzureStack es que no esta abierto a la red LAN, con lo cual se vuelve un poco inútil para nuestros fines de trasteo. En la documentación oficial te dicen que VLAN y escritorio remoto…… parece que no les mola nada porque en vez de aportar una solución a este problema han ido cambiado el código en cada nueva versión para dejar obsoletas las formas en que la gente se abría camino para resolver este problema.

Al lio.

Lo primero tienes que tener hierro hablamos minimo de 92GB de ram con 12 cores virtuales y 4 discos duros en formato raw en un Windows server 2019.

Después descargarnos una imagen de disco duro raw de 30gb, la version y codigo que muestro aqui es anticuado porque es muy posible que todo lo que ponga aqui ya este obsoleto pero puede sernos todavia util.

https://azure.microsoft.com/es-es/overview/azure-stack/development-kit/

Una vez tenemos la imagen de disco duro la movemos a la raiz del disco y ejecutamos el siguiente script en power shell

# Variables
$Uri = 'https://raw.githubusercontent.com/Azure/AzureStack-Tools/master/Deployment/asdk-installer.ps1'
$LocalPath = 'C:\AzureStack_Installer'
# Create folder
New-Item $LocalPath -Type directory
# Enforce usage of TLSv1.2 to download from GitHub
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download file
Invoke-WebRequest $uri -OutFile ($LocalPath + '\' + 'asdk-installer.ps1')

Una vez ejecutado tenemos que darle el usuario admin del equipo y la pass para que monte el disco duro, nos pedirá reiniciar y cuando volvamos a arrancar se hará desde el Windows server que había en el disco duro que se monta.

Ahora el disco C: contiene los archivos de instalacion pero necesitamos expandirlos para modificarlos, así que ejecutamos el powershell

C:\CloudDeployment\Setup\BootstrapAzureStackDeployment.ps1

Ahora tenemos que modificar el if nullable para evitar un futuro peta apenas desplegar.

Modificar el archivo:

C:\CloudDeployment\Setup\Common\AzureADConfigration.ps1

Con borrar las líneas 341 y 339

Ahora vamos cambiar el dominio de la instalacion.

Nos situaamos en el directorio:

cd "C:\CloudDeployment\Setup"

Y ahi creamos el siguien script: UpdateExternalFQDN.ps1

Param
(
 [Parameter(Mandatory=$true)]
 [String]
 $ExternalDomainFqdn
)

# unpack all the files
$DeploymentScriptPath = "$env:SystemDrive\CloudDeployment\Setup\DeploySingleNode.ps1"
if (!(Test-Path $DeploymentScriptPath))
    {
    . C:\CloudDeployment\Setup\BootstrapAzureStackDeployment.ps1
    }
    
# update the two scripts with the new ExternalDomainFQDN
$InstallDeploySingleNodefile = "C:\CloudDeployment\Setup\DeploySingleNode.ps1"
(Get-Content $InstallDeploySingleNodefile).Replace('"azurestack.external"','"'+$ExternalDomainFqdn+'"') | Set-Content $InstallDeploySingleNodefile
write-host "Setup_DeploySingleNode.ps1 - Updates has been saved"

$InstallCommonDeploySingleNodeCommonfile = "C:\CloudDeployment\Setup\Common\DeploySingleNodeCommon.ps1"
(Get-Content $InstallCommonDeploySingleNodeCommonfile).Replace('"azurestack.external"','"'+$ExternalDomainFqdn+'"') | Set-Content $InstallCommonDeploySingleNodeCommonfile
write-host "Setup_Common_DeploySingleNodeCommon.ps1 - Updates has been saved"

Y con este script personalizamos el dominio de nuestro azureStack:

.\UpdateExternalFQDN.ps1 -ExternalDomainFqdn "akzure.piensoluegoinstalo.com"

Ya tenemos todo listo para comenzar la instalacion, usaremos el mismo script que usamos antes de reiniciar el pc, solo que ahora esta en la unidad D:

D:\AzureStack_Installer\asdk-installer.ps1 

Ahora ya podemos comenzar el despliegue prepara un maraton de netflix de cobra kai porque puedes quedarte mirando lineas powershell durante de 8 a 12 horas….


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *