With the release of puppet 3.7, the search function is now deprecated, and will be removed in 4.0. This is a feature that I had used by recommendation of a puppet cookbook when creating virtual resources and managing users that I have now removed.
Using the search function basically added the namespace of an existing class to another class to allow the second class access to the existing classes resources; virtual resources in this scenario. E.g, using the search function:
# /etc/puppet/modules/user/manifests/virtual.pp
class user::virtual {
@user { "cacti":
ensure => present,
uid => 999,
}
# /etc/puppet/modules/user/manifests/system.pp
class user::system {
search user::virtual
realize( User["cacti"])
}
# /etc/puppet/manifests/site.pp
class base {
include user::system
}
In the above example I created a virtual user that I could then include anywhere and any number of times, and then realize that user where appropriate.
To fix the problem and stop using the search function, I simply included the user::virtual class everywhere that I included the user::system class, e.g.:
# /etc/puppet/modules/user/manifests/virtual.pp
class user::virtual {
@user { "cacti":
ensure => present,
uid => 999,
}
# /etc/puppet/modules/user/manifests/system.pp
class user::system {
realize( User["cacti"])
}
# /etc/puppet/manifests/site.pp
class base {
include user::virtual
include user::system
}
This resolved my issue. Let me know in the comments if you have other uses of search and how this change might impact you.
– josh
Leave a Reply