cloud-riders.ES Powershell,WINDOWS DSC: Separación de los datos de configuración y del entorno (1)

DSC: Separación de los datos de configuración y del entorno (1)DSC: Separación de los datos de configuración y del entorno (1)

Puede resultar útil separar los datos utilizados en una configuración DSC de la propia configuración mediante el uso de datos de configuración. Al hacer esto, puede usar una sola configuración para múltiples entornos.

Por ejemplo, si está desarrollando una aplicación, puede usar una configuración para los entornos de desarrollo y producción, y usar los datos de configuración para especificar datos para cada entorno.

¿Qué son los datos de configuración?

Los datos de configuración son datos que se definen en una tabla hash y se pasan a una configuración de DSC cuando compila esa configuración.

Un ejemplo sencillo:


Veamos un ejemplo muy simple para ver cómo funciona esto. Crearemos una única configuración que garantice que IIS esté presente en algunos nodos y que Hyper-V esté presente en otros:

Configuration MyDscConfiguration {

Node $AllNodes.Where{$_.Role -eq «WebServer»}.NodeName
{
WindowsFeature IISInstall {
Ensure = ‘Present’
Name = ‘Web-Server’
}

}
Node $AllNodes.Where{$_.Role -eq «VMHost»}.NodeName
{
WindowsFeature HyperVInstall {
Ensure = ‘Present’
Name = ‘Hyper-V’
}
}
}

$MyData =
@{
AllNodes =
@(
@{
NodeName = ‘VM-1’
Role = ‘WebServer’
},

    @{
        NodeName    = 'VM-2'
        Role = 'VMHost'
    }
)

}

MyDscConfiguration -ConfigurationData $MyData

La última línea de este script compila la configuración, pasando $MyData como parámetro de valor ConfigurationData.

El resultado es que se crean dos archivos MOF:

Directory: C:\DscTests\MyDscConfiguration

Mode LastWriteTime Length Name
—- ————- —— —-
-a—- 3/31/2017 5:09 PM 1968 VM-1.mof
-a—- 3/31/2017 5:09 PM 1970 VM-2.mof

$MyData especifica dos nodos diferentes, cada uno con su propio NodeName y Role. La configuración crea dinámicamente bloques de nodos tomando la colección de nodos que obtiene de $MyData (específicamente, $AllNodes) y filtra esa colección contra la propiedad Role.

Deja una respuesta

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

Related Post