FAQ
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 puppet-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/6a394e94-7ec7-4cd5-b6b6-a89321f354b7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

  • Juan Andres Ramirez at Oct 9, 2014 at 7:36 pm
    if you want execute a powershell file:

      command => "powershell.exe -ExecutionPolicy ByPass -File file.ps1
    ${param1}"
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/d9fc7278-294d-45ef-9cea-ee9efc43748f%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Paul Ponzeka at Oct 9, 2014 at 7:48 pm
    Thanks Juan. Couple of questions on your reply.


        1. In my case would it be the following: command => "powershell.exe
        -ExecutionPolicy ByPass -File file.ps1 ${dnsforwarders}" # or does this
        need to be adjusted?
        2. How do i do the same with the fact that I am using templates, and
        thus they are stored on Puppet and passed to the server. I am not storing
        the powershell files on the agent server. Is there a way to do something
        like the following:

    command => template ($forwarder_execute) ${Param1}, #
    On Thursday, October 9, 2014 3:35:59 PM UTC-4, Juan Andres Ramirez wrote:

    if you want execute a powershell file:

    command => "powershell.exe -ExecutionPolicy ByPass -File file.ps1
    ${param1}"
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/5eab4876-2e68-4d3a-a6cd-a931b0daa5a4%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Rob Reynolds at Oct 10, 2014 at 9:30 pm

    On Thu, Oct 9, 2014 at 2:35 PM, Juan Andres Ramirez wrote:

    if you want execute a powershell file:

    command => "powershell.exe -ExecutionPolicy ByPass -File file.ps1
    ${param1}"
    I would recommend using -Command and staying away from the error prone
    -File. -Command has more consistency with passing the exit code back than
    -File does and you can still use it to execute against a file. For more
    details please see "PowerShell, batch files, and exit codes"[1].

    [1] http://zduck.com/2012/powershell-batch-files-exit-codes/


    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/d9fc7278-294d-45ef-9cea-ee9efc43748f%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/d9fc7278-294d-45ef-9cea-ee9efc43748f%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAMJiBK77pATQAuQ8huFFzZ2Qjb7rGFH7xuX9WQ7qe6gMQ-oFcg%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
  • Juan Andres Ramirez at Oct 9, 2014 at 7:59 pm
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/c62b8af5-4890-4a84-905e-63e7b6132e13%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Josh Cooper at Oct 9, 2014 at 8:51 pm

    On Thu, Oct 9, 2014 at 12:59 PM, Juan Andres Ramirez 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 puppet-users+unsubscribe@googlegroups.com.
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CA%2Bu97unM6jyQiCEBhdxFT4Qnv93jf95jQQ5%2Bb0PMfAGKZ47PSQ%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
  • Paul Ponzeka at Oct 9, 2014 at 9:18 pm
    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 <jandr...@gmail.com
    <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 puppet-users...@googlegroups.com <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 puppet-users+unsubscribe@googlegroups.com.
    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.
  • Paul Ponzeka at Oct 9, 2014 at 11:56 pm
    I tried that and it just came up blank. Am I suppose to pass it as a
    powershell parameter?
    On Thursday, October 9, 2014 5:18:05 PM UTC-4, Paul Ponzeka wrote:

    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 <jandr...@gmail.com>
    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 puppet-users...@googlegroups.com.
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/e7cfb152-18d3-43df-a782-b69eee1f83ca%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Rob Reynolds at Oct 10, 2014 at 9:27 pm

    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka wrote:

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

    $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 <jandr...@gmail.com>
    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 puppet-users...@googlegroups.com.
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAMJiBK4HaH0RJ8gDQF-Cb5i5sXwYwJmO1ETEjX0-v35zSmug_Q%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
  • Paul Ponzeka at Oct 13, 2014 at 2:15 pm
    Thanks for this rob. I still cannot get the variable to pass into the
    script. Now i have the *setdnsforwarders.ps1.erb* template, and here is
    the complete copy of what is in the template:

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


    I've also tried the following:


    <%= scope.lookupvar('@dnsforwarders') %> | out-file C:\output.log -append
    <%= scope.lookupvar('windows_dns::forwarders') %> | out-file C:\output.log
    -append
    <%= scope.lookupvar('windows_dns::config') %> | out-file C:\output.log
    -append

    Each time the output.log file is blank.

    Here is my windows_dns::config file:

    class windows_dns::config {

    case $kernelmajversion {
    6.3: {
                             $forwarder_execute =
    'windows_dns/setdnsforwarders.ps1.erb'
    $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,

    }

    And here is where the variable is originally defined in the
    windows_dns::init.pp

    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': }

    }

    Any help would be amazing to get the variable to pass
    On Friday, October 10, 2014 5:28:06 PM UTC-4, Rob Reynolds wrote:



    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka <ponz...@gmail.com
    <javascript:>> wrote:
    Thanks josh, so in my template file setdnsforwarders.ps1 is this the
    correct syntax?
    setdnsforwarders.ps1.erb

    $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 <jandr...@gmail.com
    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 puppet-users...@googlegroups.com.
    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 puppet-users...@googlegroups.com <javascript:>.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Josh Cooper at Oct 13, 2014 at 5:05 pm
    Hi Paul,
    On Mon, Oct 13, 2014 at 7:15 AM, Paul Ponzeka wrote:

    Thanks for this rob. I still cannot get the variable to pass into the
    script. Now i have the *setdnsforwarders.ps1.erb* template,
    Note puppet doesn't care what the file extension is, so long as the
    template('path/to/file') refers to the correct file.

    and here is the complete copy of what is in the template:

    $outside = <%= scope['dnsforwarders'] %>
    $outside | out-file C:\output.log -append
    I've also tried the following:


    <%= scope.lookupvar('@dnsforwarders') %> | out-file C:\output.log -append
    Variables in the current scope can be accessed directly as <%=
    @dnsforwarders %>, as opposed to the variable named "@dnsforwarders"

    <%= scope.lookupvar('windows_dns::forwarders') %> | out-file C:\output.log
    -append
    I think the pipeline construct isn't doing what you would expect. I think
    you need to quote the ERB snippet, so that powershell sees a literal string:

    '<%= scope.lookupvar('windows_dns::forwarders') %>' | out-file
    C:\output.log -append

    <%= scope.lookupvar('windows_dns::config') %> | out-file C:\output.log
    -append
    Each time the output.log file is blank.
    Here is my windows_dns::config file:

    class windows_dns::config {

    case $kernelmajversion {
    6.3: {
    $forwarder_execute =
    'windows_dns/setdnsforwarders.ps1.erb'
    $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,

    }
    And here is where the variable is originally defined in the
    windows_dns::init.pp

    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': }

    }
    If you are using a recent version of puppet, you don't need the anchor
    pattern. See
    https://docs.puppetlabs.com/puppet/latest/reference/lang_containment.html

    Any help would be amazing to get the variable to pass
    Here's an example using an inline template that works correctly. Note I
    have to escape the backslash c:\\output.log due to the double quoted
    string. You won't need to do that if the template is in an external file:

    class windows_dns::config {
       $dnsforwarder = "www.example.com"

       exec { 'command':
         command => inline_template("'<%= scope['dnsforwarder'] %>' | out-file
    c:\\output.log -append"),
         logoutput => true,
         provider => powershell
       }
    }

    include windows_dns::config

    C:\>puppet apply powershell.pp
    Notice: Compiled catalog for win-agent in environment production in 0.11
    seconds
    Notice: /Stage[main]/Windows_dns::Config/Exec[command]/returns: executed
    successfully
    Notice: Finished catalog run in 1.09 seconds

    Note this will create a UTF-16LE encoded file with a byte-order mark. You
    may want to specify the encoding of the file you're writing to.

    On Friday, October 10, 2014 5:28:06 PM UTC-4, Rob Reynolds wrote:


    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka wrote:

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

    $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 <
    jandr...@gmail.com> 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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/c62b8af5-4890-4a84-905e-63e7b6132e13%40goog
    legroups.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/gu
    ides/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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%
    40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CA%2Bu97ukN1hB7x9kv5ZwpsSnTpwKzpL_%3D97jC0faU3EspJpeLOw%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
  • Paul Ponzeka at Oct 13, 2014 at 5:48 pm
    Josh, your a god among men. Thank you so much. It was the literal string
    for the variable that resolved it.
    On Monday, October 13, 2014 1:05:39 PM UTC-4, Josh Cooper wrote:

    Hi Paul,

    On Mon, Oct 13, 2014 at 7:15 AM, Paul Ponzeka <ponz...@gmail.com
    <javascript:>> wrote:
    Thanks for this rob. I still cannot get the variable to pass into the
    script. Now i have the *setdnsforwarders.ps1.erb* template,
    Note puppet doesn't care what the file extension is, so long as the
    template('path/to/file') refers to the correct file.

    and here is the complete copy of what is in the template:

    $outside = <%= scope['dnsforwarders'] %>
    $outside | out-file C:\output.log -append
    I've also tried the following:


    <%= scope.lookupvar('@dnsforwarders') %> | out-file C:\output.log -append
    Variables in the current scope can be accessed directly as <%=
    @dnsforwarders %>, as opposed to the variable named "@dnsforwarders"

    <%= scope.lookupvar('windows_dns::forwarders') %> | out-file
    C:\output.log -append
    I think the pipeline construct isn't doing what you would expect. I think
    you need to quote the ERB snippet, so that powershell sees a literal string:

    '<%= scope.lookupvar('windows_dns::forwarders') %>' | out-file
    C:\output.log -append

    <%= scope.lookupvar('windows_dns::config') %> | out-file C:\output.log
    -append
    Each time the output.log file is blank.
    Here is my windows_dns::config file:

    class windows_dns::config {

    case $kernelmajversion {
    6.3: {
    $forwarder_execute =
    'windows_dns/setdnsforwarders.ps1.erb'
    $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,

    }
    And here is where the variable is originally defined in the
    windows_dns::init.pp

    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': }

    }
    If you are using a recent version of puppet, you don't need the anchor
    pattern. See
    https://docs.puppetlabs.com/puppet/latest/reference/lang_containment.html

    Any help would be amazing to get the variable to pass
    Here's an example using an inline template that works correctly. Note I
    have to escape the backslash c:\\output.log due to the double quoted
    string. You won't need to do that if the template is in an external file:

    class windows_dns::config {
    $dnsforwarder = "www.example.com"

    exec { 'command':
    command => inline_template("'<%= scope['dnsforwarder'] %>' |
    out-file c:\\output.log -append"),
    logoutput => true,
    provider => powershell
    }
    }

    include windows_dns::config

    C:\>puppet apply powershell.pp
    Notice: Compiled catalog for win-agent in environment production in 0.11
    seconds
    Notice: /Stage[main]/Windows_dns::Config/Exec[command]/returns: executed
    successfully
    Notice: Finished catalog run in 1.09 seconds

    Note this will create a UTF-16LE encoded file with a byte-order mark. You
    may want to specify the encoding of the file you're writing to.

    On Friday, October 10, 2014 5:28:06 PM UTC-4, Rob Reynolds wrote:


    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka wrote:

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

    $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 <
    jandr...@gmail.com> 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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/c62b8af5-4890-4a84-905e-63e7b6132e13%40goog
    legroups.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/gu
    ides/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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%
    40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users...@googlegroups.com <javascript:>.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/9c8effba-c5b5-44b6-b76b-ab3ea61a4d1d%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Paul Ponzeka at Oct 15, 2014 at 3:39 pm
    Hopefully this is my last question. How do i get the variable that passes
    through to powershell to be a proper array? The reason is that i need to
    run a foreach loop on it, but it sees the variable as one long item instead
    of multiples if its configured as such:

    $forwarders = ["1.1.1.1","2.2.2.2"]
    On Monday, October 13, 2014 1:48:46 PM UTC-4, Paul Ponzeka wrote:

    Josh, your a god among men. Thank you so much. It was the literal string
    for the variable that resolved it.
    On Monday, October 13, 2014 1:05:39 PM UTC-4, Josh Cooper wrote:

    Hi Paul,
    On Mon, Oct 13, 2014 at 7:15 AM, Paul Ponzeka wrote:

    Thanks for this rob. I still cannot get the variable to pass into the
    script. Now i have the *setdnsforwarders.ps1.erb* template,
    Note puppet doesn't care what the file extension is, so long as the
    template('path/to/file') refers to the correct file.

    and here is the complete copy of what is in the template:

    $outside = <%= scope['dnsforwarders'] %>
    $outside | out-file C:\output.log -append
    I've also tried the following:


    <%= scope.lookupvar('@dnsforwarders') %> | out-file C:\output.log -append
    Variables in the current scope can be accessed directly as <%=
    @dnsforwarders %>, as opposed to the variable named "@dnsforwarders"

    <%= scope.lookupvar('windows_dns::forwarders') %> | out-file
    C:\output.log -append
    I think the pipeline construct isn't doing what you would expect. I think
    you need to quote the ERB snippet, so that powershell sees a literal string:

    '<%= scope.lookupvar('windows_dns::forwarders') %>' | out-file
    C:\output.log -append

    <%= scope.lookupvar('windows_dns::config') %> | out-file C:\output.log
    -append
    Each time the output.log file is blank.
    Here is my windows_dns::config file:

    class windows_dns::config {

    case $kernelmajversion {
    6.3: {
    $forwarder_execute =
    'windows_dns/setdnsforwarders.ps1.erb'
    $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,

    }
    And here is where the variable is originally defined in the
    windows_dns::init.pp

    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': }

    }
    If you are using a recent version of puppet, you don't need the anchor
    pattern. See
    https://docs.puppetlabs.com/puppet/latest/reference/lang_containment.html

    Any help would be amazing to get the variable to pass
    Here's an example using an inline template that works correctly. Note I
    have to escape the backslash c:\\output.log due to the double quoted
    string. You won't need to do that if the template is in an external file:

    class windows_dns::config {
    $dnsforwarder = "www.example.com"

    exec { 'command':
    command => inline_template("'<%= scope['dnsforwarder'] %>' |
    out-file c:\\output.log -append"),
    logoutput => true,
    provider => powershell
    }
    }

    include windows_dns::config

    C:\>puppet apply powershell.pp
    Notice: Compiled catalog for win-agent in environment production in 0.11
    seconds
    Notice: /Stage[main]/Windows_dns::Config/Exec[command]/returns: executed
    successfully
    Notice: Finished catalog run in 1.09 seconds

    Note this will create a UTF-16LE encoded file with a byte-order mark. You
    may want to specify the encoding of the file you're writing to.

    On Friday, October 10, 2014 5:28:06 PM UTC-4, Rob Reynolds wrote:


    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka wrote:

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

    $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 <
    jandr...@gmail.com> 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 puppet-users...@googlegroups.com.
    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/gu
    ides/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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%
    40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/1a20cb93-4698-4e1e-8ed9-6a990e5b5e7e%40googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Rob Reynolds at Oct 23, 2014 at 8:54 pm

    On Wed, Oct 15, 2014 at 10:39 AM, Paul Ponzeka wrote:

    Hopefully this is my last question. How do i get the variable that passes
    through to powershell to be a proper array? The reason is that i need to
    run a foreach loop on it, but it sees the variable as one long item instead
    of multiples if its configured as such:

    $forwarders = ["1.1.1.1","2.2.2.2"]
    You could pass a string with a known delimiter and use that to split into
    an array. There are probably other options for this as well, but I'm not
    sure a ruby array is going to directly transfer to a posh array.


    On Monday, October 13, 2014 1:48:46 PM UTC-4, Paul Ponzeka wrote:

    Josh, your a god among men. Thank you so much. It was the literal
    string for the variable that resolved it.
    On Monday, October 13, 2014 1:05:39 PM UTC-4, Josh Cooper wrote:

    Hi Paul,
    On Mon, Oct 13, 2014 at 7:15 AM, Paul Ponzeka wrote:

    Thanks for this rob. I still cannot get the variable to pass into the
    script. Now i have the *setdnsforwarders.ps1.erb* template,
    Note puppet doesn't care what the file extension is, so long as the
    template('path/to/file') refers to the correct file.

    and here is the complete copy of what is in the template:

    $outside = <%= scope['dnsforwarders'] %>
    $outside | out-file C:\output.log -append
    I've also tried the following:


    <%= scope.lookupvar('@dnsforwarders') %> | out-file C:\output.log
    -append
    Variables in the current scope can be accessed directly as <%=
    @dnsforwarders %>, as opposed to the variable named "@dnsforwarders"

    <%= scope.lookupvar('windows_dns::forwarders') %> | out-file
    C:\output.log -append
    I think the pipeline construct isn't doing what you would expect. I
    think you need to quote the ERB snippet, so that powershell sees a literal
    string:

    '<%= scope.lookupvar('windows_dns::forwarders') %>' | out-file
    C:\output.log -append

    <%= scope.lookupvar('windows_dns::config') %> | out-file C:\output.log
    -append
    Each time the output.log file is blank.
    Here is my windows_dns::config file:

    class windows_dns::config {

    case $kernelmajversion {
    6.3: {
    $forwarder_execute =
    'windows_dns/setdnsforwarders.ps1.erb'
    $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,

    }
    And here is where the variable is originally defined in the
    windows_dns::init.pp

    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': }

    }
    If you are using a recent version of puppet, you don't need the anchor
    pattern. See https://docs.puppetlabs.com/puppet/latest/reference/lang_
    containment.html

    Any help would be amazing to get the variable to pass
    Here's an example using an inline template that works correctly. Note I
    have to escape the backslash c:\\output.log due to the double quoted
    string. You won't need to do that if the template is in an external file:

    class windows_dns::config {
    $dnsforwarder = "www.example.com"

    exec { 'command':
    command => inline_template("'<%= scope['dnsforwarder'] %>' |
    out-file c:\\output.log -append"),
    logoutput => true,
    provider => powershell
    }
    }

    include windows_dns::config

    C:\>puppet apply powershell.pp
    Notice: Compiled catalog for win-agent in environment production in 0.11
    seconds
    Notice: /Stage[main]/Windows_dns::Config/Exec[command]/returns:
    executed successfully
    Notice: Finished catalog run in 1.09 seconds

    Note this will create a UTF-16LE encoded file with a byte-order mark.
    You may want to specify the encoding of the file you're writing to.

    On Friday, October 10, 2014 5:28:06 PM UTC-4, Rob Reynolds wrote:



    On Thu, Oct 9, 2014 at 4:18 PM, Paul Ponzeka <ponz...@gmail.com>
    wrote:
    Thanks josh, so in my template file setdnsforwarders.ps1 is this the
    correct syntax?
    setdnsforwarders.ps1.erb

    $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 <
    jandr...@gmail.com> 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 puppet-users...@googlegroups.com.
    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#referenci
    ng-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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40goog
    legroups.com
    <https://groups.google.com/d/msgid/puppet-users/961dd225-1159-48fe-a9bf-c727bf094b74%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    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 puppet-users...@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%
    40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/d23ddc00-af07-462d-9a99-1a9d668bce32%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    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 puppet-users+unsubscribe@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/puppet-users/1a20cb93-4698-4e1e-8ed9-6a990e5b5e7e%40googlegroups.com
    <https://groups.google.com/d/msgid/puppet-users/1a20cb93-4698-4e1e-8ed9-6a990e5b5e7e%40googlegroups.com?utm_medium=email&utm_source=footer>
    .

    For more options, visit https://groups.google.com/d/optout.


    --
    Rob Reynolds
    Developer, Puppet Labs

    *Join us at **PuppetConf 2015, October 5-9 in Portland, OR - *
    http://2015.puppetconf.com/
    *Register early to save 40%!*

    --
    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+unsubscribe@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAMJiBK6RYtMCOFRdy3Pex_3wxw0%3Dh6LwFWr%3D-yX_NBEU5cAZBQ%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedOct 9, '14 at 7:23p
activeOct 23, '14 at 8:54p
posts14
users4
websitepuppetlabs.com

People

Translate

site design / logo © 2022 Grokbase