Configuraciones DSC
Se aplica a: PowerShell 7, característica de configuración de máquina de Azure Automanage
Las configuraciones de DSC son scripts de PowerShell que definen un tipo especial de comando. Para definir una configuración, use la palabra clave configuration
de PowerShell .
Configuration MyDscConfiguration {
Environment FirstEnvironmentVariable {
Ensure = 'Present'
Name = 'Foo'
Value = 'Example'
}
Environment SecondEnvironmentVariable {
Ensure = 'Present'
Name = 'Bar'
Value = 'Another'
}
}
MyDscConfiguration
Guarde el script como un archivo .ps1
.
Sintaxis de la configuración
Un script de configuración de DSC consta de las siguientes partes:
- Bloque
Configuration
. Este es el bloque del script más externo. Se define con laConfiguration
palabra clave y se proporciona un nombre. En este caso, el nombre de la configuración de DSC esMyDscConfiguration
. - Uno o varios bloques de recursos de DSC. Aquí es donde la configuración de DSC define la configuración del componente que está configurando. En este caso, hay dos bloques de recursos de DSC. Ambos usan el
Environment
recurso de DSC.
Compilación de la configuración
Para poder usar una configuración de DSC, debe compilarla en un documento MOF. Para ello, llame a la configuración de DSC como llamaría a una función de PowerShell. La última línea del ejemplo, que contiene solo el nombre de la configuración de DSC, ejecuta la configuración de DSC.
Nota
Para llamar a una configuración de DSC, debe cargarse en el ámbito actual (como con cualquier otra función de PowerShell). Puede hacer que esto suceda mediante "dot-sourcing" en el script o ejecutando el script con F5 o haciendo clic en el botón Ejecutar script en VS Code. Para puntear el script, ejecute el comando . .\myConfig.ps1
donde myConfig.ps1
es el nombre del archivo de script que contiene la configuración de DSC.
Cuando se llama a la configuración de DSC, se hace lo siguiente:
- Crea una carpeta en el directorio actual con el mismo nombre que la configuración de DSC.
- Crea un archivo denominado
localhost.mof
en el nuevo directorio.
Nota
El archivo MOF contiene toda la información de configuración del sistema. Por este motivo, es importante protegerlo adecuadamente.
Uso de nuevos recursos de DSC en la configuración de DSC
Si ha ejecutado los ejemplos anteriores, habrá observado que se le mostró una advertencia respecto a que se estaba utilizando un recurso sin importarlo explícitamente.
Puede usar el cmdlet Get-DscResource para determinar qué recursos están instalados en el sistema y disponibles para su uso. Incluso cuando sus módulos se han colocado en $env:PSModulePath
y son reconocidos por Get-DscResource
, todavía deben cargarse dentro de la configuración de DSC.
Import-DscResource
es una palabra clave dinámica que solo se puede reconocer dentro de un Configuration
bloque. No es un cmdlet. Import-DscResource
admite dos parámetros:
- ModuleName es la forma recomendada de usar
Import-DscResource
. Acepta el nombre del módulo que contiene los recursos que se importarán (así como una matriz de cadenas de nombres de módulo). - Name es el nombre del recurso que se importará. Este no es el nombre descriptivo devuelto como la propiedad Name del
Get-DscResource
objeto devuelto, pero el nombre de clase usado al definir el esquema de recursos (la propiedad ResourceType del objeto devuelto porGet-DscResource
).
Para obtener más información sobre el uso de Import-DSCResource
, consulte Uso de Import-DSCResource
Importante
Hay una limitación en la configuración de la máquina que impide que un recurso de DSC use los cmdlets de PowerShell que no se incluyan en PowerShell o en un módulo de la Galería de PowerShell. Los recursos de DSC que usan cmdlets de uno o varios módulos de Windows no funcionarán en la configuración de la máquina.