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 puppet-users+unsubscr...@googlegroups.com.
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.

Reply via email to