DSC linuxos nxFile-erőforráshoz

A PowerShell Desired State Configuration (DSC) nxFile erőforrása egy Linux-csomópont fájljainak és könyvtárainak kezelésére szolgáló mechanizmust biztosít.

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 }  ]
}

Tulajdonságok

Tulajdonság Leírás
DestinationPath Megadja azt a helyet, ahol biztosítani szeretné egy fájl vagy könyvtár állapotát.
SourcePath A fájl- vagy mappaerőforrás másolási útvonalát adja meg. Ez az elérési út lehet helyi elérési út vagy URL-cím http/https/ftp . A távoli http/https/ftp URL-címek csak akkor támogatottak, ha a Type tulajdonság értéke fájl.
Típus Megadja, hogy a konfigurált erőforrás könyvtár vagy fájl-e. Állítsa ezt a tulajdonságot könyvtárra , hogy jelezze, hogy az erőforrás egy könyvtár. Állítsa fájlra, hogy jelezze, hogy az erőforrás egy fájl. Az alapértelmezett érték a fájl.
Tartalom Megadja egy fájl tartalmát, például egy adott sztringet.
Ellenőrzőösszeg Meghatározza a két fájl azonosságának megállapításához használandó típust. Ha az Ellenőrzőösszeg nincs megadva, csak a fájl- vagy könyvtárnevet használja az összehasonlításhoz. Az értékek a következők: ctime, mtime vagy md5.
Ismétlődés Azt jelzi, hogy vannak-e alkönyvtárak. Állítsa be ezt a tulajdonságot úgy $true , hogy jelezze, hogy alkönyvtárakat szeretne szerepeltetni. A mező alapértelmezett értéke: $false. Ez a tulajdonság csak akkor érvényes, ha a Type tulajdonság könyvtárra van állítva.
Force Bizonyos fájlműveletek (például egy fájl felülírása vagy egy nem üres könyvtár törlése) hibát eredményeznek. A Force tulajdonság használata felülírja az ilyen hibákat. Az alapértelmezett érték $false.
Hivatkozások Meghatározza a szimbolikus hivatkozások kívánt viselkedését. Ezt a tulajdonságot úgy állíthatja be, hogy kövesse a szimbolikus hivatkozásokat, és reagáljon a hivatkozás céljára. Másolja például a fájlt a hivatkozás helyett. Állítsa be ezt a tulajdonságot úgy, hogy kezelni tudja a hivatkozást. Másolja például magát a hivatkozást. A tulajdonság figyelmen kívül hagyásához hagyja figyelmen kívül a szimbolikus hivatkozásokat.
Group Annak a csoportnak a neve, amely engedélyekkel rendelkezik a fájlhoz vagy könyvtárhoz.
Mód Megadja az erőforrás kívánt engedélyeit oktális vagy szimbolikus jelöléssel. Például : 777 vagy rwxrwxrwx. Ha szimbolikus jelölést használ, ne adja meg az első karaktert, amely könyvtárat vagy fájlt jelöl.
Tulajdonos Annak a csoportnak a neve, amely a fájl vagy könyvtár tulajdonosa.

Közös tulajdonságok

Tulajdonság Leírás
DependsOn Azt jelzi, hogy egy másik erőforrás konfigurációjának futnia kell az erőforrás konfigurálása előtt. Ha például az elsőként futtatni kívánt erőforráskonfigurációs szkriptblokk azonosítója ResourceName, és típusa ResourceType, akkor a tulajdonság használatának szintaxisa.DependsOn = "[ResourceType]ResourceName"
Biztosítja Meghatározza, hogy a fájl létezik-e. Állítsa ezt a tulajdonságot Bemutató értékre a fájl meglétének ellenőrzéséhez. Állítsa a Hiányzó értékre, és győződjön meg arról, hogy a fájl nem létezik. Az alapértelmezett érték a Jelen.

További információ

A Linux és a Windows alapértelmezés szerint eltérő sortörési karaktereket használ a szövegfájlokban, és ez váratlan eredményeket okozhat, amikor nxFile-val konfigurál bizonyos fájlokat egy Linux rendszerű számítógépen. A Linux-fájlok tartalmának többféleképpen is kezelhetők a váratlan sortörési karakterek okozta problémák elkerülése mellett:

  1. A fájl másolása távoli forrásból (http, https vagy ftp)

    Hozzon létre egy fájlt Linux rendszeren a kívánt tartalommal, és állítsa be egy webes vagy FTP-kiszolgálóra, amely elérhető a konfigurálni kívánt csomópont(ok)on. Adja meg a SourcePath tulajdonságot az nxFile erőforrásban a fájl webes vagy FTP URL-címével.

    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"
       }
    }
    
  2. Olvassa el a fájl tartalmát a PowerShell-szkriptben a Get-Content használatával, miután beállította a $OFS tulajdonságot a Linux sortörési karakter használatára.

    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"
       }
    }
    
  3. Egy PowerShell-függvény használatával a Windows-sortöréseket linuxos sortörési karakterekre cserélheti.

    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
       }
    }
    

Példa

Az alábbi példa biztosítja, hogy a könyvtár /opt/mydir létezik, és hogy a megadott tartalommal rendelkező fájl létezik.

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"
    }
}