Recurso nxScript de DSC para LinuxDSC for Linux nxScript Resource

O recurso nxScript na Configuração de Estado Desejado (DSC) do Windows PowerShell fornece um mecanismo para executar scripts do Linux em um nó do Linux.The nxScript resource in PowerShell Desired State Configuration (DSC) provides a mechanism to run Linux scripts on a Linux node.

SintaxeSyntax

nxScript <string> #ResourceName
{
    GetScript = <string>
    SetScript = <string>
    TestScript = <string>
    [ User = <string> ]
    [ Group = <string> ]
    [ DependsOn = <string[]> ]

}

PropriedadesProperties

PropriedadeProperty DescriçãoDescription
GetScriptGetScript Fornece um script que é executado quando você invoca o cmdlet Get-DscConfiguration.Provides a script that runs when you invoke the Get-DscConfiguration cmdlet. O script precisa começar com um shebang, como #!/bin/bash.The script must begin with a shebang, such as #!/bin/bash.
SetScriptSetScript Fornece um script.Provides a script. Quando você invoca o cmdlet Start-DscConfiguration, o TestScript é executado primeiro.When you invoke the Start-DscConfiguration cmdlet, the TestScript runs first. Se o bloco TestScript gerar um código de saída diferente de 0, o bloco SetScript será executado.If the TestScript block returns an exit code other than 0, the SetScript block will run. Se o TestScript gerar um código de saída igual a 0, o SetScript não será executado.If the TestScript returns an exit code of 0, the SetScript will not run. O script precisa começar com um shebang, como #!/bin/bash.The script must begin with a shebang, such as #!/bin/bash.
TestScriptTestScript Fornece um script.Provides a script. Quando você invoca o cmdlet Start-DscConfiguration, esse script é executado.When you invoke the Start-DscConfiguration cmdlet, this script runs. Se gerar um código de saída diferente de 0, o SetScript será executado.If it returns an exit code other than 0, the SetScript will run. Se gerar um código de saída igual a 0, o SetScript não será executado.If it returns an exit code of 0, the SetScript will not run. O TestScript também é executado quando você invoca o cmdlet Test-DscConfiguration.The TestScript also runs when you invoke the Test-DscConfiguration cmdlet. No entanto, nesse caso, o SetScript não será executado, não importa qual código de saída é gerado pelo TestScript.However, in this case, the SetScript will not run, no matter what exit code is returned from the TestScript. O TestScript deverá gerar um código de saída igual a 0 se a configuração real corresponder à configuração atual de estado desejado e um código de saída diferente de 0 se não corresponder.The TestScript must return an exit code of 0 if the actual configuration matches the current desired state configuration, and an exit code other than 0 if it does not match. (A configuração atual de estado desejado é a última configuração aplicada no nó que está usando a DSC).(The current desired state configuration is the last configuration enacted on the node that is using DSC). O script precisa começar com um shebang, como 1#!/bin/bash.1The script must begin with a shebang, such as 1#!/bin/bash.1
UserUser O usuário com o qual o script será executado.The user to run the script as.
GrupoGroup O grupo com o qual o script será executado.The group to run the script as.
DependsOnDependsOn Indica que a configuração de outro recurso deve ser executada antes de ele ser configurado.Indicates that the configuration of another resource must run before this resource is configured. Por exemplo, se a ID do bloco de script de configuração do recurso que você deseja executar primeiro for ResourceName e seu tipo for ResourceType, a sintaxe para usar essa propriedade será DependsOn = "[ResourceType]ResourceName".For example, if the ID of the resource configuration script block that you want to run first is ResourceName and its type is ResourceType, the syntax for using this property is DependsOn = "[ResourceType]ResourceName".

ExemploExample

O exemplo a seguir demonstra o uso do recurso nxScript para executar um gerenciamento de configuração adicional.The following example demonstrates the use of the nxScript resource to perform additional configuration management.

Import-DSCResource -Module nx 

Node $node {
nxScript KeepDirEmpty{

    GetScript = @"
#!/bin/bash
ls /tmp/mydir/ | wc -l
"@

    SetScript = @"
#!/bin/bash
rm -rf /tmp/mydir/*
"@

    TestScript = @'
#!/bin/bash
filecount=`ls /tmp/mydir | wc -l`
if [ $filecount -gt 0 ]
then
    exit 1
else
    exit 0
fi
'@
} 
}