Risorsa nxFile DSC per Linux
La risorsa nxFile in PowerShell DSC (Desired State Configuration) fornisce un meccanismo per gestire file e directory in un nodo Linux.
Sintassi
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 } ]
}
Proprietà
Proprietà | Descrizione |
---|---|
DestinationPath | Indica il percorso in cui si vuole specificare lo stato di un file o una directory. |
SourcePath | Specifica il percorso da cui copiare la risorsa file o cartella. Questo percorso può essere un percorso locale o un URL http/https/ftp . Gli URL remoti http/https/ftp sono supportati solo quando il valore della proprietà Type è file. |
Tipo | Specifica se la risorsa configurata è una directory o un file. Impostare questa proprietà sulla directory per indicare che la risorsa è una directory. Impostarlo su file per indicare che la risorsa è un file. Il valore predefinito è file. |
Contenuto | Specifica il contenuto di un file, ad esempio una determinata stringa. |
Checksum | Definisce il tipo da usare per determinare se due file sono uguali. Se la proprietà Checksum non è specificata, per il confronto viene usato solo il nome del file o della directory. I valori sono: ctime, mtime o md5. |
Recurse | Indica se le sottodirectory sono incluse. Impostare questa proprietà su $true per indicare che le sottodirectory devono essere incluse. Il valore predefinito è $false . Questa proprietà è valida solo quando la proprietà Type è impostata su directory. |
Force | Determinate operazioni sui file, ad esempio quando si sovrascrive un file o si elimina una directory non vuota, generano un errore. Usando la proprietà Force, tali errori vengono ignorati. Il valore predefinito è $false . |
Collegamenti | Specifica il comportamento desiderato per i collegamenti simbolici. Impostare questa proprietà su follow per seguire i collegamenti simbolici e agire sulla destinazione dei collegamenti. Ad esempio, copiare il file invece del collegamento. Impostare questa proprietà su manage per agire sul collegamento. Ad esempio, copiare il collegamento stesso. Impostare questa proprietà per ignorare i collegamenti simbolici. |
Gruppo | Nome del Group che avrà le autorizzazioni per il file o la directory. |
Modalità | Specifica le autorizzazioni desiderate per la risorsa, in notazione ottale o simbolica Ad esempio, 777 o rwxrwxrwx. Se si usa la notazione simbolica, non fornire il primo carattere che indica una directory o un file. |
Proprietario | Nome del gruppo proprietario del file o della directory. |
Proprietà comuni
Proprietà | Descrizione |
---|---|
DependsOn | Indica che prima di configurare la risorsa è necessario eseguire la configurazione di un'altra risorsa. Ad esempio, se il valore di ID del blocco script di configurazione della risorsa che si vuole eseguire per primo è ResourceName e il tipo è ResourceType, la sintassi per usare questa proprietà è DependsOn = "[ResourceType]ResourceName" . |
Ensure | Determina se verificare l'esistenza del file. Impostare questa proprietà su Present per assicurarsi che il file esista. Impostarlo su Absent per assicurarsi che il file non esista. Il valore predefinito è Present. |
Informazioni aggiuntive
Linux e Windows usano per impostazione predefinita caratteri di interruzione di riga diversi nei file di testo e questo può causare risultati imprevisti quando si configurano alcuni file in un computer Linux con nxFile. Ci sono diversi modi per gestire il contenuto di un file di Linux evitando i problemi causati da caratteri di interruzione di riga imprevisti:
Copiare il file da un'origine remota (HTTP, HTTPS o FTP)
Creare un file in Linux con il contenuto desiderato e metterlo su un server Web o FTP accessibile dai nodi che verranno configurati. Definire la proprietà SourcePath nella risorsa nxFile con l'URL Web o FTP del file.
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" } }
leggere il contenuto del file nello script di PowerShell con Get-Content dopo avere impostato la proprietà $OFS per usare il carattere di interruzione di riga di 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" } }
usare una funzione di PowerShell per sostituire le interruzioni di riga di Windows con caratteri di interruzione di riga di 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 } }
Esempio
L'esempio seguente specifica che la directory /opt/mydir
esiste e che nella directory è presente un file con il contenuto specificato.
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"
}
}
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per