Changes between Version 1 and Version 2 of Puppet/Basics

Apr 16, 2020 10:19:40 AM (20 months ago)
Scott Wales



  • Puppet/Basics

    v1 v2  
    33Puppet is the system used to configure the Accessdev VM. It is a configuration management tool - basically you specify the state you'd like the system to be in, then Puppet does its best to put the system in that state.
    5 Accessdev is based around the [browser:/puppet/modules/accessdev-node/manifests/init.pp@master accessdev-node] Puppet module. This specifies a list of puppet classes and resources that must be installed on the system.
     5== Accessing Puppet ==
    7 Puppet has two main types of resources - classes and defines. A class can only appear once, it defines a self-contained package (e.g. the UMUI). A define can be used several times; you can use it to define multiple versions of the same type of resource (e.g. multiple subversion repositories)
     7The Accessdev puppet code lives at
     9To access this website you need to contact NCI to get your account approved
     11It works like github, you can check out the puppet code with
     13    `git clone`
     15Before making any changes, make a branch, preferably with a somewhat descriptive name
     17    `git checkout -b add_root_account`
     19== Making Changes ==
     21There are two places you may want to make changes
     231.  The 'Heira' configuration, under 'hieradata/'. These are Yaml configuration files where you can configure basic settings, like software versions.
     25    The main file to look at here is 'hieradata/node/accessdev.yaml'
     272.  The 'Puppet' configuration under 'modules'. These are programmed in the Puppet language, and control the specifics of what files are created or modified. These are used for more complex setup of program installs. See the Puppet documentation at
     29    The main file to look at here is 'modules/accessdevnode/manifests/init.pp'
     31    NCI have supplied a number of modules under 'corefw/', these can be used by our puppet code but should not be modified.
     33In general, try grepping for the file or setting you want to change to see if that has already been set up in the system before making a change.
     35== Testing and Applying Changes ==
     37Before applying changes to Accessdev they should be tested on the test system ''.
     39Commit your changes, then upload your branch using
     41    `git push -u origin add_root_account`
     43Log in to accessdev-test, then apply the changes with
     45    `sudo puppet-update --environment add_root_account`
     47Test the system to make sure your changes work as you expect
     49Once you are confident the change is working, merge your branch into 'production', either on or via the command line.
     51Put accessdev-test back on the production branch with
     53    `sudo puppet-update --environment production`
     55Then log into accessdev proper and update it with
     57    `sudo puppet-update`