Recursos de DSC
Se aplica a Windows PowerShell 4.0 y versiones posteriores.
Información general
Los recursos de la configuración de estado deseado (DSC) ofrecen los bloques de creación para una configuración DSC. Un recurso expone las propiedades que se pueden configurar (el esquema) y contiene las funciones de script de PowerShell a las que el administrador de configuración local (LCM) llama para "que sea así".
Un recurso puede modelar algo tan genérico como un archivo o tan específico como una configuración de servidor IIS. Grupos de recursos similares se combinan en un módulo de DSC, que organiza todos los archivos necesarios en una estructura portátil que incluye los metadatos para identificar cómo están diseñados para usarse los recursos.
Cada recurso tiene un *esquema que determina la sintaxis necesaria para usar el recurso en una configuración. El esquema de un recurso se puede definir de las siguientes maneras:
- Archivo
Schema.Mof
: La mayoría de los recursos definen su esquema en un archivoschema.mof
, mediante Managed Object Format. - Archivo
<Resource Name>.schema.psm1
: Los recursos compuestos definen su esquema en un archivo<ResourceName>.schema.psm1
con un bloque de parámetros. - Archivo
<Resource Name>.psm1
: Los recursos DSC basados en clase definen su esquema en la definición de clase. Los elementos de sintaxis se denotan como propiedades de la clase. Para más información, consulte about_Classes (Acerca de las clases).
Para recuperar la sintaxis de un recurso DSC, use el cmdlet Get-DSCResource con el parámetro Syntax. Este uso es similar al uso de Get-Command con el parámetro Syntax para obtener la sintaxis del cmdlet. La salida que ve mostrará la plantilla utilizada para un bloque de recursos para el recurso que especifique.
Get-DscResource -Syntax Service
La salida que ve debe ser similar a la salida siguiente, aunque la sintaxis de este recurso podría cambiar en el futuro. Al igual que la sintaxis del cmdlet, las claves que aparecen entre corchetes son opcionales. Los tipos especifican el tipo de datos que espera cada clave.
Nota
La clave Ensure es opcional porque el valor predeterminado es "Present".
Service [String] #ResourceName
{
Name = [string]
[BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
[Credential = [PSCredential]]
[Dependencies = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[State = [string]{ Running | Stopped }]
}
Nota
En las versiones de PowerShell inferiores a la 7.0, Get-DscResource
no encuentra los recursos de DSC basados en clases.
Dentro de una configuración, un bloque de recursos Service podría parecerse a esto para aplicar Ensure en relación con la ejecución del servicio Spooler.
Nota
Antes de usar un recurso en una configuración, debe importarlo mediante Import-DSCResource.
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as l
# ong as it is of type [String] as indicated by the schema.
Service "Spooler - Running"
{
Name = "Spooler"
State = "Running"
}
}
}
Las configuraciones pueden contener varias instancias del mismo tipo de recurso. Cada instancia debe tener un nombre exclusivo. En el siguiente ejemplo, se agrega un segundo bloque de recursos Service para configurar el servicio "DHCP".
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as
# long as it is of type [String] as indicated by the schema.
Service "Spooler - Running"
{
Name = "Spooler"
State = "Running"
}
# To configure a second service resource block, add another Service
# resource block and use a unique name.
Service "DHCP - Running"
{
Name = "DHCP"
State = "Running"
}
}
}
Nota
A partir de PowerShell 5.0, se agregó IntelliSense para DSC. Esta nueva característica permite usar Tabulación y Ctrl+barra espaciadora para completar automáticamente los nombres de clave.
Tipos de recursos
Windows incluye recursos integrados, y Linux dispone de recursos específicos del sistema operativo. Hay recursos para las dependencias entre nodos, recursos de administración de paquetes y recursos que administra y mantiene la comunidad. Puede usar los pasos anteriores para determinar la sintaxis de estos recursos y cómo usarlos. Las páginas relativas a estos recursos se han almacenado en Referencia.
Recursos integrados de Windows
- Recurso Archive
- Recurso Environment
- Recurso File
- Recurso Group
- Recurso GroupSet
- Recurso Log
- Recurso Package
- Recurso ProcessSet
- Recurso Registry
- Recurso Script
- Recurso Service
- Recurso ServiceSet
- Recurso User
- Recurso WindowsFeature
- Recurso WindowsFeatureSet
- Recurso WindowsOptionalFeature
- Recurso WindowsOptionalFeatureSet
- Recurso WindowsPackageCabResource
- Recurso WindowsProcess