What happens if you take the production/environment.conf file out of the equation? It will override any default values specified by puppet.conf. I have left it out of my configuration entirely.
On Tuesday, October 28, 2014 10:46:57 AM UTC-7, Victor Danilchenko wrote: > > Tony, > > When I explicitly specify --environment=production, Puppet breaks the > same way as in the OP -- i.e. it simply fails to find the modules (and > manifests). If I specify a non-existent environment, it throws the normal > 'could > not find directory environment' error. > > So clearly Puppet reads my environments -- it just doesn't read anything > *within > *them, modules or manifests. It also doesn't read my > environments/production/environment.conf file, which I just created: > > [root@kmadmin102 puppet]# ls -l /etc/puppet/environments/production/ > total 12 > -rw-r--r-- 1 root root 57 Oct 28 13:39 environment.conf > drwxr-xr-x 3 root root 4096 Oct 24 15:20 manifests > drwxr-xr-x 32 root root 4096 Oct 22 14:51 modules > > [root@kmadmin102 puppet]# cat > /etc/puppet/environments/production/environment.conf > modulepath = /etc/puppet/environments/production/modules > > [root@kmadmin102 puppet]# ls -m -w 80 > /etc/puppet/environments/production/modules > apache, apt, awstats, concat, elasticsearch, firewall, gcc, git, inifile, > java, > km, logrotate, memcached, module_data, mysql, nodejs, perl, php, > postgresql, > puppet-puppetdbquery, rclocal, redis, repoforge, rsync, src, stdlib, sudo, > sysctl, wget, xinetd > > [root@kmadmin102 puppet]# puppet module list --environment=production > /usr/share/puppet/modules (no modules installed) > > Thanks for the pointer about the default manifest, I didn't realize that > it would actually override the environment ones, I assumed it worked > additively, like modulepath. > > I have disabled the default manifest, but my puppet is still not finding > the per-environment modules... > > > > On Tuesday, October 28, 2014 1:08:11 PM UTC-4, Tony Thayer wrote: >> >> What happens when you run >> puppet module list --environment=production >> ? >> Your configuration doesn't define which environment the puppet agent >> lives in, so it _should_default to production but I've been running into >> this kind of thing myself. This directory structure is working for me: >> /etc/puppet >> - /modules (root modules, stuff downloaded from puppet forge) >> - /manifests (Empty on purpose. Directory environments define my nodes >> now.) >> - /environments >> - /test01 >> - /test02 >> - /manifests >> - site.pp >> - /modules >> - /allmyenvironment-specific-modules >> - /hieradata >> - /production >> - /manifests >> - site.pp >> - /modules >> - /allmyenvironment-specific-modules >> - /hieradata >> >> Specifying your default_manifest will override your directory >> environments as per the documentation. My puppet.conf has some lines like >> this in it to remind me: >> >> [main] >> # The Puppet log directory. >> # The default value is '$vardir/log'. >> logdir = /var/log/puppet >> >> >> # Where Puppet PID files are kept. >> # The default value is '$vardir/run'. >> rundir = /var/run/puppet >> >> >> # Where SSL certificates are kept. >> # The default value is '$confdir/ssl'. >> ssldir = $vardir/ssl >> environmentpath = $confdir/environments >> basemodulepath = $confdir/modules >> # default manifest prevents the directory environment from taking >> # default_manifest = /etc/puppet/manifests >> # Disabling to enable environment-specific site.pp 10/20/2014 tthayer >> # disable_per_environment_manifest = true >> >> - Tony >> >> On Monday, October 27, 2014 2:43:07 PM UTC-7, Victor Danilchenko wrote: >>> >>> Hi all, >>> >>> I am running a puppetmaster setup on CentOS. We have out production >>> environment working fine. However, I am trying to migrate from puppet 3.4, >>> and from config environments to directory environments. I got my >>> environments tree all set up in the puppet master, but when I activate my >>> directory environments, puppetmaster suddently can't see any modules or >>> manifests -- it runs, but returns empty catalog for the agent, and 'puppet >>> modules list' says I have no modules installed: >>> >>> # puppet module list >>> /usr/share/puppet/modules (no modules installed) >>> >>> None of the other global config files contain anything that references >>> environments. My environment directory is set up correctly (it works on our >>> production puppetmaster), and it works when I point the puppetmaster at it >>> *explicitly*: >>> >>> # puppet module >>> --confdir=/etc/puppet/environments/production/modules:/usr/share/puppet/modules >>> >>> list >>> /etc/puppet/environments/production/modules >>> >>> ├── apache (???) >>> ├── awstats (???) >>> etc. >>> >>> Here's my main config file, stripped of comments: >>> >>> [main] >>> certname=kmadmin102 >>> dns_alt_names=kmadmin102.vistaprint.net,test-kmpuppet,test-kmpuppet. >>> vistaprint.net,kmadmin102.vistaprint.net >>> logdir = /var/log/puppet/ >>> rundir = /var/run/puppet >>> ssldir = $vardir/ssl >>> pluginsync = true >>> certificate_revocation = false >>> report = false >>> configtimeout = 4m >>> *environmentpath **= $confdir/**environments* >>> default_manifest = $confdir/manifests >>> basemodulepath = $confdir/modules:/usr/share/puppet/modules >>> [agent] >>> classfile = $vardir/classes.txt >>> localconfig = $vardir/localconfig >>> [master] >>> >>> Can someone see what I am doing wrong? >>> >>> I also have PuppetDB installed, but that shouldn't affect 'puppet >>> modules list' command. Puppet fails the same way with or without >>> PuppetDB. >>> >> -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/39aaabef-d1d0-4668-8a3a-a3d7b2e9e8d7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.