DsC dla systemu Linux nxFile Resource
Zasób nxFile w programie PowerShell Desired State Configuration (DSC) udostępnia mechanizm zarządzania plikami i katalogami w węźle systemu Linux.
Składnia
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 } ]
}
Właściwości
Właściwość | Opis |
---|---|
DestinationPath | Określa lokalizację, w której chcesz zapewnić stan pliku lub katalogu. |
SourcePath | Określa ścieżkę, z której chcesz skopiować zasób pliku lub folderu. Ta ścieżka może być ścieżką lokalną http/https/ftp lub adresem URL. Zdalne http/https/ftp adresy URL są obsługiwane tylko wtedy, gdy wartość właściwości Type to plik. |
Typ | Określa, czy konfigurowany zasób jest katalogiem, czy plikiem. Ustaw tę właściwość na katalog , aby wskazać, że zasób jest katalogiem. Ustaw go na plik , aby wskazać, że zasób jest plikiem. Wartość domyślna to plik. |
Zawartość | Określa zawartość pliku, na przykład określony ciąg. |
Suma kontrolna | Definiuje typ, który ma być używany podczas określania, czy dwa pliki są takie same. Jeśli suma kontrolna nie jest określona, do porównania jest używana tylko nazwa pliku lub katalogu. Wartości to: ctime, mtime lub md5. |
Recurse | Wskazuje, czy są uwzględnione podkatalogi. Ustaw tę właściwość na , aby $true wskazać, że chcesz uwzględnić podkatalogi. Wartość domyślna to $false . Ta właściwość jest prawidłowa tylko wtedy, gdy właściwość Type jest ustawiona na katalog. |
Force | Niektóre operacje na plikach (takie jak zastępowanie pliku lub usuwanie katalogu, który nie jest pusty), spowodują błąd. Użycie właściwości Force zastępuje takie błędy. Wartość domyślna to $false . |
Linki | Określa żądane zachowanie linków symbolicznych. Ustaw tę właściwość, aby śledzić linki symboliczne i wykonywać działania na obiekcie docelowym łączy. Na przykład skopiuj plik zamiast linku. Ustaw tę właściwość, aby zarządzać działaniem za pomocą linku. Na przykład skopiuj sam link. Ustaw tę właściwość, aby ignorować linki symboliczne. |
Group (Grupa) | Nazwa grupy , która ma mieć uprawnienia do pliku lub katalogu. |
Tryb | Określa żądane uprawnienia dla zasobu w notacji ósemkowej lub symbolicznej. Na przykład 777 lub rwxrwxrwx. W przypadku używania notacji symbolicznej nie należy podawać pierwszego znaku wskazującego katalog lub plik. |
Właściciel | Nazwa grupy, która ma być właścicielem pliku lub katalogu. |
Wspólne właściwości
Właściwość | Opis |
---|---|
Dependson | Wskazuje, że przed skonfigurowaniem tego zasobu należy uruchomić konfigurację innego zasobu. Jeśli na przykład identyfikator bloku skryptu konfiguracji zasobu, który chcesz uruchomić jako pierwszy, to ResourceName, a jego typem jest ResourceType, składnia użycia tej właściwości to DependsOn = "[ResourceType]ResourceName" . |
Zapewnienia | Określa, czy plik istnieje. Ustaw tę właściwość na Present , aby upewnić się, że plik istnieje. Ustaw go na Wartość Nieobecny , aby upewnić się, że plik nie istnieje. Wartość domyślna to Present (Obecny). |
Dodatkowe informacje
Systemy Linux i Windows domyślnie używają różnych znaków podziału wiersza w plikach tekstowych, co może spowodować nieoczekiwane wyniki podczas konfigurowania niektórych plików na komputerze z systemem Linux za pomocą polecenia nxFile. Istnieje wiele sposobów zarządzania zawartością pliku systemu Linux przy jednoczesnym unikaniu problemów spowodowanych przez nieoczekiwane znaki podziału wiersza:
Skopiuj plik ze źródła zdalnego (http, https lub ftp)
Utwórz plik w systemie Linux z żądaną zawartością i przygotuj go na serwerze internetowym lub ftp dostępnym dla węzłów, które zostaną skonfigurowane. Zdefiniuj właściwość SourcePath w zasobie nxFile za pomocą adresu URL internetowego lub ftp do pliku.
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" } }
Odczytaj zawartość pliku w skrypce programu PowerShell za pomocą polecenia Get-Content po ustawieniu właściwości $OFS na używanie znaku podziału wiersza systemu 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" } }
Użyj funkcji programu PowerShell, aby zastąpić podziały wierszy systemu Windows znakami podziału wiersza systemu 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 } }
Przykład
Poniższy przykład zapewnia, że katalog /opt/mydir
istnieje i że plik o określonej zawartości istnieje w tym katalogu.
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"
}
}
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla