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.

Reply via email to