You should be able to add a require => Package['client_package'] parameter
to the exec resource to resolve this. For example:
$file_source = lookup('application.client')
if $facts['domain'] == 'internal' {
file { 'sccm_setup':
path => 'C:/Windows/ccmsetup/ccmsetup.exe',
source => "$file_source /file.exe"
}
}
else {
exec { 'client_setup':
command => 'Invoke-WebRequest "$$file_source/file.exe " -outfile
"C:/Windows/dir/file.exe" ',
provider => powershell,
creates => 'C:/Windows/dir/file.exe'
require => Package['client_package'],
}
}
package { 'client_package':
}
On Tuesday, September 11, 2018 at 9:09:25 AM UTC-4, Jason McMahan wrote:
>
> Thanks Michael,
> I think my problem is not syntax but rather the invoke-webrequest is not
> actually completing before moving to the package resource. Then as the file
> doesnt exist the run fails.
> Back to drawing board.
>
> Appreciate the quick reply.
>
>
> On Tuesday, September 11, 2018 at 7:27:49 AM UTC-5, Michael Watters wrote:
>>
>> What you have there looks fine but I would change the elsif to an else
>> statement.
>>
>>
>> On Tuesday, September 11, 2018 at 8:08:53 AM UTC-4, Jason McMahan wrote:
>>>
>>> Good day,
>>> I am attempting to add require to an if statement and not sure i am
>>> doing it right. Any help would be greatly appreciated.
>>>
>>> If the machine is joined to our internal domain it will use a file
>>> resource, if external i am using a invoke-webrequest as the file is on
>>> azure blob storage.
>>>
>>>
>>> $file_source = lookup('application.client')
>>>
>>> if $facts['domain'] == 'internal' {
>>> file { 'sccm_setup':
>>> path => 'C:/Windows/ccmsetup/ccmsetup.exe',
>>> source => "$file_source /file.exe"
>>> }
>>> }
>>> elsif $facts['domain'] != 'internal' {
>>> exec { 'client_setup':
>>> command => 'Invoke-WebRequest "$$file_source/file.exe " -outfile
>>> "C:/Windows/dir/file.exe" ',
>>> provider => powershell,
>>> creates => 'C:/Windows/dir/file.exe'
>>> }
>>> }
>>> package { 'client_package':
>>> }
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/861aa7fe-8e71-49d5-a36b-df650596827a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.