Hi New to the puppet. I''m trying to make a user management module "users", which has one definition and a bunch of classes. Here is my structure under $modulepath : users/manifests/classes/evergent.pp users/manifests/classes/admins.pp users/manifests/classes/list.pp users/manifests/classes/outside.pp users/manifests/classes/dbas.pp users/manifests/defines/account.pp users/manifests/init.pp Definition is : define users::account($realname, $userid, $password) { .... } It creates user, group, $HOME, adds user''s public ssh key and chown -R his whole $HOME Then there is a class users::list that has all users like this : @users::account { "root": realname => "Root user", userid => "1000", password => "xxxxxxxxxxx", } The idea is that all users are defined as a "virtual definition" and will be realized later. Now there is class users:admins that has all sysadmins : class users::admins { realize Users::Account["root"] } Then in site.pp I import my "users" module : import "users" and in one of the nodes I include sysadmins : node "host1.test.com" inherits "default" { include users::admins } Now when I run puppetd -o -t -v on that node I get error : err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to realize virtual resources Users::Account[root] on node host1.test.com Do I do something not supported by the puppet ? I understand everyone suggests making virtual resource user and then realize them in the class. But I want add some thing like chown -R $HOME, ssh keys and more. Can I use virtual definition same way as virtual resources ? What am I doing wrong ? Any pointers to something similar would help a lot. I''ve checked "Pulling strings with Puppet" book but it does not show any example of the virtual definitions like this. Thanks -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On 06/22/2010 08:32 PM, tehcook wrote:> Hi > > New to the puppet. I''m trying to make a user management module > "users", which has one definition and a bunch of classes. Here is my > structure under $modulepath : > > users/manifests/classes/evergent.pp > users/manifests/classes/admins.pp > users/manifests/classes/list.pp > users/manifests/classes/outside.pp > users/manifests/classes/dbas.pp > users/manifests/defines/account.pp > users/manifests/init.pp > > Definition is : > > define users::account($realname, $userid, $password) { > .... > } > > It creates user, group, $HOME, adds user''s public ssh key and chown -R > his whole $HOME > > Then there is a class users::list that has all users like this : > > @users::account { "root": > realname => "Root user", > userid => "1000", > password => "xxxxxxxxxxx", > } > > The idea is that all users are defined as a "virtual definition" and > will be realized later. > > Now there is class users:admins that has all sysadmins : > > class users::admins { > realize Users::Account["root"] > } > > Then in site.pp I import my "users" module : > > import "users" > > and in one of the nodes I include sysadmins : > > node "host1.test.com" inherits "default" { > include users::admins > } > > Now when I run puppetd -o -t -v on that node I get error : > > err: Could not retrieve catalog from remote server: Error 400 on > SERVER: Failed to realize virtual resources Users::Account[root] on > node host1.test.com > > Do I do something not supported by the puppet ? I understand everyone > suggests making virtual resource user and then realize them in the > class. But I want add some thing like chown -R $HOME, ssh keys and > more. Can I use virtual definition same way as virtual resources ? > What am I doing wrong ? Any pointers to something similar would help a > lot. I''ve checked "Pulling strings with Puppet" book but it does not > show any example of the virtual definitions like this. > > Thanks > >Is that just an example or are you actually trying to make an account named root with uid 1000? -- -- Joe McDonagh Operations Engineer AIM: YoosingYoonickz IRC: joe-mac on freenode "When the going gets weird, the weird turn pro." -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Jun 23, 6:38 am, Joe McDonagh <joseph.e.mcdon...@gmail.com> wrote:> On 06/22/2010 08:32 PM, tehcook wrote: > > > Hi > > > New to the puppet. I''m trying to make a user management module > > "users", which has one definition and a bunch of classes. Here is my > > structure under $modulepath : > > > users/manifests/classes/evergent.pp > > users/manifests/classes/admins.pp > > users/manifests/classes/list.pp > > users/manifests/classes/outside.pp > > users/manifests/classes/dbas.pp > > users/manifests/defines/account.pp > > users/manifests/init.pp > > > Definition is : > > > define users::account($realname, $userid, $password) { > > .... > > } > > > It creates user, group, $HOME, adds user''s public ssh key and chown -R > > his whole $HOME > > > Then there is a class users::list that has all users like this : > > > @users::account { "root": > > realname => "Root user", > > userid => "1000", > > password => "xxxxxxxxxxx", > > } > > > The idea is that all users are defined as a "virtual definition" and > > will be realized later. > > > Now there is class users:admins that has all sysadmins : > > > class users::admins { > > realize Users::Account["root"] > > } > > > Then in site.pp I import my "users" module : > > > import "users" > > > and in one of the nodes I include sysadmins : > > > node "host1.test.com" inherits "default" { > > include users::admins > > } > > > Now when I run puppetd -o -t -v on that node I get error : > > > err: Could not retrieve catalog from remote server: Error 400 on > > SERVER: Failed to realize virtual resources Users::Account[root] on > > node host1.test.com > > > Do I do something not supported by the puppet ? I understand everyone > > suggests making virtual resource user and then realize them in the > > class. But I want add some thing like chown -R $HOME, ssh keys and > > more. Can I use virtual definition same way as virtual resources ? > > What am I doing wrong ? Any pointers to something similar would help a > > lot. I''ve checked "Pulling strings with Puppet" book but it does not > > show any example of the virtual definitions like this. > > > Thanks > > Is that just an example or are you actually trying to make an account > named root with uid 1000? >Of course this is just to replace real usernames with something anynymous. I actually figured out what was wrong - this was about putting "classname::" in front of some things and wrapping define in class {}. Had to tear apart whole thing and make a simple test module. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Yes of course this is just to use some anonymous username. I figured out what went wrong. This had to do something with wrapping my define and virtual resources in class {} On Wed, Jun 23, 2010 at 6:38 AM, Joe McDonagh <joseph.e.mcdonagh@gmail.com> wrote:> On 06/22/2010 08:32 PM, tehcook wrote: >> >> Hi >> >> New to the puppet. I''m trying to make a user management module >> "users", which has one definition and a bunch of classes. Here is my >> structure under $modulepath : >> >> users/manifests/classes/evergent.pp >> users/manifests/classes/admins.pp >> users/manifests/classes/list.pp >> users/manifests/classes/outside.pp >> users/manifests/classes/dbas.pp >> users/manifests/defines/account.pp >> users/manifests/init.pp >> >> Definition is : >> >> define users::account($realname, $userid, $password) { >> .... >> } >> >> It creates user, group, $HOME, adds user''s public ssh key and chown -R >> his whole $HOME >> >> Then there is a class users::list that has all users like this : >> >> @users::account { "root": >> realname => "Root user", >> userid => "1000", >> password => "xxxxxxxxxxx", >> } >> >> The idea is that all users are defined as a "virtual definition" and >> will be realized later. >> >> Now there is class users:admins that has all sysadmins : >> >> class users::admins { >> realize Users::Account["root"] >> } >> >> Then in site.pp I import my "users" module : >> >> import "users" >> >> and in one of the nodes I include sysadmins : >> >> node "host1.test.com" inherits "default" { >> include users::admins >> } >> >> Now when I run puppetd -o -t -v on that node I get error : >> >> err: Could not retrieve catalog from remote server: Error 400 on >> SERVER: Failed to realize virtual resources Users::Account[root] on >> node host1.test.com >> >> Do I do something not supported by the puppet ? I understand everyone >> suggests making virtual resource user and then realize them in the >> class. But I want add some thing like chown -R $HOME, ssh keys and >> more. Can I use virtual definition same way as virtual resources ? >> What am I doing wrong ? Any pointers to something similar would help a >> lot. I''ve checked "Pulling strings with Puppet" book but it does not >> show any example of the virtual definitions like this. >> >> Thanks >> >> > > Is that just an example or are you actually trying to make an account named > root with uid 1000? > > -- > -- > Joe McDonagh > Operations Engineer > AIM: YoosingYoonickz > IRC: joe-mac on freenode > "When the going gets weird, the weird turn pro." > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.