Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-4197

Puppet creates production directory in first directory listed in environment_path

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Normal
    • Resolution: Duplicate
    • PUP 3.7.2
    • None
    • Language
    • None
    • Debian Jessie 8.0

    Description

      When supplied with multiple directories in environmentpath, puppet will in the first run create the empty directory "production" in the first directory listed, even if that environment already exists in another directory listed in environmentpath.
      Successive puppet runs will detect the empty production environment
      and do nothing.

      Example:

      vagrant@localdev:~$ sudo puppet config print environmentpath
      /etc/puppet/environments:/var/lib/r10k/environments
       
      vagrant@localdev:~$ ls -l /etc/puppet/environments
      total 0
      vagrant@localdev:~$ ls -l /var/lib/r10k/environments
      total 4
      drwxr-xr-x 6 root root 4096 Mar 13 12:10 production
      

      Modulepath is correct from environment.conf, lying in correct production environment folder:

      vagrant@localdev:~$ sudo puppet config print modulepath
      /var/lib/r10k/environments/production/modules:/var/lib/r10k/environments/production/3rdparty/modules:/etc/puppet/modules:/usr/share/puppet/modules
      
      

      First puppet run:

      vagrant@localdev:~$ sudo puppet apply --execute "notify{'nothing':}"
      Notice: Compiled catalog for localdev.XXXX in environment production in 0.02 seconds
      Notice: /File[/etc/puppet/environments/production]/ensure: created
      Notice: nothing
      Notice: /Stage[main]/Main/Notify[nothing]/message: defined 'message' as 'nothing'
      Notice: Finished catalog run in 0.10 seconds
      

      After that, modulepath points to not existent directory within newly created empty production environment:

      vagrant@localdev:~$ sudo puppet config print modulepath
      /etc/puppet/environments/production/modules:/etc/puppet/modules:/usr/share/puppet/modules
      

      A workaround for that problem is adding a non existent directory to the environment path:

      environmentpath=/etc/puppet/nonexistent:/etc/puppet/environments:/var/lib/r10k/environments
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              arnd Arnd Hannemann
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support