Thanks josh, so in my template file setdnsforwarders.ps1 is this the 
correct syntax?

$outside = <%= scope['dnsforwarders'] %>
$outside | out-file C:\output.log -append


On Thursday, October 9, 2014 4:52:04 PM UTC-4, Josh Cooper wrote:
>
>
>
> On Thu, Oct 9, 2014 at 12:59 PM, Juan Andres Ramirez <[email protected] 
> <javascript:>> wrote:
>
>> Example:
>>
>> I have my script on powershell in the next path
>>
>> in Puppet:
>>
>> define some::module() {
>>    $script = "\\\\server1\\shared\\script.ps1
>>         
>>     exec { "Executing a script":
>>           command => "powershell.exe -ExecutionPolicy ByPass -File 
>> ${script} ${param1}",
>>           unless      => "powershell.exe -ExecutionPolicy ByPass -command 
>> \"here any command on powershell \""
>> }
>>
>>
>>
>> On Thursday, October 9, 2014 4:22:14 PM UTC-3, Paul Ponzeka wrote:
>>
>>> I am using Puppet installed with the powershell module.  I am struggling 
>>> with how to pass a puppet variable through to powershell.  For instance I 
>>> have the following in my module *init.pp* file:
>>>
>>> class windows_dns(
>>>
>>> $forwarders = '1.1.1.1'
>>>
>>> ) {
>>>    anchor { 'windows_dns::begin': } ->
>>>    class{'windows_dns::install': } ->
>>>    class{'windows_dns::config': } ->
>>>    class{'windows_dns::service': } ->
>>>    anchor { 'windows_dns::end': }
>>>
>>> }
>>>
>>>
>>> Then in my *config.pp* file I have:
>>>
>>> class windows_dns::config {
>>>
>>> case $kernelmajversion {
>>> 6.3: {
>>>                         $forwarder_execute = 
>>> 'windows_dns/setdnsforwarders.ps1'
>>> $forwarder_check = 'windows_dns/checkdnsforwarders.ps1'
>>> $dnsforwarders = $windows_dns::forwarders
>>>
>>>                 }
>>> 6.1: {
>>>                         $forwarder_execute = 
>>> 'windows_dns/setdnsforwarders_legacy.ps1'
>>> $forwarder_check = 'windows_dns/checkdnsforwarders_legacy.ps1'
>>>
>>>                 }
>>>                 }
>>>
>>> exec { 'forwarderscreate':
>>>
>>> command => template ($forwarder_execute),
>>> unless => template ($forwarder_check),
>>> provider => powershell,
>>> logoutput => true,
>>>
>>> }
>>>
>>> I have stored as a template in the manifest a powershell script file as:
>>>
>>> $dnsforwarders | out-file C:\test.log
>>>
>>> I obviously want to use a more complex output.  I tried adding a 
>>> parameter to the top of my powershell script but dont understand how to 
>>> pass that as an option to puppet.  
>>>
>>> The variable passes through fine.  I tested by changing the command to 
>>> *command=> 
>>> template ($dnsforwarders)* and i of course got an error from puppet 
>>> about it not being able to find the template named *1.1.1.1* in the 
>>> manifest.  I just dont know how to pass this through to the shell. 
>>>
>>  -- 
>> 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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/puppet-users/c62b8af5-4890-4a84-905e-63e7b6132e13%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/puppet-users/c62b8af5-4890-4a84-905e-63e7b6132e13%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> I would recommend using the powershell provider as you were doing. In your 
> powershell script 'windows_dns/setdnsforwarders.ps1', resolve parameters 
> using ERB syntax found in 
> https://docs.puppetlabs.com/guides/templating.html#referencing-variables, 
> something like:
>
> <%= scope['dnsforwarders'] %>
>
> Josh
>
> -- 
> Josh Cooper
> Developer, Puppet Labs
>  

-- 
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/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to