Thanks Michael,
What i ended up having to do was create a separate powershell process then
run invoke-webrequest there because start-process allows for -wait.
exec { 'client_setup':
command => '(Start-Process powershell -ArgumentList (Invoke-WebRequest
"Invoke-WebRequest "$$file_source/file.exe " -outfile
C:/Windows/dir/file.exe))',
provider => powershell,
creates => 'C:/Windows/dir/file.exe'
require => Package['client_package'],
}
(Start-Process powershell -ArgumentList (Invoke-WebRequest
"Invoke-WebRequest "$$file_source/file.exe " -outfile
C:/Windows/dir/file.exe))
On Tuesday, September 11, 2018 at 8:36:27 AM UTC-5, Michael Watters wrote:
>
> 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/5582a659-d94e-4272-8a41-8a1591366e71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.