Question DSC ressource file

Plus d'informations
il y a 3 ans 3 mois #23400 par Perso
DSC ressource file a été créé par Perso
Bonjour à tous,

Voici une petite configuration de test qui marche presque très bien.
L'objet est de copier des fichiers sur des serveurs depuis un partage, traiter les fichiers (ici une installation), puis les supprimer.

Mais, impossible de d'avoir en MÊME temps \&quot;powershellFolderDEL\&quot; et \&quot;[File]powershellFolderDEL\&quot; sensée se dérouler après le traitement avec un DependsOn !! Quelqu'un sait-il comment faire ? Faut-il utiliser une ressource \&quot;Script\&quot; de suppression ? Peut être dois-je mettre simplement [b]dans le cas de l'installation[/b] une ressource package avec une chemin distant ? J'essayerais demain, mais pour d'autres traitements ? Merci d'avance. [code:1] $ConfigData = @{ AllNodes = @( @{ NodeName = \&quot;dhcp0\&quot; Role = \&quot;powershell\&quot; }, @{ NodeName = \&quot;infra0\&quot; Role = \&quot;SQLServer\&quot; } ) } Configuration dsc_CopyDSCResource { param ( [Parameter(Mandatory=$true)] [String]$SourcePath, [Parameter(Mandatory=$false)] [String]$ModulePath = \&quot;C:\Windows\Temp\&quot; ) Import-DscResource –ModuleName PSDesiredStateConfiguration Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;powershell\&quot;}.NodeName { File \&quot;powershellFolder\&quot; { Ensure = \&quot;Present\&quot; SourcePath = \&quot;$SourcePath\Powershell\&quot; Type = \&quot;Directory\&quot; Recurse = $true DestinationPath = \&quot;$ModulePath\Powershell\&quot; Checksum = \&quot;ModifiedDate\&quot; } #Actions diverses (installation, etc.) #Package [String] #ResourceName #{ #Name = [string] #Path = [string] #ProductId = [string] #} File \&quot;powershellFolderDEL\&quot; { Ensure = \&quot;Absent\&quot; DependsOn = \&quot;[File]powershellFolder\&quot; Type = \&quot;Directory\&quot; Force = $true DestinationPath = \&quot;$ModulePath\Powershell\&quot; } } Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;SQLserver\&quot;}.NodeName { File \&quot;SQLserverFolder\&quot; { Ensure = \&quot;Present\&quot; SourcePath = \&quot;$SourcePath\Docs\&quot; Type = \&quot;Directory\&quot; Recurse = $true DestinationPath = \&quot;$ModulePath\Docs\&quot; Checksum = \&quot;ModifiedDate\&quot; } } } dsc_CopyDSCResource -SourcePath \&quot;\\deploy0\File\\&quot; Start-DscConfiguration -Path .\dsc_CopyDSCResource -Verbose -force -Wait Remove-Item -Path .\dsc_* -Force -Confirm:$false -Recurse [/code:1] Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 20:21<br><br>Message édité par: Perso, à: 27/03/17 20:21[File]powershellFolderDEL\&quot; et \&quot;powershellFolderDEL\&quot; sensée se dérouler après le traitement avec un DependsOn !! Quelqu'un sait-il comment faire ? Faut-il utiliser une ressource \&quot;Script\&quot; de suppression ? Peut être dois-je mettre simplement [b]dans le cas de l'installation[/b] une ressource package avec une chemin distant ? J'essayerais demain, mais pour d'autres traitements ? Merci d'avance. [code:1] $ConfigData = @{ AllNodes = @( @{ NodeName = \&quot;dhcp0\&quot; Role = \&quot;powershell\&quot; }, @{ NodeName = \&quot;infra0\&quot; Role = \&quot;SQLServer\&quot; } ) } Configuration dsc_CopyDSCResource { param ( [Parameter(Mandatory=$true)] [String]$SourcePath, [Parameter(Mandatory=$false)] [String]$ModulePath = \&quot;C:\Windows\Temp\&quot; ) Import-DscResource –ModuleName PSDesiredStateConfiguration Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;powershell\&quot;}.NodeName { File \&quot;powershellFolder\&quot; { Ensure = \&quot;Present\&quot; SourcePath = \&quot;$SourcePath\Powershell\&quot; Type = \&quot;Directory\&quot; Recurse = $true DestinationPath = \&quot;$ModulePath\Powershell\&quot; Checksum = \&quot;ModifiedDate\&quot; } #Actions diverses (installation, etc.) #Package [String] #ResourceName #{ #Name = [string] #Path = [string] #ProductId = [string] #} File \&quot;powershellFolderDEL\&quot; { Ensure = \&quot;Absent\&quot; DependsOn = \&quot;[File]powershellFolder\&quot; Type = \&quot;Directory\&quot; Force = $true DestinationPath = \&quot;$ModulePath\Powershell\&quot; } } Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;SQLserver\&quot;}.NodeName { File \&quot;SQLserverFolder\&quot; { Ensure = \&quot;Present\&quot; SourcePath = \&quot;$SourcePath\Docs\&quot; Type = \&quot;Directory\&quot; Recurse = $true DestinationPath = \&quot;$ModulePath\Docs\&quot; Checksum = \&quot;ModifiedDate\&quot; } } } dsc_CopyDSCResource -SourcePath \&quot;\\deploy0\File\\&quot; Start-DscConfiguration -Path .\dsc_CopyDSCResource -Verbose -force -Wait Remove-Item -Path .\dsc_* -Force -Confirm:$false -Recurse [/code:1] Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 20:21<br><br>Message édité par: Perso, à: 27/03/17 20:21[File]powershellFolderDEL\&quot; sensée se dérouler après le traitement avec un DependsOn !!

Quelqu'un sait-il comment faire ?
Faut-il utiliser une ressource \&quot;Script\&quot; de suppression ?
Peut être dois-je mettre simplement dans le cas de l'installation une ressource package avec une chemin distant ?
J'essayerais demain, mais pour d'autres traitements ?

Merci d'avance.

[code:1]

$ConfigData = @{
AllNodes = @(
@{
NodeName = \&quot;dhcp0\&quot;
Role = \&quot;powershell\&quot;
},
@{
NodeName = \&quot;infra0\&quot;
Role = \&quot;SQLServer\&quot;
}
)
}

Configuration dsc_CopyDSCResource {
param (

[Parameter(Mandatory=$true)]
[String]$SourcePath,

[Parameter(Mandatory=$false)]
[String]$ModulePath = \&quot;C:\Windows\Temp\&quot;
)
Import-DscResource –ModuleName PSDesiredStateConfiguration


Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;powershell\&quot;}.NodeName {

File \&quot;powershellFolder\&quot; {
Ensure = \&quot;Present\&quot;
SourcePath = \&quot;$SourcePath\Powershell\&quot;
Type = \&quot;Directory\&quot;
Recurse = $true
DestinationPath = \&quot;$ModulePath\Powershell\&quot;
Checksum = \&quot;ModifiedDate\&quot;
}

#Actions diverses (installation, etc.)
#Package [String] #ResourceName
#{
#Name = [string]
#Path = [string]
#ProductId = [string]
#}

File \&quot;powershellFolderDEL\&quot; {
Ensure = \&quot;Absent\&quot;
DependsOn = \&quot;powershellFolder\&quot; Type = \&quot;Directory\&quot; Force = $true DestinationPath = \&quot;$ModulePath\Powershell\&quot; } } Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;SQLserver\&quot;}.NodeName { File \&quot;SQLserverFolder\&quot; { Ensure = \&quot;Present\&quot; SourcePath = \&quot;$SourcePath\Docs\&quot; Type = \&quot;Directory\&quot; Recurse = $true DestinationPath = \&quot;$ModulePath\Docs\&quot; Checksum = \&quot;ModifiedDate\&quot; } } } dsc_CopyDSCResource -SourcePath \&quot;\\deploy0\File\\&quot; Start-DscConfiguration -Path .\dsc_CopyDSCResource -Verbose -force -Wait Remove-Item -Path .\dsc_* -Force -Confirm:$false -Recurse [/code:1] Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 19:45 Message édité par: Perso, à: 27/03/17 20:21<br><br>Message édité par: Perso, à: 27/03/17 20:21[File]powershellFolder\&quot;
Type = \&quot;Directory\&quot;
Force = $true
DestinationPath = \&quot;$ModulePath\Powershell\&quot;
}
}

Node $ConfigData.AllNodes.Where{$_.Role -eq \&quot;SQLserver\&quot;}.NodeName {
File \&quot;SQLserverFolder\&quot; {
Ensure = \&quot;Present\&quot;
SourcePath = \&quot;$SourcePath\Docs\&quot;
Type = \&quot;Directory\&quot;
Recurse = $true
DestinationPath = \&quot;$ModulePath\Docs\&quot;
Checksum = \&quot;ModifiedDate\&quot;
}
}
}

dsc_CopyDSCResource -SourcePath \&quot;\\deploy0\File\\&quot;
Start-DscConfiguration -Path .\dsc_CopyDSCResource -Verbose -force -Wait
Remove-Item -Path .\dsc_* -Force -Confirm:$false -Recurse
[/code:1]

Message édité par: Perso, à: 27/03/17 19:45

Message édité par: Perso, à: 27/03/17 19:45

Message édité par: Perso, à: 27/03/17 20:21<br><br>Message édité par: Perso, à: 27/03/17 20:21

ShellDealer sur Twitter

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.163 secondes
Propulsé par Kunena