Hi all,

I have a curious problem that I'd appreciate help/guidance on.

We are running puppetserver 2.6.0 (puppetmaster.domain.ca) with cobbler 
2.6.11 as our ENC. All our servers/nodes are centos 7.3

On the puppet client (node.domain.ca) when running the puppet agent we 
receive the following output/error:

[r...@node.domain.ca ~]# 
Redirecting to /bin/systemctl stop  puppet.service
Info: Caching certificate for node.domain.ca
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for node.domain.ca
Info: Using configured environment 'ops'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: 
Server Error: Could not find class users::opsusers for node.domain.ca on 
node node.domain.ca
Info: Using cached catalog from environment 'ops'
Info: Applying configuration version '1487721491'
Notice: /Stage[main]/Puppet::Agent/Service[puppet]/ensure: ensure changed 
'stopped' to 'running'
Info: /Stage[main]/Puppet::Agent/Service[puppet]: Unscheduling refresh on 
Service[puppet]
Error: 
/Stage[main]/Main/Selinux::Audit2allow[zabbix_bug]/File[/etc/selinux/local/zabbix_bug/messages]:
 
Could not evaluate: Could not retrieve information from environment ops 
source(s) puppet:///modules/node2.domain.ca/messages.zabbix
Notice: /Stage[main]/Main/Selinux::Audit2allow[zabbix_bug]/Exec[semodule -r 
localzabbix_bug; rm -f localzabbix_bug.*; audit2allow -M localzabbix_bug -i 
messages && semodule -i localzabbix_bug.pp]: Dependency 
File[/etc/selinux/local/zabbix/messages] has failures: true
Warning: /Stage[main]/Main/Selinux::Audit2allow[zabbix_bug]/Exec[semodule 
-r localzabbix_bug; rm -f localzabbix_bug.*; audit2allow -M localzabbix_bug 
-i messages && semodule -i localzabbix_bug.pp]: Skipping because of failed 
dependencies
Notice: /Stage[main]/Legato/File[/nsr/tmp/sec/nsr_shutdown.pid]/seluser: 
seluser changed 'unconfined_u' to 'system_u'
Notice: /Stage[main]/Legato/File[/nsr/tmp/sec/services]/seluser: seluser 
changed 'unconfined_u' to 'system_u'
Notice: /Stage[main]/Tools/Exec[check_presence]/returns: executed 
successfully
Info: Stage[main]: Unscheduling all events on Stage[main]
Notice: Applied catalog in 48.03 seconds


The problem is that despite the agent claiming to retrieve the catalog for 
the `ops` environment it throws two errors where its not able to find class 
/retrieve information. 
The strange part is that the class `users::opsuser` is only defined under 
the ops/classes directory for that environment.
The second error is thrown by module `selinux::audit2allow` module and 
claims that the environment `ops` can not find source 
puppet:///modules/node2.domain.ca/messages.zabbix  BUT this path is ONLY 
defined in the production environment's site.pp.  

The site.pp for the environment 'ops' has the following source defined for 
this message file for the selinux::audit2allow module:
puppet:///modules/selinux/messages.zabbix

This says to me that the agent is relying on some default `production` 
environment values but it is not clear to me how/where this is happening. 

Here's a snippet of the tree output for the /etc/puppetlabs/code directory 
on puppetmaster with key files shown listed: 
[root@puppetmaster /etc/puppetlabs/]# tree -L 6 code
code
├── environments
│   ├── ops
│   │   ├── classes
│   │   │   └── node.domain.ca
│   │   │       ├── files
│   │   │       └── manifests
│   │   │           └── init.pp
│   │   ├── environment.conf
│   │   ├── hieradata
│   │   ├── manifests
│   │   │   └── site.pp
│   │   ├── modules
│   │   │   ├── selinux
│   │   │   │   ├── files
│   │   │   │   │   └── messages.zabbix
│   │   │   │   ├── manifests
│   │   │   │   │   ├── audit2allow.pp
│   │   │   │   │   └── init.pp
│   │   │   ├── users
│   │   │   │   ├── files
│   │   │   │   ├── manifests
│   │   │   │   │   ├── init.pp
│   │   │   │   │   └── opsusers.pp
│   │   │   └── zabbix
│   ├── node.rb
│   └── production
│       ├── classes
│       │   ├── node2.domain.ca
│       │   │   ├── files
│       │   │   │   └── messages.zabbix
│       │   │   └── manifests
│       │   │       └── init.pp
│       ├── environment.conf
│       ├── hieradata
│       ├── manifests
│       │   └── site.pp
│       ├── modules
│       │   ├── selinux
│       │   │   ├── files
│       │   │   │   └── messages.zabbix
│       │   │   ├── manifests
│       │   │   │   └── audit2allow.pp
│       │   ├── users
│       │   │   ├── files
│       │   │   └──  manifests
│       │   └── zabbix
├── hiera.yaml
└── modules

The 'ops' environment.conf file has these 2 lines defined:
modulepath = ./modules:./classes:$basemodulepath
manifest = ./manifests

The `production` environment.conf has the following:
modulepath = ./modules:./classes:$basemodulepath
# manifest = (default_manifest from puppet.conf, which defaults to 
./manifests)

The `/etc/puppetlabs/puppet/puppet.conf` :
[main]
environmentpath = /etc/puppetlabs/code/environments
basemodulepath = 
/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules/
node_terminus = exec
external_nodes = /etc/puppetlabs/code/environments/node.rb

[master]
vardir = /opt/puppetlabs/server/data/puppetserver
logdir = /var/log/puppetlabs/puppetserver
rundir = /var/run/puppetlabs/puppetserver
pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid
codedir = /etc/puppetlabs/code
server = puppetmaster.domain.ca
storeconfigs = true
storeconfigs_backend = puppetdb
node_terminus = exec
external_nodes = /etc/puppetlabs/code/environments/node.rb

ON the client (node.domain.ca), we run the agent like so:

[r...@node.domain.ca ~]# service puppet stop && puppet agent -o -v --server 
puppetmaster.domain.ca --environment ops --no-daemonize

AND on that node the /etc/puppetlabs/puppet/puppet.conf file has the 
following defined in it:
server = puppetmaster.domain.ca
report = false
runinterval = 7200
environment = ops


Maybe I'm missing something trivial, but if anyone has ideas as to what 
that might be or why the puppet agent suggests that files/sources from the 
`production` environment are being retrieved as opposed to what clearly 
should be the `ops` envrionment, I'd be very happy to have your input.


-- 
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/bb370cac-3fc9-46c8-9d21-0a380800d12d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to