DSC voor Linux nxFile ResourceDSC for Linux nxFile Resource

De nxFile in PowerShell Desired State Configuration (DSC)-bron biedt een mechanisme op voor het beheren van bestanden en mappen op een Linux-knooppunt.The nxFile resource in PowerShell Desired State Configuration (DSC) provides a mechanism to to manage files and directories on a Linux node.

SyntaxisSyntax

nxFile <string> #ResourceName
{
    DestinationPath = <string>
    [ SourcePath = <string> ]
    [ Ensure = <string> { Absent | Present }  ]
    [ Type = <string> { directory | file | link } ]
    [ Contents = <string> ]
    [ Checksum = <string> { ctime | mtime | md5 }  ]
    [ Recurse = <bool> ]
    [ Force = <bool> ]
    [ Links = <string> { follow | manage } ]
    [ Group = <string> ]
    [ Mode = <string> ]
    [ Owner = <string> ]
    [ DependsOn = <string[]> ]

}

EigenschappenProperties

EigenschapProperty BeschrijvingDescription
DestinationPathDestinationPath Hiermee geeft u de locatie op waar u om te controleren of de status voor een bestand of map.Specifies the location where you want to ensure the state for a file or directory.
BronpadSourcePath Hiermee geeft u het pad van waaruit de bron van het bestand of map kopiëren.Specifies the path from which to copy the file or folder resource. Dit pad is mogelijk een lokaal pad of een http/https/ftp URL.This path may be a local path, or an http/https/ftp URL. Externe http/https/ftp URL's worden alleen ondersteund wanneer de waarde van de Type eigenschap bestand is.Remote http/https/ftp URLs are only supported when the value of the Type property is file.
Zorg ervoor datEnsure Bepaalt of Controleer of het bestand bestaat.Determines whether to check if the file exists. Deze eigenschap instellen op 'Aanwezig' om te controleren of dat het bestand bestaat.Set this property to "Present" to ensure the file exists. Stel deze in op 'Ontbreekt' om te controleren of dat het bestand bestaat niet.Set it to "Absent" to ensure the file does not exist. De standaardwaarde is 'Aanwezig'.The default value is "Present".
TypeType Hiermee geeft u op of de resource die wordt geconfigureerd een map of een bestand is.Specifies whether the resource being configured is a directory or a file. Deze eigenschap instellen op 'map' om aan te geven dat de resource een map is.Set this property to "directory" to indicate that the resource is a directory. Stel deze in op 'file' om aan te geven dat de resource een bestand is.Set it to "file" to indicate that the resource is a file. De standaardwaarde is "bestand"The default value is "file"
InhoudContents Hiermee geeft u de inhoud van een bestand, zoals een bepaalde tekenreeks.Specifies the contents of a file, such as a particular string.
ControlesomChecksum Definieert het type moet worden gebruikt bij het bepalen of twee bestanden hetzelfde zijn.Defines the type to use when determining whether two files are the same. Als controlesom niet is opgegeven, alleen de naam van bestand of map wordt gebruikt voor vergelijking.If Checksum is not specified, only the file or directory name is used for comparison. Waarden zijn: 'ctime', 'mtime' of 'md5'.Values are: "ctime", "mtime", or "md5".
RecurseRecurse Hiermee wordt aangegeven als submappen opgenomen worden.Indicates if subdirectories are included. Deze eigenschap instellen op $true om aan te geven dat u wilt dat de submappen worden opgenomen.Set this property to $true to indicate that you want subdirectories to be included. De standaardwaarde is $false.The default is $false. Opmerking: deze eigenschap is alleen geldig wanneer de Type eigenschap is ingesteld op de directory.Note: This property is only valid when the Type property is set to directory.
ForceForce Bepaalde bestandsbewerkingen (zoals een bestand te overschrijven of verwijderen van een map die is niet leeg) leidt tot een fout opgetreden.Certain file operations (such as overwriting a file or deleting a directory that is not empty) will result in an error. Met behulp van de Force eigenschap heeft een dergelijke fouten.Using the Force property overrides such errors. De standaardwaarde is $false.The default value is $false.
KoppelingenLinks Hiermee geeft u het gewenste gedrag voor symbolische koppelingen.Specifies the desired behavior for symbolic links. Deze eigenschap instellen op 'volgen' symbolische koppelingen volgen en reageren op de doel-koppelingen (bijvoorbeeld)Set this property to "follow" to follow symbolic links and act on the links target (for example. Kopieer het bestand in plaats van de koppeling).copy the file instead of the link). Deze eigenschap instellen op 'beheren' om te reageren op de koppeling (bijvoorbeeld)Set this property to "manage" to act on the link (for example. Kopieer de koppeling zelf).copy the link itself). Deze eigenschap instellen op 'negeren' om door te negeren symbolische koppelingen.Set this property to "ignore" to ignore symbolic links.
GroepGroup De naam van de groep eigenaar van het bestand of map.The name of the Group to own the file or directory.
ModusMode Hiermee geeft u de gewenste machtigingen voor de resource octaal of symbolische-notatie.Specifies the desired permissions for the resource, in octal or symbolic notation. (bijvoorbeeld 777 of rwxrwxrwx).(for example, 777 or rwxrwxrwx). Als symbolische notatie wordt gebruikt, bieden niet het eerste teken waarmee wordt aangegeven van de map of bestand.If using symbolic notation, do not provide the first character which indicates directory or file.
dependsOnDependsOn Hiermee wordt aangegeven dat de configuratie van een andere resource uitvoeren moet voordat deze bron is geconfigureerd.Indicates that the configuration of another resource must run before this resource is configured. Bijvoorbeeld, als de ID van de resource is scriptblok configuratie die u wilt uitvoeren eerst ResourceName en het type ResourceType, de syntaxis voor het gebruik van deze de eigenschap is 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".

