How do you use a variable in a Puppet Manifest?

6,687

Solution 1

Have you tried it this way?

class excellent {
  $cool = 'Saturday'

  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

Or, this way

class excellent (
  $cool = 'Saturday'
){
  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

Solution 2

You currently seem to be attempting to assign a value to a variable within the class declaration. Your variable assignment needs to be separate.

$cool = 'Saturday'

Your class declaration should look like this.

class {'namevar':
  a => 'a',
  b => 'b',
  c => 'c'
}
Share:
6,687

Related videos on Youtube

Kiran
Author by

Kiran

Updated on September 18, 2022

Comments

  • Kiran
    Kiran almost 2 years

    I am using the WSUS Module with Puppet Master on Centos 7.2. My Puppet Agent servers are running Windows Server 2012.

    I want to use a manifest with a variable. However, when the Puppet Agent server has the puppet agent run, it displays "error 400, syntax error." I have tried re-writing the manifest and every variation I could think of. I keep getting some error.

    Here is one example of a manifest:

    class excellent {
        class { 'wsus_client':
           $cool = 'Saturday'
        server_url => 'http://acme.com',
        auto_update_option  => 'Scheduled'
        scheduled_install_day => $cool,
        scheduled_install_hour => 1,
    }
    }
    

    I've tried assigning the variable in braces {}. I tried to use $LOAD_PATH, --custom-dir and FACTERLIB. But I could not figure out how to use any of these three.

    I want to change the variable in one place and use it within the scope of its parent class. What should I do?

  • Stefan Lasiewski
    Stefan Lasiewski almost 8 years
    Is there any difference between these two?
  • Zoredache
    Zoredache almost 8 years
    @StefanLasiewski yes, the second one makes $cool be a parameter for the class excellent. Meaning you could set it in heira, or in your class declaration for excellent.