Issue #7178 has been reported by Oliver Hookins.
----------------------------------------
Bug #7178: external nodes and storeconfigs configuration cannot coexist in
[main] when using puppet apply
https://projects.puppetlabs.com/issues/7178
Author: Oliver Hookins
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version: 2.6.7
Keywords:
Branch:
Firstly, the contents of some files:
/root/enc.sh:
<pre>
#!/bin/bash
cat <<EOF
classes:
- foo
parameters:
bar: 'false'
EOF
</pre>
/root/test.pp:
<pre>
class foo {
@@file { '/tmp/foo':
content => $bar;
}
}
</pre>
/etc/puppet/puppet.conf:
<pre>
[main]
node_terminus = exec
external_nodes = /root/enc.sh
[master]
# Storeconfigs
storeconfigs = true
thin_storeconfigs = true
dbadapter = mysql
dbuser = puppet
dbpassword = password
dbserver = 127.0.0.1
dbsocket = /var/lib/mysql/mysql.sock
</pre>
We do an initial run to demonstrate that Puppet storeconfigs will complain if
not enabled in [main] for a puppet apply run, but the local ENC does in fact
run correctly:
<pre>
[root@centos5 ~]# puppet apply /root/test.pp --noop --debug
debug: Executing '/root/enc.sh centos5.localdomain'
warning: You cannot collect without storeconfigs being set on line 4 in file
/root/test.pp
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Creating default schedules
debug: Failed to load library 'shadow' for feature 'libshadow'
debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
debug: Failed to load library 'ldap' for feature 'ldap'
debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does
not exist
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows
is missing
debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/state/graphs]: Autorequiring
File[/var/lib/puppet/state]
debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring
File[/etc/puppet/ssl]
debug: Finishing transaction 23883463825040
debug: Loaded state in 0.01 seconds
debug: Loaded state in 0.01 seconds
info: Applying configuration version '1303302613'
debug: Finishing transaction 23883463640420
debug: Storing state
debug: Stored state in 0.20 seconds
notice: Finished catalog run in 0.37 seconds
</pre>
Now we move storeconfigs into the [main] block, and puppet.conf looks like this:
<pre>
[main]
node_terminus = exec
external_nodes = /root/enc.sh
# Storeconfigs
storeconfigs = true
thin_storeconfigs = true
dbadapter = mysql
dbuser = puppet
dbpassword = password
dbserver = 127.0.0.1
dbsocket = /var/lib/mysql/mysql.sock
[master]
</pre>
And a run of puppet apply now doesn't run the external node script at all:
<pre>
[root@centos5 ~]# puppet apply /root/test.pp --noop --debug
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Failed to load library 'shadow' for feature 'libshadow'
debug: Failed to load library 'ldap' for feature 'ldap'
debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
debug: Puppet::Type::User::ProviderUser_role_add: file rolemod does not exist
debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does
not exist
debug: Puppet::Type::User::ProviderPw: file pw does not exist
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows
is missing
debug: /File[/var/lib/puppet/reports]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring
File[/etc/puppet/ssl]
debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
debug: /File[/etc/puppet/auth.conf]: Autorequiring File[/etc/puppet]
debug: /File[/etc/puppet/fileserver.conf]: Autorequiring File[/etc/puppet]
debug: /File[/var/lib/puppet/log/masterhttp.log]: Autorequiring
File[/var/lib/puppet/log]
debug: /File[/var/lib/puppet/yaml]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/server_data]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/bucket]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
debug: /File[/etc/puppet/manifests]: Autorequiring File[/etc/puppet]
debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
debug: /File[/var/lib/puppet/log/masterhttp.log]/ensure: created
debug: Finishing transaction 23767702639800
info: Connecting to mysql database: puppet
debug: Using cached facts for centos5.localdomain
debug: Using cached facts for centos5.localdomain
debug: Using cached node for centos5.localdomain
info: Caching catalog for centos5.localdomain
debug: Searched for resources in 0.07 seconds
debug: Searched for resource params and tags in 0.02 seconds
debug: Resource removal in 0.00 seconds
debug: Resource merger in 0.00 seconds
debug: Resource addition in 0.00 seconds
debug: Performed resource comparison in 0.00 seconds
debug: Using cached facts for centos5.localdomain
debug: Using cached node for centos5.localdomain
debug: Saved catalog to database in 0.21 seconds
debug: Creating default schedules
debug: Finishing transaction 23767701704520
debug: Loaded state in 0.01 seconds
debug: Loaded state in 0.01 seconds
info: Applying configuration version '1303304276'
debug: Finishing transaction 23767701215860
debug: Storing state
debug: Stored state in 0.11 seconds
notice: Finished catalog run in 0.22 seconds
</pre>
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.