Als u meer informatieAdditional Information

Linux- en Windows verschillende regeleindeteken in tekstbestanden standaard en dit kan leiden tot onverwachte resultaten bij het configureren van een aantal bestanden op een Linux-computer met nxFile.Linux and Windows use different line break characters in text files by default, and this can cause unexpected results when configuring some files on a Linux computer with nxFile. Er zijn meerdere manieren voor het beheren van de inhoud van een Linux-bestand zonder problemen veroorzaakt door een onverwachte regeleindeteken:There are multiple ways to manage the content of a Linux file while avoiding issues caused by unexpected line break characters:

Stap 1: Het bestand kopiëren vanaf een externe bron (http, https of ftp): een bestand op Linux maken met de gewenste inhoud, en de knooppunten die u configureert Faseren op een webserver of FTP-server toegankelijk is.Step 1: Copy the file from a remote source (http, https, or ftp): create a file on Linux with the desired contents, and stage it on a web or ftp server accessible the node(s) you will configure. Definieer de bronpad eigenschap in de nxFile resource met de webserver of FTP-URL naar het bestand.Define the SourcePath property in the nxFile resource with the web or ftp URL to the file.

Import-DSCResource -Module nx
Node $Node
{
nxFile resolvConf
{
    SourcePath = "http://10.185.85.11/conf/resolv.conf"
    DestinationPath = "/etc/resolv.conf"
    Mode = "644"
    Type = "file"

}

}

Stap 2: De inhoud van het bestand in het PowerShell-script met lezen Get-inhoud nadat u de $OFS eigenschap om de Linux-regeleinde-teken te gebruiken.Step 2: Read the file contents in the PowerShell script with Get-Content after setting the $OFS property to use the Linux line-break character.

Import-DSCResource -Module nx
Node $Node
{
$OFS = "`n"
$Contents = Get-Content C:\temp\resolv.conf

nxFile resolvConf
{
    DestinationPath = "/etc/resolv.conf"
    Mode = "644"
    Type = "file"
    Contents = "$Contents"
}

}

Stap 3: Een PowerShell-functie gebruiken Windows regeleinden vervangt door de regeleindetekens Linux.Step 3: Use a PowerShell function to replace Windows line breaks with Linux line-break characters.

Function LinuxString($inputStr){
    $outputStr = $inputStr.Replace("`r`n","`n")
    $ouputStr += "`n"
    Return $outputStr
}

Import-DSCResource -Module nx
Node $Node
{

$Contents = @'
search contoso.com
domain contoso.com
nameserver 10.185.85.11
'@

$Contents = LinuxString $Contents

nxFile resolvConf
{
    DestinationPath = "/etc/resolv.conf"
    Mode = "644"
    Type = "file"
    Contents = $Contents

}
}

VoorbeeldExample

Het volgende voorbeeld zorgt ervoor dat de map /opt/mydir bestaat, en of een bestand met de opgegeven inhoud deze map bestaat.The following example ensures that the directory /opt/mydir exists, and that a file with specified contents exists this directory.

Import-DSCResource -Module nx

Node $node {
nxFile DirectoryExample
{
   Ensure = "Present"
   DestinationPath = "/opt/mydir"
   Type = "Directory"
}

nxFile FileExample
{
    Ensure = "Present"
    Destinationpath = "/opt/mydir/myfile"
    Contents=@"
#!/bin/bash`necho "hello world"`n
"@
    Mode = “755”
    DependsOn = "[nxFile]DirectoryExample"
}
}