DSC för Linux nxFile-resurs
NxFile-resursen i PowerShell Desired State Configuration (DSC) tillhandahåller en mekanism för att hantera filer och kataloger på en Linux-nod.
Syntax
nxFile <string> #ResourceName
{
DestinationPath = <string>
[ SourcePath = <string> ]
[ Type = <string> { directory | file | link } ]
[ Contents = <string> ]
[ Checksum = <string> { ctime | mtime | md5 } ]
[ Recurse = <bool> ]
[ Force = <bool> ]
[ Links = <string> { follow | manage | ignore } ]
[ Group = <string> ]
[ Mode = <string> ]
[ Owner = <string> ]
[ DependsOn = <string[]> ]
[ Ensure = <string> { Absent | Present } ]
}
Egenskaper
Egenskap | Beskrivning |
---|---|
DestinationPath | Anger den plats där du vill säkerställa tillståndet för en fil eller katalog. |
SourcePath | Anger den sökväg som filen eller mappresursen ska kopieras från. Den här sökvägen kan vara en lokal sökväg eller en http/https/ftp URL. Fjärr-URL http/https/ftp :er stöds bara när värdet för egenskapen Type är fil. |
Typ | Anger om resursen som konfigureras är en katalog eller en fil. Ange den här egenskapen till katalog för att ange att resursen är en katalog. Ange den till fil för att ange att resursen är en fil. Standardvärdet är fil. |
Innehåll | Anger innehållet i en fil, till exempel en viss sträng. |
Kontrollsumma | Definierar vilken typ som ska användas när du avgör om två filer är samma. Om Kontrollsumma inte har angetts används endast fil- eller katalognamnet för jämförelse. Värdena är: ctime, mtime eller md5. |
Recurse | Anger om underkataloger ingår. Ange den här egenskapen till $true för att ange att du vill att underkataloger ska inkluderas. Standardvärdet är $false . Den här egenskapen är endast giltig när egenskapen Type är inställd på katalog. |
Force | Vissa filåtgärder (till exempel att skriva över en fil eller ta bort en katalog som inte är tom) resulterar i ett fel. Om du använder egenskapen Force åsidosätts sådana fel. Standardvärdet är $false . |
Länkar | Anger önskat beteende för symboliska länkar. Ange den här egenskapen att följa för att följa symboliska länkar och agera på länkmålet. Kopiera till exempel filen i stället för länken. Ange att den här egenskapen ska hantera så att den fungerar på länken. Kopiera till exempel själva länken. Ange att den här egenskapen ska ignoreras för att ignorera symboliska länkar. |
Group | Namnet på gruppen som ska ha behörighet till filen eller katalogen. |
Läge | Anger önskade behörigheter för resursen, i oktal eller symbolisk notation. Till exempel 777 eller rwxrwxrwx. Om du använder symbolisk notation ska du inte ange det första tecknet som anger katalog eller fil. |
Ägare | Namnet på den grupp som ska äga filen eller katalogen. |
Gemensamma egenskaper
Egenskap | Beskrivning |
---|---|
DependsOn | Anger att konfigurationen av en annan resurs måste köras innan den här resursen har konfigurerats. Om till exempel ID:t för det resurskonfigurationsskriptblock som du vill köra först är ResourceName och dess typ är ResourceType är DependsOn = "[ResourceType]ResourceName" syntaxen för att använda den här egenskapen . |
Säkerställa | Avgör om filen finns. Ange den här egenskapen till Presentera för att säkerställa att filen finns. Ställ in den på Frånvarande för att säkerställa att filen inte finns. Standardvärdet är Present. |
Ytterligare information
Linux och Windows använder olika radbrytningstecken i textfiler som standard, och detta kan orsaka oväntade resultat när vissa filer konfigureras på en Linux-dator med nxFile. Det finns flera sätt att hantera innehållet i en Linux-fil samtidigt som du undviker problem som orsakas av oväntade radbrytningstecken:
Kopiera filen från en fjärrkälla (http, https eller ftp)
Skapa en fil i Linux med önskat innehåll och mellanlagra den på en webb- eller ftp-server som är tillgänglig för de noder som du ska konfigurera. Definiera egenskapen SourcePath i nxFile-resursen med webb- eller ftp-URL:en till filen.
Import-DSCResource -ModuleName nx Node $Node { nxFile resolvConf { SourcePath = "http://10.185.85.11/conf/resolv.conf" DestinationPath = "/etc/resolv.conf" Mode = "644" Type = "file" } }
Läs filinnehållet i PowerShell-skriptet med Get-Content när du har angett egenskapen $OFS att använda radbrytningstecknet i Linux.
Import-DSCResource -ModuleName nx Node $Node { $OFS = "`n" $Contents = Get-Content C:\temp\resolv.conf nxFile resolvConf { DestinationPath = "/etc/resolv.conf" Mode = "644" Type = "file" Contents = "$Contents" } }
Använd en PowerShell-funktion för att ersätta Radbrytningar i Windows med radbrytningstecken i Linux.
Function LinuxString($inputStr){ $outputStr = $inputStr.Replace("`r`n","`n") $outputStr += "`n" Return $outputStr } Import-DSCResource -ModuleName 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 } }
Exempel
I följande exempel ser du till att katalogen /opt/mydir
finns och att det finns en fil med angivet innehåll i den här katalogen.
Import-DSCResource -ModuleName 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"
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för