[Puppet Users] Re: augeas to setm enabled=0 in yum repos?
No, I was wrong . . that doesn't work with augtool. It seems to, but won't save . . . On Thu, Apr 16, 2015 at 12:00 PM, Guy Matz guym...@gmail.com wrote: This works with augtool but not in puppet: augeas { 'disable all other repos in CentOS Base': context = '/files/etc/yum.repos.d/CentOS-Base.repo', changes = [ 'setm /files/etc/yum.repos.d/CentOS-Base.repo/* enabled 0' ] } Any thoughts would be appreciated! On Thu, Apr 16, 2015 at 9:21 AM, Guy Matz guym...@gmail.com wrote: Hi! I'm trying to disable yum repos using augeas and can't quite figure out how to set enabled=0 for all repos in a yum file. I've got this: augeas { 'disable all repos in CentOS Base': context = '/files/etc/yum.repos.d/CentOS-Base.repo', changes = [ 'setm */enabled . 0' ] } Which works if a repo has an enabled line. The problem is that it doesn't *add* an enabled line to a repo that does not. For example, the enabled line here will get set to enabled=0: [centosplus] name=CentOS-$releasever - Plus mirrorlist= http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=centosplus #baseurl= http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 but an enabled=0 will not get added to this: [base] name=CentOS-$releasever - Base mirrorlist= http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Anyone know how/if I can hit these two birds with one stone? Thanks!! -- 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/CABnTgtXMQyOwaF5d40FmVUU3AQJaVP6OgX44z4PjYYCd94fquQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Precedence Q: repos - packages
Hi! I first used this sort of thing: stage { 'yum' : before = Stage['main'] } and tagged ll of my yumrepos with a stage of yum. This doesn't work so well for downloaded modules, so I'm thinking of using: Yumrepo | | - Package | | Is there a downside? Any recommendations? Thanks, Guy P.S. - Sorry for asking; I'm sure this has been asked a zillion times, but I haven't been able to find a good answer. -- 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/CABnTgtUfingc%2BY9sBZoeZyCN0Mbpk%2Bknq2uyuU08AiLM4u15qw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] facter: unordered hashes lead to changes
I *did* misunderstand! Thanks for pointing that out! Much better now! On Wed, Apr 8, 2015 at 8:57 AM, jcbollinger john.bollin...@stjude.org wrote: On Tuesday, April 7, 2015 at 2:53:38 PM UTC-5, Guy Matz wrote: Ahhh!! The version of facter on my new servers is 2.4 . . old servers have 1.7 . . .anyone know how to get facter 2.x to stringify facts? I've tried adding 'stringify_facts = true' to my puppet.conf, but that did not change behaviour . . You have misunderstood. The stringify_facts parameter (of Puppet) *defaults* to true, so if you were not configuring it explicitly then it was already true. Christopher was suggesting that you set it to *false*. This is an eminently reasonable thing to do even if you were not otherwise having any trouble, because this configuration parameter will be removed in Puppet 4 (the new behavior being to never stringify facts). John -- 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/37c61433-cea1-49b1-92d4-e4a45709dcb1%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/37c61433-cea1-49b1-92d4-e4a45709dcb1%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtW3T%3DD264rvOwnkqe3ezmok_7u9buM6gr6mm__NqwLk6A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] facter: unordered hashes lead to changes
Hi! I'm seeing the following at the end of my puppet run: Notice: /Stage[main]/Mcollective::Server::Config::Factsource::Yaml/File[/etc/mcollective/facts.yaml]/content: --- /etc/mcollective/facts.yaml 2015-04-07 15:51:25.243758139 + +++ /tmp/puppet-file20150407-6557-wl0qx7-0 2015-04-07 17:51:34.770285890 + @@ -57,15 +57,15 @@ operatingsystem: CentOS operatingsystemmajrelease: 6 operatingsystemrelease: 6.6 - os: familyRedHatreleasemajor6full6.6minor6nameCentOS + os: familyRedHatnameCentOSreleasefull6.6major6minor6 osfamily: RedHat - partitions: sda1uuidced0932e-4636-4d8f-9c63-ea32b0dccf89size1024000filesystemext4mount/bootsda2size66082816filesystemLVM2_member + partitions: sda1mount/bootuuidced0932e-4636-4d8f-9c63-ea32b0dccf89size1024000filesystemext4sda2size66082816filesystemLVM2_member os, partitions and a few others change each run . . . checking a single fact shows that facter is returning an unordered has which changes on each invocation: $ facter os {name=CentOS, family=RedHat, release={full=6.6, minor=6, major=6}} $ facter os {family=RedHat, name=CentOS, release={full=6.6, major=6, minor=6}} I don't remember this ever happening before . . . what's up with that!? Anyone know, off the top of their head, what might be causing this? Thanks! Guy -- 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/CABnTgtXOGN4tM-DNYoVK5zSwGWBgZFLC48Y%3Dw6HjA2KViKm49A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] facter: unordered hashes lead to changes
Ahhh!! The version of facter on my new servers is 2.4 . . old servers have 1.7 . . .anyone know how to get facter 2.x to stringify facts? I've tried adding 'stringify_facts = true' to my puppet.conf, but that did not change behaviour . . . On Tue, Apr 7, 2015 at 2:08 PM, Christopher Wood christopher_w...@pobox.com wrote: Sounds like this is set to true (over here I set it to false everywhere to take advantage of the non-string facts): https://docs.puppetlabs.com/references/latest/configuration.html#stringifyfacts On Tue, Apr 07, 2015 at 01:56:43PM -0400, Guy Matz wrote: Hi! I'm seeing the following at the end of my puppet run: Notice: /Stage[main]/Mcollective::Server::Config::Factsource::Yaml/File[/etc/mcollective/facts.yaml]/content: --- /etc/mcollective/facts.yaml 2015-04-07 15:51:25.243758139 + +++ /tmp/puppet-file20150407-6557-wl0qx7-0 2015-04-07 17:51:34.770285890 + @@ -57,15 +57,15 @@ operatingsystem: CentOS operatingsystemmajrelease: 6 operatingsystemrelease: 6.6 - os: familyRedHatreleasemajor6full6.6minor6nameCentOS + os: familyRedHatnameCentOSreleasefull6.6major6minor6 osfamily: RedHat - partitions: sda1uuidced0932e-4636-4d8f-9c63-ea32b0dccf89size1024000filesystemext4mount/bootsda2size66082816filesystemLVM2_member + partitions: sda1mount/bootuuidced0932e-4636-4d8f-9c63-ea32b0dccf89size1024000filesystemext4sda2size66082816filesystemLVM2_member os, partitions and a few others change each run . . . checking a single fact shows that facter is returning an unordered has which changes on each invocation: $ facter os {name=CentOS, family=RedHat, release={full=6.6, minor=6, major=6}} $ facter os {family=RedHat, name=CentOS, release={full=6.6, major=6, minor=6}} I don't remember this ever happening before . . . what's up with that!? Anyone know, off the top of their head, what might be causing this? Thanks! Guy -- 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 [1]puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit [2] https://groups.google.com/d/msgid/puppet-users/CABnTgtXOGN4tM-DNYoVK5zSwGWBgZFLC48Y%3Dw6HjA2KViKm49A%40mail.gmail.com . For more options, visit [3]https://groups.google.com/d/optout. References Visible links 1. mailto:puppet-users+unsubscr...@googlegroups.com 2. https://groups.google.com/d/msgid/puppet-users/CABnTgtXOGN4tM-DNYoVK5zSwGWBgZFLC48Y%3Dw6HjA2KViKm49A%40mail.gmail.com?utm_medium=emailutm_source=footer 3. https://groups.google.com/d/optout -- 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/20150407180816.GA9555%40iniquitous.heresiarch.ca . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtXH7u5kEfc9AhaARC0KwBYiY_4n1der6hax7oknxKgymA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: How to check if a class is being used?
Thanks!! I'm not sure that solves my problem, though .. . .and maybe I'm using defined incorrectly . . . what I really want is a way to check to see if a class has been included or assigned . . . . then I would like to make a decision based on that info. Does defined tell me if the class is being used in that run? Or just if it is defined in puppet at all? It's beginning to appear that it's the latter. So, is there any way to tell if a class/subclass is being applied to a server? Thanks! Guy On Thu, Apr 2, 2015 at 7:52 AM, paul.gomersbach p.gomersb...@gmail.com wrote: This is working for me: if ! defined(Class['ops_logging']) { class { 'ops_logging': collectives = $collectives, middleware= $rabbithost, metrics = $metrics, configuration = $configuration, monitor = $monitor, } } Op woensdag 1 april 2015 20:35:06 UTC+2 schreef guymatz: I've seen some folks say this should work: if defined(::class::subclass) but it doesn't seem to work for me. Again, any thoughts would be greatly appreciated! Regards, Guy On Wed, Apr 1, 2015 at 11:26 AM, Guy Matz guy...@gmail.com wrote: Hi! I have a process that is controlled by daemontools on some servers, and by init on other (i know, i know) and I need a way to have a Service definition when daemontools is not in the run. I've tried this: unless defined(Class['daemontools']) { notify { 'I Do not see daemontools': } service { $dw_service: ensure= 'running' } } but that didn't work. I've also tried Class['Daemontools']. Daemontools is the module being used, but it's a actually a subclass, daemontools::service, that's being called . . . So I've also tried Class['daemontools::service'] as well as Class['Daemontools::Service']. I've tried Class['::Daemontools::Service'], which didn't work either. I added a notify in daemontools::service which gave me this: Notice: /Stage[main]/Profiles::Dropwizard::Booker- integration/Daemontools::Service[booker-integration]/Notify[Here I am!!]/message: defined 'message' as 'Here I am!!' So I also tried unless defined(Class['Daemontools:: Service[booker-integration]']), which, of course, did not work. Anyone know what I need to get the unless to catch whether I am using daemontools::service? And even better, doers anyone know how I could have debugged this to find this out for myself? Thanks so much! Guy -- 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/99788530-31bd-455f-b2e4-8801982cd09b%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/99788530-31bd-455f-b2e4-8801982cd09b%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtXJLbxE8zCRYq5SHnufdV5eZ5ijRHo27fFxbdrqg_gOig%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: How to check if a class is being used?
Thanks!! I'm not sure that solves my problem, though .. . .and maybe I'm using defined incorrectly . . . what I really want is a way to check to see if a class has been included or assigned . . . . then I would like to make a decision based on that info. Does defined tell me if the class is being used in that run? Or just if it is defined in puppet at all? It's beginning to appear that it's the latter. So, is there any way to tell if a class/subclass is being applied to a server? Thanks! On Thu, Apr 2, 2015 at 7:52 AM, paul.gomersbach p.gomersb...@gmail.com wrote: This is working for me: if ! defined(Class['ops_logging']) { class { 'ops_logging': collectives = $collectives, middleware= $rabbithost, metrics = $metrics, configuration = $configuration, monitor = $monitor, } } Op woensdag 1 april 2015 20:35:06 UTC+2 schreef guymatz: I've seen some folks say this should work: if defined(::class::subclass) but it doesn't seem to work for me. Again, any thoughts would be greatly appreciated! Regards, Guy On Wed, Apr 1, 2015 at 11:26 AM, Guy Matz guy...@gmail.com wrote: Hi! I have a process that is controlled by daemontools on some servers, and by init on other (i know, i know) and I need a way to have a Service definition when daemontools is not in the run. I've tried this: unless defined(Class['daemontools']) { notify { 'I Do not see daemontools': } service { $dw_service: ensure= 'running' } } but that didn't work. I've also tried Class['Daemontools']. Daemontools is the module being used, but it's a actually a subclass, daemontools::service, that's being called . . . So I've also tried Class['daemontools::service'] as well as Class['Daemontools::Service']. I've tried Class['::Daemontools::Service'], which didn't work either. I added a notify in daemontools::service which gave me this: Notice: /Stage[main]/Profiles::Dropwizard::Booker- integration/Daemontools::Service[booker-integration]/Notify[Here I am!!]/message: defined 'message' as 'Here I am!!' So I also tried unless defined(Class['Daemontools:: Service[booker-integration]']), which, of course, did not work. Anyone know what I need to get the unless to catch whether I am using daemontools::service? And even better, doers anyone know how I could have debugged this to find this out for myself? Thanks so much! Guy -- 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/99788530-31bd-455f-b2e4-8801982cd09b%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/99788530-31bd-455f-b2e4-8801982cd09b%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtU2zOhdN9kh3T1ACCpdC-AA_Qbsy4qz7%2BgEJq89dm%3DfKw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Fwd: How to check if a class is being used?
Hi! I have a process that is controlled by daemontools on some servers, and by init on other (i know, i know) and I need a way to have a Service definition when daemontools is not in the run. I've tried this: unless defined(Class['daemontools']) { notify { 'I Do not see daemontools': } service { $dw_service: ensure= 'running' } } but that didn't work. I've also tried Class['Daemontools']. Daemontools is the module being used, but it's a actually a subclass, daemontools::service, that's being called . . . So I've also tried Class['daemontools::service'] as well as Class['Daemontools::Service']. I've tried Class['::Daemontools::Service'], which didn't work either. I added a notify in daemontools::service which gave me this: Notice: /Stage[main]/Profiles::Dropwizard::Booker-integration/Daemontools::Service[booker-integration]/Notify[Here I am!!]/message: defined 'message' as 'Here I am!!' So I also tried unless defined(Class['Daemontools::Service[booker-integration]']), which, of course, did not work. Anyone know what I need to get the unless to catch whether I am using daemontools::service? And even better, doers anyone know how I could have debugged this to find this out for myself? Thanks so much! Guy -- 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/CABnTgtVrQ1bWsYkTcR4T1RF9qLgOf6Omoys4ygEevGc3D5yRYQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] How to check if a class is being used?
Hi! I have a process that is controlled by daemontools on some servers, and by init on other (i know, i know) and I need a way to have a Service definition when daemontools is not in the run. I've tried this: unless defined(Class['daemontools']) { notify { 'I Do not see daemontools': } service { $dw_service: ensure= 'running' } } but that didn't work. I've also tried Class['Daemontools']. Daemontools is the module being used, but it's a actually a subclass, daemontools::service, that's being called . . . So I've also tried Class['daemontools::service'] as well as Class['Daemontools::Service']. I've tried Class['::Daemontools::Service'], which didn't work either. I added a notify in daemontools::service which gave me this: Notice: /Stage[main]/Profiles::Dropwizard::Booker-integration/Daemontools::Service[booker-integration]/Notify[Here I am!!]/message: defined 'message' as 'Here I am!!' So I also tried unless defined(Class['Daemontools::Service[booker-integration]']), which, of course, did not work. Anyone know what I need to get the unless to catch whether I am using daemontools::service? And even better, doers anyone know how I could have debugged this to find this out for myself? Thanks so much! Guy -- 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/CABnTgtV7bcpYL_G9tMDADSTSjbNiJHaHUSdGbtADM7BW%3DBEZ0g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: How to check if a class is being used?
I've seen some folks say this should work: if defined(::class::subclass) but it doesn't seem to work for me. Again, any thoughts would be greatly appreciated! Regards, Guy On Wed, Apr 1, 2015 at 11:26 AM, Guy Matz guym...@gmail.com wrote: Hi! I have a process that is controlled by daemontools on some servers, and by init on other (i know, i know) and I need a way to have a Service definition when daemontools is not in the run. I've tried this: unless defined(Class['daemontools']) { notify { 'I Do not see daemontools': } service { $dw_service: ensure= 'running' } } but that didn't work. I've also tried Class['Daemontools']. Daemontools is the module being used, but it's a actually a subclass, daemontools::service, that's being called . . . So I've also tried Class['daemontools::service'] as well as Class['Daemontools::Service']. I've tried Class['::Daemontools::Service'], which didn't work either. I added a notify in daemontools::service which gave me this: Notice: /Stage[main]/Profiles::Dropwizard::Booker-integration/Daemontools::Service[booker-integration]/Notify[Here I am!!]/message: defined 'message' as 'Here I am!!' So I also tried unless defined(Class['Daemontools::Service[booker-integration]']), which, of course, did not work. Anyone know what I need to get the unless to catch whether I am using daemontools::service? And even better, doers anyone know how I could have debugged this to find this out for myself? Thanks so much! Guy -- 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/CABnTgtVPCFSmSqxieXzvus4u3uKc__TK%2BfhPgKBsHvLzTXdeAw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: Requiring a subclass?
Sorry! Yes, accounts::account is a defined type! :-( Sorry . . . Working now!! Thanks!! On Mon, Feb 9, 2015 at 9:01 AM, jcbollinger john.bollin...@stjude.org wrote: On Friday, February 6, 2015 at 3:45:30 PM UTC-6, guymatz wrote: Hello! Is there a way to set the dependency for a resource that is a subclass? I have an accounts module, and within that is accounts::account which contains declarations to create user, group, etc. . . . I would like to do something like: file {'sdfdsf': contents = 'sdkfjdsf', owner= 'username', *requires Accounts::account['username'] * } But that doesn't work. (Error 400 on SERVER: Syntax error at '::account'; expected ']') It doesn't make sense. 1. If accounts::account is a (sub)*class* then its name is accounts::account, and no 'username' has anything to do with it. In that case, a reference to it would be spelled Class['accounts::account'], as Thomas said. 2. Whether it is a subclass (of another class) or not has nothing to do with it, but anyway, nothing in what you presented is related to whether or not it actually is a subclass. 3. Except, if the 'username' part is in fact relevant in any way, it can only be because accounts::account is a defined type, not a class at all (sub- or otherwise). If it is a defined type, then a reference to an instance of it would be spelled Accounts::Account['username'] (every name segment capitalized). I also thought I should be able to say: file {'sdfdsf': contents = 'sdkfjdsf', owner= 'username', *requires User['username'] * } since it's really the user resource that's at the heart of the matter, but that didn't work either! Puppet still complains that it Could not find dependency User[username] If Puppet even gets to the point of determining whether it can find the dependency, then what you in fact tried was different from what you wrote above, as the declaration above misspells the 'require' metaparameter and omits the association arrow (=) between that parameter name and its value. We can help you better when you post the code that you are actually using, so cutpaste is your friend. Anyway, if you use a syntactically correct variation on the above, and Puppet complains that it could not find the dependency, then the problem is that you did not declare the dependency. The 'require' metaparameter does not (indeed cannot) do that for you. Puppet doesn't need to have *already* processed the declaration of User['username'] (or Account::Accounts['username']) when it processes the File declaration, but it needs to see such a declaration somewhere among the resources declared for the target node before it finishes building the catalog. John -- 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/73a1d4ec-6ad0-481a-b6ab-2381c3308a18%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/73a1d4ec-6ad0-481a-b6ab-2381c3308a18%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtUqpcafCrX8q%3DHqtiy0buYbpyez5bQ-fmbOhwcLpQGYvg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Requiring a subclass?
Hello! Is there a way to set the dependency for a resource that is a subclass? I have an accounts module, and within that is accounts::account which contains declarations to create user, group, etc. . . . I would like to do something like: file {'sdfdsf': contents = 'sdkfjdsf', owner= 'username', *requires Accounts::account['username'] * } But that doesn't work. (Error 400 on SERVER: Syntax error at '::account'; expected ']') I also thought I should be able to say: file {'sdfdsf': contents = 'sdkfjdsf', owner= 'username', *requires User['username'] * } since it's really the user resource that's at the heart of the matter, but that didn't work either! Puppet still complains that it Could not find dependency User[username] Any thoughts would be appreciated. Thanks, Guy -- 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/CABnTgtXn%2B%3Du_Q3_UD%3DqkC4n9nqKxYDgXStkGQZyJiO6aNkEaAw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: camptocamp/grundics accounts module
Mickaël, Thanks for the reply!! Is there an updated version of the module that you recommend I use? One other thing . . . where do you put the class block that pulls in the hiera data? Thanks a lot! Guy On Sun, Jan 18, 2015 at 1:23 AM, Mickaël Canévet mickael.cane...@gmail.com wrote: If you still want to use *ssh_authorized_key_title*, you have some examples in unit tests. Le vendredi 16 janvier 2015 18:40:06 UTC+1, guymatz a écrit : Is anyone using camptocamp or grundic's accounts module? I can't it working and am at my wit's end! my problem is with the ssh_authorized_key_title . . . I'm getting the error: Error 400 on SERVER: stack level too deep at /etc/puppet/modules/accounts/ manifests/authorized_key.pp:35 But I think I have everything set up correctly: In my modules/profiles/manifests/base.pp I have: class { 'accounts': groups = hiera_hash('accounts::groups', {}), ssh_keys = hiera_hash('accounts::ssh_keys', {}), users= hiera_hash('accounts::users', {}), usergroups = hiera_hash('accounts::usergroups', {}), accounts = hiera_hash('accounts::accounts', {}), *ssh_authorized_key_title = '%{ssh_keys[\'%{ssh_key}\'][\'comment\'] on %{user}',* dotfiles = hiera_hash('accounts::dotfiles', {}), } So that should put all of that info into my run, yes? Is there a better place to put that? Then in hiera I have: $ more hieradata/common_users.eyaml accounts::ssh_keys: iambot: comment: iambot@somewhere type: ssh-dss public: public_key accounts::users: iambot: uid: 10079 gid: 10022 comment: I am a Bot accounts::groups: Staff: gid: 10022 It seems that with camptocamp's implementation you then need to call accounts::account like this to get the user created: accounts::account { 'iambot': } But with Grundic's it seems you have to add an accounts::account block to the yaml above: accounts::account: iambot: groups: - Staff authorized_keys: - iambot Is that right? Anyway, I can get around the stack level error by replacing the contents of the *ssh_authorized_key_title* with something static, but would prefer to have it as is. Any ideas? ;-/ Thanks a lot, Guy -- 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/47654e48-2065-4788-a4eb-213711c2fdb4%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/47654e48-2065-4788-a4eb-213711c2fdb4%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtVk7nbi7TTMrB5un-eu%2Bz%3DVHcLAjRsUquvH3EqTZkB-Yg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] camptocamp/grundics accounts module
Is anyone using camptocamp or grundic's accounts module? I can't it working and am at my wit's end! my problem is with the ssh_authorized_key_title . . . I'm getting the error: Error 400 on SERVER: stack level too deep at /etc/puppet/modules/accounts/manifests/authorized_key.pp:35 But I think I have everything set up correctly: In my modules/profiles/manifests/base.pp I have: class { 'accounts': groups = hiera_hash('accounts::groups', {}), ssh_keys = hiera_hash('accounts::ssh_keys', {}), users= hiera_hash('accounts::users', {}), usergroups = hiera_hash('accounts::usergroups', {}), accounts = hiera_hash('accounts::accounts', {}), *ssh_authorized_key_title = '%{ssh_keys[\'%{ssh_key}\'][\'comment\'] on %{user}',* dotfiles = hiera_hash('accounts::dotfiles', {}), } So that should put all of that info into my run, yes? Is there a better place to put that? Then in hiera I have: $ more hieradata/common_users.eyaml accounts::ssh_keys: iambot: comment: iambot@somewhere type: ssh-dss public: public_key accounts::users: iambot: uid: 10079 gid: 10022 comment: I am a Bot accounts::groups: Staff: gid: 10022 It seems that with camptocamp's implementation you then need to call accounts::account like this to get the user created: accounts::account { 'iambot': } But with Grundic's it seems you have to add an accounts::account block to the yaml above: accounts::account: iambot: groups: - Staff authorized_keys: - iambot Is that right? Anyway, I can get around the stack level error by replacing the contents of the *ssh_authorized_key_title* with something static, but would prefer to have it as is. Any ideas? ;-/ Thanks a lot, Guy -- 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/CABnTgtU-5ju7dD6foU4M-pEaZ1_dtSEVZg9XWfv3%3DzFDSyswRQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] facter external-dir
Is there any way to get facter to return facts from /etc/facter/facts.d when not run as root? I would like to centralize my facts and not have to remember to add --external-dir when checking facts. Thank you all!! And Happy Holidays! -- 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/CABnTgtVc%2Bqqu7B5XFbSHZwD27EL5UdrZcFWPka-Lptpuw5CNgA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: facter external-dir
I guess if the answer had been more of a puppet answer, my question would have been more of a puppet question. :-) Sorry to bother. Thanks, Guy On Wed, Dec 24, 2014 at 12:42 PM, Craig White white.n...@gmail.com wrote: Not really a puppet question or a puppet answer man alias (bash command) You should be able to alias the command and put into bash_profile for all users when they login. On Wednesday, December 24, 2014 10:28:09 AM UTC-7, guymatz wrote: Is there any way to get facter to return facts from /etc/facter/facts.d when not run as root? I would like to centralize my facts and not have to remember to add --external-dir when checking facts. Thank you all!! And Happy Holidays! -- 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/5be7866d-8c64-4e14-b03d-3bfff1bb83cc%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/5be7866d-8c64-4e14-b03d-3bfff1bb83cc%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtVEOcsYUTukUbTGxMNowtCSHGUHd%2BJOZoSRfDqV-dcmTA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] modern data pattern?
Hi! I'm taking over someone's code and have found the following class signature - it's been abbreviated considerably; over 46 vars get used!!: class showapp ( $amqp_host, $amqp_password, $amqp_port, $amqp_user, . . . $queue_service_host, $queue_service_port, $redis_host, $redis_port, ) It looks like they thought that any hiera vars that were going to be used in the template needed to be defined in the class signature (this isn't right, is it?). these vars are defined in hiera and are needed to populate a template defined elsewhere in the class.I'd rather not have to define every var in my manifest, e.g.: $amqp_host = hiera(showapp::amqp_host) I think I'd rather have a hash defined in hiera that I can pull into my class with one call, e.g.: $showapp_data = hiera(showapp) then use as a hash, e.g. $showapp_data[amqp_host] Is that the way to go? Will it work? Is there a better way? If you're gotten this far, thank you, thank you, thank you! Guy -- 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/CABnTgtVMrmS%3DCJdgHZHuPL1%2BPRkLi1Mfa18vqPpuaHqeseoE%2Bw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: modern data pattern?
So I can't use a hash? I'm trying to make a general use parameterized class using a profile . . . Can I do something like this so I only have to pass in the service name that I want to configure from my node definition: class profiles::dropwizard ( $dw_service = 'dw_service_UNDEFINED', $amqp_host = hiera($dw_service::amqp_host) ) than my role would be: class roles::showroom inherits roles::base { class { profiles::dropwizard: dw_service = 'showroom', } } Hiera isn't able to find the above, and i've tried with varying curly braces. Sorry if this is getting convoluted out of scope. On Wed, Dec 17, 2014 at 3:56 PM, Byron Miller byr...@gmail.com wrote: Guy, The example you have like.. class showap( $amqp_host, . ) Pattern is a parameterized class pattern. it's so you could have a site/node.pp or an ENC provide the parameters/values. node yourserver { class { 'showap' : amqp_host = 'TRUE'} } or if you wish, hiera will do automagic lookups of class parameters https://docs.puppetlabs.com/hiera/1/puppet.html#automatic-parameter-lookup i tend to keep the parameterized class pattern since its fairly portable, works with hiera enc's and once you've seen it, it does't look so scary.. 46 parameters is a lot, but not unheard of.. -byron On Wednesday, December 17, 2014 2:02:24 PM UTC-6, guymatz wrote: Hi! I'm taking over someone's code and have found the following class signature - it's been abbreviated considerably; over 46 vars get used!!: class showapp ( $amqp_host, $amqp_password, $amqp_port, $amqp_user, . . . $queue_service_host, $queue_service_port, $redis_host, $redis_port, ) It looks like they thought that any hiera vars that were going to be used in the template needed to be defined in the class signature (this isn't right, is it?). these vars are defined in hiera and are needed to populate a template defined elsewhere in the class.I'd rather not have to define every var in my manifest, e.g.: $amqp_host = hiera(showapp::amqp_host) I think I'd rather have a hash defined in hiera that I can pull into my class with one call, e.g.: $showapp_data = hiera(showapp) then use as a hash, e.g. $showapp_data[amqp_host] Is that the way to go? Will it work? Is there a better way? If you're gotten this far, thank you, thank you, thank you! Guy -- 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/368c7156-cbcd-4165-a499-3d4a886e58cc%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/368c7156-cbcd-4165-a499-3d4a886e58cc%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtUK-r5jKoAU6v0Wx2WuFKa8GjcYiT1raF3WROpV7e80qw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: modern data pattern?
Working now! If I quote the hiera call I can get dynamic lookups: class profiles::dropwizard ( $dw_service = 'dw_service_UNDEFINED', $amqp_host = hiera(${dw_service}::amqp_host) ) Thanks! On Wed, Dec 17, 2014 at 4:48 PM, Guy Matz gm...@matz.org wrote: So I can't use a hash? I'm trying to make a general use parameterized class using a profile . . . Can I do something like this so I only have to pass in the service name that I want to configure from my node definition: class profiles::dropwizard ( $dw_service = 'dw_service_UNDEFINED', $amqp_host = hiera($dw_service::amqp_host) ) than my role would be: class roles::showroom inherits roles::base { class { profiles::dropwizard: dw_service = 'showroom', } } Hiera isn't able to find the above, and i've tried with varying curly braces. Sorry if this is getting convoluted out of scope. On Wed, Dec 17, 2014 at 3:56 PM, Byron Miller byr...@gmail.com wrote: Guy, The example you have like.. class showap( $amqp_host, . ) Pattern is a parameterized class pattern. it's so you could have a site/node.pp or an ENC provide the parameters/values. node yourserver { class { 'showap' : amqp_host = 'TRUE'} } or if you wish, hiera will do automagic lookups of class parameters https://docs.puppetlabs.com/hiera/1/puppet.html#automatic-parameter-lookup i tend to keep the parameterized class pattern since its fairly portable, works with hiera enc's and once you've seen it, it does't look so scary.. 46 parameters is a lot, but not unheard of.. -byron On Wednesday, December 17, 2014 2:02:24 PM UTC-6, guymatz wrote: Hi! I'm taking over someone's code and have found the following class signature - it's been abbreviated considerably; over 46 vars get used!!: class showapp ( $amqp_host, $amqp_password, $amqp_port, $amqp_user, . . . $queue_service_host, $queue_service_port, $redis_host, $redis_port, ) It looks like they thought that any hiera vars that were going to be used in the template needed to be defined in the class signature (this isn't right, is it?). these vars are defined in hiera and are needed to populate a template defined elsewhere in the class.I'd rather not have to define every var in my manifest, e.g.: $amqp_host = hiera(showapp::amqp_host) I think I'd rather have a hash defined in hiera that I can pull into my class with one call, e.g.: $showapp_data = hiera(showapp) then use as a hash, e.g. $showapp_data[amqp_host] Is that the way to go? Will it work? Is there a better way? If you're gotten this far, thank you, thank you, thank you! Guy -- 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/368c7156-cbcd-4165-a499-3d4a886e58cc%40googlegroups.com https://groups.google.com/d/msgid/puppet-users/368c7156-cbcd-4165-a499-3d4a886e58cc%40googlegroups.com?utm_medium=emailutm_source=footer . For more options, visit https://groups.google.com/d/optout. -- 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/CABnTgtXdUSqD1fTHSBhpRLszBc6ORq7ZT5YWiakT_-MtWa5Dzw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Hiera has stopped working correctly!
Hiera is not honoring my hierarchy :-( gmatz@bunnybear ~/Code/puppet $ cat hiera.yaml --- :hierarchy: *- %{::environment}* - common :backends: - eyaml - yaml :merge_behavior: deeper :eyaml: :datadir: /home/gmatz/Code/puppet/hieradata :pkcs7_private_key: /home/gmatz/Code/puppet/keys/private_key.pkcs7.pem :pkcs7_public_key: /home/gmatz/Code/puppet/keys/public_key.pkcs7.pem :yaml: :datadir: /home/gmatz/Code/puppet/hieradata gmatz@bunnybear ~/Code/puppet $ grep activemq_password hieradata/production.eyaml activemq_password: activemq_password ENC[PKCS7,MIIBeQYJKggEhMIIBHQIBAD. . . . but it only looks for common: gmatz@bunnybear ~/Code/puppet $ hiera -d -c ~/Code/puppet/hiera.yaml activemq_password environment=production DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Hiera eYAML backend starting DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Set option: datadir = /home/gmatz/Code/puppet/hieradata DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Set option: pkcs7_private_key = /home/gmatz/Code/puppet/keys/private_key.pkcs7.pem DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Set option: pkcs7_public_key = /home/gmatz/Code/puppet/keys/public_key.pkcs7.pem DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Looking up activemq_password in eYAML backend DEBUG: 2014-12-16 09:31:19 -0500: [eyaml_backend]: Looking for data source common DEBUG: 2014-12-16 09:31:19 -0500: Hiera YAML backend starting DEBUG: 2014-12-16 09:31:19 -0500: Looking up activemq_password in YAML backend DEBUG: 2014-12-16 09:31:19 -0500: Looking for data source common nil Any thoughts would be greatly appreciated!! Thanks, Guy -- 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/CABnTgtW1K_D_fyCPgQh9wQwQ%3DUD-8RhmLPRQSRTBmhmx1wnGxA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] dynamically named variables?
Hi! I have a parameterized class that accepts a few parameters, one of which I would like to use in the retrieval of hiera data, e.g. class foo ( $app_user = 'bar' ) { file { /etc/${app_user::etc_dir}: owner = 'root', group = 'root', mode= '0644 } so app_user should get passed to the class, then ${app_user}::etc_dir should get resolved by hiera, If I pass in nagios as app_user, then nagios::etc_dir should be looked up in hiera. I can't find the right combination of curly braces to get this to work. Should it work? Thanks a lot, Guy -- 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/CABnTgtXthijC-uSTARE4rVsodat-Qeq5ON-r2ziN3-xDSwKkqg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] hiera Boolean values
Hi! Sorry if this has already been discussed . . . I have a requirement to disallow root logins on my UK servers, but allow them on my US servers. I have an sshd_config template and am hoping to use hiera to get a Yes/No depending on the country. However It seems that hiera is having a hard time dealing with Yes/No: [root@gmatzpupmaster hieradata] $ grep estate_root_perm 70-country/u* 70-country/uk.yaml:estate_root_perm: No 70-country/us.yaml:estate_root_perm: Yes [root@gmatzpupmaster hieradata] $ hiera estate_root_perm mserv_loc=uk /opt/puppet/lib/ruby/gems/1.8/gems/hiera-puppet-0.3.0/lib/hiera/backend/puppet_backend.rb:41:in `lookup': uninitialized constant Hiera::Backend::Puppet_backend::Puppet (NameError) from /opt/puppet/lib/ruby/gems/1.8/gems/hiera-0.3.0/lib/hiera/backend.rb:160:in `lookup' from /opt/puppet/lib/ruby/gems/1.8/gems/hiera-0.3.0/lib/hiera/backend.rb:157:in `each' from /opt/puppet/lib/ruby/gems/1.8/gems/hiera-0.3.0/lib/hiera/backend.rb:157:in `lookup' from /opt/puppet/lib/ruby/gems/1.8/gems/hiera-0.3.0/lib/hiera.rb:59:in `lookup' from /opt/puppet/lib/ruby/gems/1.8/gems/hiera-0.3.0/bin/hiera:208 from /opt/puppet/bin/hiera:19:in `load' from /opt/puppet/bin/hiera:19 [root@gmatzpupmaster hieradata] $ hiera estate_root_perm mserv_loc=us true If I change the value to something else it works: [root@gmatzpupmaster hieradata] $ vi 70-country/u* 2 files to edit [root@gmatzpupmaster hieradata] $ grep estate_root_perm 70-country/u* 70-country/uk.yaml:estate_root_perm: ukukukuk 70-country/us.yaml:estate_root_perm: usususus [root@gmatzpupmaster hieradata] $ hiera estate_root_perm mserv_loc=uk ukukukuk [root@gmatzpupmaster hieradata] $ hiera estate_root_perm mserv_loc=us usususus Any thoughts? Thanks a lot, Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Re: Job Listing - Linux Admin in Boulder, CO
Hey! Sorry, I was away on vacation last week . . Are you in the Boulder area? Can you send a resume to guy.m...@markitserv.com? Thanks, Guy On Mon, Aug 27, 2012 at 2:09 PM, Michael Schmitt mscybe...@gmail.comwrote: I'd definitely be interested, but I'm only a junior admin. I have about 2 years of experience and I'm still learning. I'd love to get my foot in the door though. Even if I'm not a good fit for this, does anyone know somewhere I could do this and improve my skills? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/LuZC9VFyVDUJ. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Job Listing - Linux Admin in Boulder, CO
Anyone interested? Thanks, Guy guymatz at gmail -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Re: Job Listing - Linux Admin in Boulder, CO
It's not a telecommute position. No relocation possible. Sorry for having not been explicit about that. And sorry for not giving more details earlier. The job is for a senior RedHat Linux DevOps, WWW Admin, NetApp, VMware, etc. Thanks, Guy On Fri, Aug 17, 2012 at 11:36 AM, Guy Matz guym...@gmail.com wrote: Anyone interested? Thanks, Guy guymatz at gmail -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] hiera environmentss question
Hmmm . . anyone have any idea why environment would not be getting interpolated? Cannot find datafile /etc/puppetlabs/puppet/%{environment}/hieradata/10-host/gmatzpupnode.yaml I have the following in my node's puppet.conf [agent] section: environment = default thanks again, Guy On Wed, May 2, 2012 at 6:59 PM, Gary Larizza g...@puppetlabs.com wrote: On Wed, May 2, 2012 at 2:51 PM, Ramin K ramin-l...@badapple.net wrote: On 5/2/2012 2:16 PM, Gary Larizza wrote: I'm using the following which I copied from somewhere. Quotes might be part of the missing magic. Also I'm not sure you'd want a - in there either. :yaml: :datadir: '/home/puppet/environments/%{**environment}/hieradata' I would use double-quotes for string interpolation, but this should work. I've used this in a couple of on-site engagements, and it has worked well for us. I don't think this is correct. If it were, my config should not work at all. In this case single or double quotes should both work. It's my understanding that hiera.yaml is a data file that is going to be parsed and then consumed by Puppet where things like variable interpolation would happen. There isn't any variable interpolation during the parsing so single quotes are more correct. http://www.yaml.org/YAML_for_**ruby.html#single-quoted_**stringshttp://www.yaml.org/YAML_for_ruby.html#single-quoted_strings Yep, like RI said you're totally correct here. Thanks for correcting :) Ramin -- 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 puppet-users%2bunsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/** group/puppet-users?hl=enhttp://groups.google.com/group/puppet-users?hl=en . -- Gary Larizza Professional Services Engineer Puppet Labs -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Recommended network module?
Hi! There are a few network modules out there for managing network interfaces, routes, etc. Anyone recommend one over the others? 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] hiera environmentss question
Hi! I am using environments in my puppet setup, and would like to do the same for hiera. I used to have this sort of hierarchy: :hierarchy: - hosts/%{fqdn} - domain/%{domain} - whatever/%{some_fact} - common with a yaml datadir: :yaml: :datadir: - /etc/puppetlabs/puppet/hieradata I would like to append %{environment} to my datadir in order to get separation, however it looks like I can't and will have to do this: :hierarchy: - %{environment}/hosts/%{fqdn} - %{environment}/domain/%{domain} - %{environment}/whatever/%{some_fact} - %{environment}/common Can anyone verify that appending %{environment} to datadir won't work? Does anyone have a good way of separating hiera environments? Thanks a lot! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] hiera installation problem
Thanks, guys! Here's the relevant snippet from my manifest: @common::mkuser { 'root': uid= 0, comment= 'root', home = '/root', password = hiera('rootPassword'), managehome = false; And here's what it looks like when I run from command-line: # hiera -d rootPassword DEBUG: Fri Mar 23 09:12:27 -0400 2012: Hiera YAML backend starting DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking up rootPassword in YAML backend DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 10-host/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/10-host/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 20-env/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/20-env/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 30-genv/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/30-genv/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 40-tier-dc/- DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/40-tier-dc/-.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 50-dc/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/50-dc/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 60-app/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/60-app/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 70-country/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/70-country/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source common $1$0DvOGiBl$hDKhH80CetcqW/u6nObQA/ And my yaml file: # cat /etc/puppetlabs/puppet/hieradata/common.yaml --- rootPassword: $1$0DvOGiBl$hDKhH80CetcqW/u6nObQA/ ntpserver: 10.73.206.12 Again, the error is: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for false:FalseClass at /etc/puppetlabs/puppet/modules/common/manifests/accounts.pp:27 That's the line where my hiera call is in my manifest . . . Thanks again!! On Thu, Mar 22, 2012 at 7:52 PM, Gary Larizza g...@puppetlabs.com wrote: On Thursday, March 22, 2012 at 1:13 PM, Guy Matz wrote: Hi! I think I've gone through the hiera install process correctly, but still getting: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for false:FalseClass at /etc/puppetlabs/puppet/modules/common/manifests/accounts.pp:27 on node # gem list *** LOCAL GEMS *** activerecord (2.3.14) activesupport (2.3.14) ar-extensions (0.9.5) builder (2.1.2) dalli (1.1.2) hiera (0.2.0) hiera-puppet (0.2.0) multi_json (1.0.3) puppet-module (0.3.4) rack (1.1.3) rake (0.8.7) rubygems-update (1.8.12) sinatra (1.2.6) stomp (1.1.9) tilt (1.3.3) and I downloaded the tar file and uncompressed it in the right place according to http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ I can using the command line: # hiera ntpserver 10.73.206.12 but not as a puppet module (see error above) I've found that if i remove the yaml backend from my hiera.yaml, the puppet run is successful, i.e. it doesn't complain, however it doesn't read from my YAML hiera files! Any advice would be greatly appreciated! Thanks, Guy Guy, What does the hiera function call look like within your Puppet manifest? It sounds like you may be trying to set a default to an empty string or something like this? I've seen this error before, but it might help to see a bit of your manifest and what a YAML file looks like that contains your value? Thanks! P.S. - my hiera.yaml looks like: :backends: - yaml - puppet :logger: console :hierarchy: - 10-host/%{fqdn} - 20-env/%{env} - 30-genv/%{mserv_genv} - 40-tier-dc/%{mserv_tier}-%{mserv_dc} - 50-dc/%{mserv_dc} - 60-app/%{mserv_app} - 70-country/%{mserv_loc} - common :yaml: :datadir: /etc/puppetlabs/puppet/hieradata :puppet: :datasource: data -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options
Re: [Puppet Users] hiera installation problem
Gary, thanks for the help, but my puppet master is a frankenstein of (long explanation) and I think I need to simply reinstall everything . . . thanks for the help! Regards On Fri, Mar 23, 2012 at 1:00 PM, Gary Larizza g...@puppetlabs.com wrote: Can you print out what the contents of the common::mkuser defined resource type is? On Fri, Mar 23, 2012 at 7:40 AM, Guy Matz gm...@matz.org wrote: No, that didn't do it . . . :-(What I have works on my test server, but not my prod server . . . Thanks again. On Fri, Mar 23, 2012 at 9:57 AM, Gary Larizza g...@puppetlabs.comwrote: Can you single quote the value in your YAML file and then try again? Does that work? On Friday, March 23, 2012, Guy Matz gm...@matz.org wrote: Thanks, guys! Here's the relevant snippet from my manifest: @common::mkuser { 'root': uid= 0, comment= 'root', home = '/root', password = hiera('rootPassword'), managehome = false; And here's what it looks like when I run from command-line: # hiera -d rootPassword DEBUG: Fri Mar 23 09:12:27 -0400 2012: Hiera YAML backend starting DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking up rootPassword in YAML backend DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 10-host/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/10-host/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 20-env/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/20-env/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 30-genv/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/30-genv/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 40-tier-dc/- DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/40-tier-dc/-.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 50-dc/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/50-dc/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 60-app/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/60-app/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source 70-country/ DEBUG: Fri Mar 23 09:12:27 -0400 2012: Cannot find datafile /etc/puppetlabs/puppet/hieradata/70-country/.yaml, skipping DEBUG: Fri Mar 23 09:12:27 -0400 2012: Looking for data source common $1$0DvOGiBl$hDKhH80CetcqW/u6nObQA/ And my yaml file: # cat /etc/puppetlabs/puppet/hieradata/common.yaml --- rootPassword: $1$0DvOGiBl$hDKhH80CetcqW/u6nObQA/ ntpserver: 10.73.206.12 Again, the error is: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for false:FalseClass at /etc/puppetlabs/puppet/modules/common/manifests/accounts.pp:27 That's the line where my hiera call is in my manifest . . . Thanks again!! On Thu, Mar 22, 2012 at 7:52 PM, Gary Larizza g...@puppetlabs.com wrote: On Thursday, March 22, 2012 at 1:13 PM, Guy Matz wrote: Hi! I think I've gone through the hiera install process correctly, but still getting: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for false:FalseClass at /etc/puppetlabs/puppet/modules/common/manifests/accounts.pp:27 on node # gem list *** LOCAL GEMS *** activerecord (2.3.14) activesupport (2.3.14) ar-extensions (0.9.5) builder (2.1.2) dalli (1.1.2) hiera (0.2.0) hiera-puppet (0.2.0) multi_json (1.0.3) puppet-module (0.3.4) rack (1.1.3) rake (0.8.7) rubygems-update (1.8.12) sinatra (1.2.6) stomp (1.1.9) tilt (1.3.3) and I downloaded the tar file and uncompressed it in the right place according to http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ I can using the command line: # hiera ntpserver 10.73.206.12 but not as a puppet module (see error above) I've found that if i remove the yaml backend from my hiera.yaml, the puppet run is successful, i.e. it doesn't complain, however it doesn't read from my YAML hiera files! Any advice would be greatly appreciated! Thanks, Guy Guy, What does the hiera function call look like within your Puppet manifest? It sounds like you may be trying to set a default to an empty string or something like this? I've seen this error before, but it might help to see a bit of your manifest and what a YAML file looks like that contains your value? Thanks! P.S. - my hiera.yaml looks like: :backends: - yaml - puppet :logger: console :hierarchy: - 10-host/%{fqdn} - 20-env/%{env} - 30-genv/%{mserv_genv
[Puppet Users] hiera installation problem
Hi! I think I've gone through the hiera install process correctly, but still getting: err: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for false:FalseClass at /etc/puppetlabs/puppet/modules/common/manifests/accounts.pp:27 on node # gem list *** LOCAL GEMS *** activerecord (2.3.14) activesupport (2.3.14) ar-extensions (0.9.5) builder (2.1.2) dalli (1.1.2) hiera (0.2.0) hiera-puppet (0.2.0) multi_json (1.0.3) puppet-module (0.3.4) rack (1.1.3) rake (0.8.7) rubygems-update (1.8.12) sinatra (1.2.6) stomp (1.1.9) tilt (1.3.3) and I downloaded the tar file and uncompressed it in the right place according to http://puppetlabs.com/blog/first-look-installing-and-using-hiera/ I can using the command line: # hiera ntpserver 10.73.206.12 but not as a puppet module (see error above) I've found that if i remove the yaml backend from my hiera.yaml, the puppet run is successful, i.e. it doesn't complain, however it doesn't read from my YAML hiera files! Any advice would be greatly appreciated! Thanks, Guy P.S. - my hiera.yaml looks like: :backends: - yaml - puppet :logger: console :hierarchy: - 10-host/%{fqdn} - 20-env/%{env} - 30-genv/%{mserv_genv} - 40-tier-dc/%{mserv_tier}-%{mserv_dc} - 50-dc/%{mserv_dc} - 60-app/%{mserv_app} - 70-country/%{mserv_loc} - common :yaml: :datadir: /etc/puppetlabs/puppet/hieradata :puppet: :datasource: data -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] spaceship operator with a regex!?
Hi! Anyone knoe if it's possible to realize resources with the spaceship operator checking for regex equality? Something like: User| group =~ /(qa|prod)/ | If not, anyone know of another way to do this sort of thing? Thanks a lot! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] custom fact issue
Hi! Does the following do what you might expect? fact_name = 'noop' Facter.add(fact_name) do setcode do utc_hour = %x{/bin/date -u +%H}.chomp.to_i environment = Facter.value(:environment) #puts env = #{environment} if environment.match(test|dev|qa) result = false else if utc_hour.between?(1,10) result = false else result = true end end #puts result #{result} result end end On Fri, Mar 16, 2012 at 10:56 AM, Jemmorey jemmo...@gmail.com wrote: Would anyone please assist me on this one? This fact seems to work, but it doesn't return when called directly via facter --puppet noop, but the resulting facts end up in the reports. I'm at wits end with this. Thanks! snip utc_hour = Facter::Util::Resolution.exec(%q/bin/date -u +%H).chomp Facter.add(:noop) do setcode do environment = Facter.value(:environment) if environment.match(test|dev|qa) result = false else if utc_hour.match(01|02|03|04|05|06|07|08|09|10) result = false else result = true end end result end end /snip -- You received this message because you are subscribed to the Google Groups Puppet Users group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/Ubou1ggrLusJ. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Handling unique cases
Hello, Everybody! I need to allow my developers to run a special script on QA servers and nowhere else. I put this sort of thing in place: class app-server { packages: foo:; bar:; baz:; if $environment == 'qa' { file { 'a': content = ... } } which feels kinda kludgey to me. Is there a better way to handle unique cases like this in puppet? Thanks, Everybody! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Re: Template Help Please
Is your issue resolved? It looks like you don't have the correct erb syntax in your loop *%=* scope.lookupvar('resolver::params::resolvers').split(/\s+/).each I think should be *%* scope.lookupvar('resolver::params::resolvers').split(/\s+/).each On Mon, Jan 23, 2012 at 4:00 PM, ollies...@googlemail.com paul.seym...@barcap.com wrote: On Jan 23, 4:32 pm, Felix Frank felix.fr...@alumni.tu-berlin.de wrote: On 01/23/2012 02:48 PM, ollies...@googlemail.com wrote: host: parse of /etc/resolv.conf failed ./resolver/templates/resolv.conf.erb:7:in `result': compile error (SyntaxError) ./resolver/templates/resolv.conf.erb:4: syntax error _erbout.concat(( scope.lookupvar('resolver::params::resolvers').split(/ \s+/).each do | ns | ).to_s); _erbout.concat \n ^ ./resolver/templates/resolv.conf.erb:7: syntax error _erbout Uhuh. Just a wild guess, but: *Does* your template end in a newline character? If not, add one. If in doubt, loose the '-%' and substitute '%' instead. HTH, Felix Looks about right to me. Thanks for the continued help. Cheers Paul -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Hiera - Any advice on getting started?
my data is getting unwieldy . . . any advice on migrating to hiera? 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] so close to getting new type to work!!
Fudge!! Thanks for the pointer, Stefan . . . Yeah, the lines in match_providers_with_resources that says: if resource = match(record, matchers) # Remove this resource from circulation so we don’t unnecessarily try to match matchers.delete(resource.title) . . . Means that it can never match two lines, I guess! Thanks again . . . On Wed, Nov 9, 2011 at 3:48 PM, Stefan Schulte stefan.schu...@taunusstein.net wrote: On Wed, Nov 09, 2011 at 02:45:30PM -0500, Guy Matz wrote: Stefan, Right! I think. With a resource that looks like : vncserver { '92': username = 'athusr', geometry = '123x78', ensure = 'present'; } I should get two entries in /etc/sysconfig/vncserver: VNCSERVERARGS[92]=-geometry 123x78 VNCSERVERS=$VNCSERVERS 92:athusr I'm sorry if I am not understanding your post, and responding to it nonsensically. Are you saying that with a single name of 92, I will not be able to make changes on two lines? Yes. Every line in your config file (that is not a text line like a comment) will be parsed as one record. During prefetching puppet tries to match the resources the user has defined in his manifest with the records of your target file(s). It works like this Puppet iterates over every record. If puppet has a resource with a name that matches the current record's name then puppet creates a provider instance and assignes the provider to this resource. So in short * each resource has zero or one prefetched provider * one provider corresponds to one specific record in your file Have a look at provider/parsedfile.rb method match_providers_with_resources You may be able to define a custom prefetch_hook method in your provider where you merge your different records into one. But I currently don't know how puppet behaves when it has to rewrite the file after possible changes. Untested prefetch hook: def prefetch_hook(records) merged_records = {} # hash with the record's name as key records.each do |record| if name = record[:name] merged_record[name] ||= {} merged_record[name].merge!(record) end end merged_records.values end You may get additional suggestions if you look at the cron provider. But in general I'm afraid that the parsedfile provider is not really good when information spanning over multiple lines. -Stefan Thanks a lot! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] so close to getting new type to work!!
Hi! I am s close to getting my vncserver type to work; I have one last hurdle. There are two kinds of record lines in a vncserver config file, so I have two record_line definitions in my provider. Only one of them gets called, though! The one that has the same name, :parsed, as what I pass to provide . . . require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :filetype = :flat, :default_target = vncservers ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^\s*#/; text_line :blank, :match = /^\s*$/; record_line :parsed_opts, :fields = %w{name pre_geo_opts geometry post_geo_opts}, :optional = %w{pre_geo_opts post_geo_opts}, :match = /^VNCSERVERARGS\[(\d+)\]=(.*)\s*-geometry (\d+x\d+)(.*)$/, :to_line = proc { |record| # Should end up looking like: # VNCSERVERARGS[92]=-geometry 1280x1024 'VNCSERVERARGS[' + record[:name] + ']=-geometry ' + record[:geometry] + '' }; record_line :parsed_portuser, :fields = %w{name username}, :match = /^VNCSERVERS=\$VNCSERVERS\s+(\d+):(\w+)\s*$/, :to_line = proc { |record| # Should end up looking like: # VNCSERVERS=$VNCSERVERS 2:firstuser 'VNCSERVERS=$VNCSERVERS ' + record[:name] + ':' + record[:username] + '' }; end Thanks a lot!! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] NFS clients - puppet hang when mount point
OK. This may seem like a bad idea, but it's a workaround that has worked for me: I add the nfs server to the 127.0.0.1 entry of the hosts file which causes NFS to time out pretty immediately. :-\ On Wed, Nov 9, 2011 at 10:00 AM, madAndroid andrewsta...@gmail.com wrote: We've only recently discovered that puppet can manage mount points using the mount directive; however, a short while back we built an nfs client and server classes without using this resource, and we've encountered a problem where puppet seems to hang when the nfs server is unavailable. Using --debug doesn't seem to specify exactly at which point the run is failing, which could steer us in the right direction around putting something in place in the classes in question. Is there anything we can do, short of switching over to using the mount directive/resource, in order to mitigate the problem when the nfs server is unavailable? It's preventing us from managing other resources on the clients when this happens.. thanks in advance, Andrew -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] so close to getting new type to work!!
Stefan, Right! I think. With a resource that looks like : vncserver { '92': username = 'athusr', geometry = '123x78', ensure = 'present'; } I should get two entries in /etc/sysconfig/vncserver: VNCSERVERARGS[92]=-geometry 123x78 VNCSERVERS=$VNCSERVERS 92:athusr I'm sorry if I am not understanding your post, and responding to it nonsensically. Are you saying that with a single name of 92, I will not be able to make changes on two lines? Thanks a lot! Guy On Wed, Nov 9, 2011 at 2:38 PM, Stefan Schulte stefan.schu...@taunusstein.net wrote: On Wed, Nov 09, 2011 at 01:08:37PM -0500, Guy Matz wrote: Hi! I am s close to getting my vncserver type to work; I have one last hurdle. There are two kinds of record lines in a vncserver config file, so I have two record_line definitions in my provider. Only one of them gets called, though! The one that has the same name, :parsed, as what I pass to provide . . . require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :filetype = :flat, :default_target = vncservers ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^\s*#/; text_line :blank, :match = /^\s*$/; record_line :parsed_opts, :fields = %w{name pre_geo_opts geometry post_geo_opts}, :optional = %w{pre_geo_opts post_geo_opts}, :match = /^VNCSERVERARGS\[(\d+)\]=(.*)\s*-geometry (\d+x\d+)(.*)$/, :to_line = proc { |record| # Should end up looking like: # VNCSERVERARGS[92]=-geometry 1280x1024 'VNCSERVERARGS[' + record[:name] + ']=-geometry ' + record[:geometry] + '' }; record_line :parsed_portuser, :fields = %w{name username}, :match = /^VNCSERVERS=\$VNCSERVERS\s+(\d+):(\w+)\s*$/, :to_line = proc { |record| # Should end up looking like: # VNCSERVERS=$VNCSERVERS 2:firstuser 'VNCSERVERS=$VNCSERVERS ' + record[:name] + ':' + record[:username] + '' }; end Thanks a lot!! Guy To be clear here can you have something like VNCSERVERARGS[23]=... VNCSERVERS=$VNCSERVERS 23:user Because after parsing the whole file, puppet will have two records with record[:name] = 23 but the contents are not merged. So when prefetching happens and you have a resource type with the name 23, the resource will get a provider with pre_geo_opts, geometry and post_geo_opts OR a provider with username set but never both. -Stefan -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] parsedfile help needed
Thanks! That begs the question: What's the difference between newparam newproperty? One other thing: Does anyone know why I would get the following error after switching from newparam to newproperty? err: Could not retrieve catalog from remote server: Could not intern from pson: undefined method `merge' for []:Array Thanks again, Guy On Fri, Oct 14, 2011 at 4:31 AM, Brice Figureau brice-pup...@daysofwonder.com wrote: Hi, On Thu, 2011-10-13 at 17:47 -0400, Guy Matz wrote: Thanks for the reply!! One more thing I can't quite figure out: How to get a new entry in my target file! I can parse, but an entry in manifests doesn't magically appear. Do I need to add something to my provider or type to get that to happen? Any help would be s appreciated; i'm getting tired of struggling with this! vncserver/manifests/init.pp class vncserver { vncserver { 'guymatz': port = '92', geometry = '1024x768', ensure = 'present' Those are properties: you want to manage them. } } # class vncserver vncserver/lib/puppet/type/vncserver.rb require 'puppet/property/list' require 'puppet/provider/parsedfile' Puppet::Type.newtype(:vncserver) do ensurable newparam(:port) do desc The vnc servers port assignment. Will be +5900 on the server end newparam(:name) do isnamevar desc The user who will own the VNC session. end newparam(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. end newparam(:password) do desc Password to be put into users .vnc/passwd. end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end But you defined them as parameters. Use newproperty instead of newparam. @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end and, finally, my very unfinished provider: vncserver/lib/puppet/provider/vncserver/parsed.rb: require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^\s*#/; text_line :blank, :match = /^\s*$/; record_line :parsed, :joiner = '', :fields = %w{port geometry optional_args}, :optional = %w{port geometry }, :match = /^VNCSERVERARGS\[(\d+)\]=-geometry (\d+x\d +)(.*)$/, :to_line = proc { |record| VNCSERVERARGS[#{record[:port]}]=\-geometry #{record[:geometry]} #{record[:optional_args]}\ } record_line :parsed_again, :joiner = '', :fields = %w{port_name}, :optional = %w{port_name}, :match = /^VNCSERVERS=(.*)$/, :to_line = proc { |record| VNCSERVERS=\#{record[:port_name]}\ } end Also, you don't have any property in the type for port_name. -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] parsedfile help needed
Thanks for the reply!! One more thing I can't quite figure out: How to get a new entry in my target file! I can parse, but an entry in manifests doesn't magically appear. Do I need to add something to my provider or type to get that to happen? Any help would be s appreciated; i'm getting tired of struggling with this! vncserver/manifests/init.pp class vncserver { vncserver { 'guymatz': port = '92', geometry = '1024x768', ensure = 'present' } } # class vncserver vncserver/lib/puppet/type/vncserver.rb require 'puppet/property/list' require 'puppet/provider/parsedfile' Puppet::Type.newtype(:vncserver) do ensurable newparam(:port) do desc The vnc servers port assignment. Will be +5900 on the server end newparam(:name) do isnamevar desc The user who will own the VNC session. end newparam(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. end newparam(:password) do desc Password to be put into users .vnc/passwd. end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end and, finally, my very unfinished provider: vncserver/lib/puppet/provider/vncserver/parsed.rb: require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^\s*#/; text_line :blank, :match = /^\s*$/; record_line :parsed, :joiner = '', :fields = %w{port geometry optional_args}, :optional = %w{port geometry }, :match = /^VNCSERVERARGS\[(\d+)\]=-geometry (\d+x\d+)(.*)$/, :to_line = proc { |record| VNCSERVERARGS[#{record[:port]}]=\-geometry #{record[:geometry]} #{record[:optional_args]}\ } record_line :parsed_again, :joiner = '', :fields = %w{port_name}, :optional = %w{port_name}, :match = /^VNCSERVERS=(.*)$/, :to_line = proc { |record| VNCSERVERS=\#{record[:port_name]}\ } end -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] parsedfile help needed
hi! I've seen it reported that there is no official doc for parsedfile; does anyone know if this is still true? I'm trying to make a new type and getting stuck on how parsedfile works . . . Any help would be appreciated: regarding the Puppet::Type.type(:newType).provide line: 1. What does the :parsed label do? Are there other options? 2. Are there other types of :filetypes besides :flat? Does labeling as :flat have any affect on the parsing? regarding record_line: 1. can the name parameter be anything? is :parsed anything special? Is the name used for anything? 2. what exactly do the parenthetic groupings do, e.g. /^\s+(.*)=(.*):$/ ? 3. Is there a relationship between the parenthetic groupings and the :fields label? 4. what is the relationship between :fields in provider, newparams in type fields in manifest/init.pp? 4a. Why do i get the following error when I don't have stuff_1 as :optional: Could not evaluate: Field 'stuff_1' is required 5. What does :post_parse do? 6 What does :pre_gen do? 7 Are there any other mystery parameter? Thanks s much!! Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] debugging new custom type
Stefan, thanks again for your reply. I'm just trying to get something working, even if it doesn't actually do anything yet . . . On Mon, Sep 19, 2011 at 1:48 PM, Stefan Schulte stefan.schu...@taunusstein.net wrote: On Thu, Sep 15, 2011 at 04:22:45PM -0400, Guy Matz wrote: hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do [...] newproperty(:username) do [...] newproperty(:geometry) do [...] end The Provider (parsed.rb): [...] record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end You have defined three properties (port, username, geometry) but your provider is not able to retrieve or write any of these properties. So how does a line in vncservers actually looks like? How can you get port, username and geometry of a certain vncserver? -Stefan -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] debugging new custom type
But to answer your question, vncservers file is a little different . . . there are two type of lines: 1. contains a space-separated list of port and usernames separated by colons, e.g.: VNCSERVERS=92:gmatz 44:wsmith 2. contains arguments to be supplied to vncserver, with port number acting as an aray index, e.g.: VNCSERVERARGS[92]=-geometry 1280x1024 VNCSERVERARGS[44]=-geometry 1280x1024 I was hoping to parse the vncserver config file using two different type of record_lines, one for each of the line types . . . thanks, guy On Mon, Sep 19, 2011 at 1:48 PM, Stefan Schulte stefan.schu...@taunusstein.net wrote: On Thu, Sep 15, 2011 at 04:22:45PM -0400, Guy Matz wrote: hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do [...] newproperty(:username) do [...] newproperty(:geometry) do [...] end The Provider (parsed.rb): [...] record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end You have defined three properties (port, username, geometry) but your provider is not able to retrieve or write any of these properties. So how does a line in vncservers actually looks like? How can you get port, username and geometry of a certain vncserver? -Stefan -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] debugging new custom type
Adrien, Thanks for the reply. can you tell me what a pastebin is? Thanks, Guy On Thu, Sep 15, 2011 at 6:50 PM, Adrien Thebo adr...@puppetlabs.com wrote: Could you provide the output of puppet agent --trace in a pastebin to accompany this? On Thu, Sep 15, 2011 at 1:22 PM, Guy Matz gm...@matz.org wrote: hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do desc The vnc servers port assignment. Will be +5900 on the server validate do |value| unless value.is_i? raise Puppet::Error, Invalid Port number end end end newproperty(:username) do desc The user who will own the VNC session. isnamevar validate do |value| unless value !~ /\s/ raise Puppet::Error, Must be a valid username. No spaces, please. end end end newproperty(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. validate do |value| unless value !~ /^\d*x\d*$/ raise Puppet::Error, Must be a valid geometry. e.g., 1024x768. end end end newparam(:password) do desc Password to be put into users .vnc/passwd. validate do |value| unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/ raise Puppet::Error, Invalid host name end end end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end end @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end The Provider (parsed.rb): require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^#/; text_line :blank, :match = /\s*$/; text_line :blank, :match = /\s*$/; record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end And The Manifest: class vncserver { include common::vnc package { 'tigervnc-server': ensure = 'installed'; } vncserver { 'gmatz': port = '92', geometry = '1024x768', password = 'gmatz'; } } -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en. -- Adrien Thebo adr...@puppetlabs.com -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] debugging new custom type
Scott, Thanks for the reply!! Can you tell me what you mean by just a definition? or point me to a doc? Thanks a lot! Guy On Thu, Sep 15, 2011 at 8:46 PM, Scott Smith sc...@ohlol.net wrote: Hm, doesn't address your issue but you could probably do thus with just a definition instead of writing a new type. On Sep 15, 2011 1:22 PM, Guy Matz gm...@matz.org wrote: hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do desc The vnc servers port assignment. Will be +5900 on the server validate do |value| unless value.is_i? raise Puppet::Error, Invalid Port number end end end newproperty(:username) do desc The user who will own the VNC session. isnamevar validate do |value| unless value !~ /\s/ raise Puppet::Error, Must be a valid username. No spaces, please. end end end newproperty(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. validate do |value| unless value !~ /^\d*x\d*$/ raise Puppet::Error, Must be a valid geometry. e.g., 1024x768. end end end newparam(:password) do desc Password to be put into users .vnc/passwd. validate do |value| unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/ raise Puppet::Error, Invalid host name end end end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end end @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end The Provider (parsed.rb): require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^#/; text_line :blank, :match = /\s*$/; text_line :blank, :match = /\s*$/; record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end And The Manifest: class vncserver { include common::vnc package { 'tigervnc-server': ensure = 'installed'; } vncserver { 'gmatz': port = '92', geometry = '1024x768', password = 'gmatz'; } } -- 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+unsubscr...@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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] debugging new custom type
ok, i found out what pastebin is. All on my own!! :-) But puppet agent --trace doesn't give me very much output. Only: [root@gmatzpupnode ~]# puppet agent --trace /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:47:in `create_pidfile' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util.rb:38:in `synchronize_on' /opt/puppet/lib/ruby/1.8/sync.rb:230:in `synchronize' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util.rb:38:in `synchronize_on' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:46:in `create_pidfile' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:22:in `daemonize' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:255:in `setup' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:286:in `run' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:393:in `exit_on_fail' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:286:in `run' /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:55:in `execute' /usr/local/bin/puppet:4 Could not prepare for execution: Could not create PID file: /var/run/pe-puppet/agent.pid it looks like it's failing, actually . . . thanks, guy On Thu, Sep 15, 2011 at 6:50 PM, Adrien Thebo adr...@puppetlabs.com wrote: Could you provide the output of puppet agent --trace in a pastebin to accompany this? On Thu, Sep 15, 2011 at 1:22 PM, Guy Matz gm...@matz.org wrote: hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do desc The vnc servers port assignment. Will be +5900 on the server validate do |value| unless value.is_i? raise Puppet::Error, Invalid Port number end end end newproperty(:username) do desc The user who will own the VNC session. isnamevar validate do |value| unless value !~ /\s/ raise Puppet::Error, Must be a valid username. No spaces, please. end end end newproperty(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. validate do |value| unless value !~ /^\d*x\d*$/ raise Puppet::Error, Must be a valid geometry. e.g., 1024x768. end end end newparam(:password) do desc Password to be put into users .vnc/passwd. validate do |value| unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/ raise Puppet::Error, Invalid host name end end end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end end @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end The Provider (parsed.rb): require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^#/; text_line :blank, :match = /\s*$/; text_line :blank, :match = /\s*$/; record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end And The Manifest: class vncserver { include common::vnc package { 'tigervnc-server': ensure = 'installed'; } vncserver { 'gmatz': port = '92', geometry = '1024x768', password = 'gmatz'; } } -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en. -- Adrien Thebo adr...@puppetlabs.com -- 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+unsubscr...@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
[Puppet Users] debugging new custom type
hi! Does anyone have any advice on debugging a new custom type? Any thoughts would be greatly appreciated . . . BTW, I'm getting the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not render to pson: undefined method `merge' for []:Array with some very rough code. The Type (vncserver.rb): module Puppet newtype(:vncserver) do ensurable newproperty(:port) do desc The vnc servers port assignment. Will be +5900 on the server validate do |value| unless value.is_i? raise Puppet::Error, Invalid Port number end end end newproperty(:username) do desc The user who will own the VNC session. isnamevar validate do |value| unless value !~ /\s/ raise Puppet::Error, Must be a valid username. No spaces, please. end end end newproperty(:geometry) do desc Resolution for VNC, in XxY, e.g. 1024x768. validate do |value| unless value !~ /^\d*x\d*$/ raise Puppet::Error, Must be a valid geometry. e.g., 1024x768. end end end newparam(:password) do desc Password to be put into users .vnc/passwd. validate do |value| unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/ raise Puppet::Error, Invalid host name end end end newparam(:args) do desc Optional arguments to be added to the vncserver command-line. end end @doc = Installs and manages entries for vncservers. For Redhat-bases systems, and likely many others, these entries will be in /etc/sysconfig/vncservers. end The Provider (parsed.rb): require 'puppet/provider/parsedfile' vncservers = /etc/sysconfig/vncservers Puppet::Type.type(:vncserver).provide(:parsed, :parent = Puppet::Provider::ParsedFile, :default_target = vncservers, :filetype = :flat ) do desc The vncserver provider that uses the ParsedFile class confine :exists = vncservers text_line :comment, :match = /^#/; text_line :blank, :match = /\s*$/; text_line :blank, :match = /\s*$/; record_line :parsed, :fields = %w{vncservers}, :match = /^VNCSERVERS=(.*)/ end And The Manifest: class vncserver { include common::vnc package { 'tigervnc-server': ensure = 'installed'; } vncserver { 'gmatz': port = '92', geometry = '1024x768', password = 'gmatz'; } } -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] ruby functions in puppet DSL
Sorry if this has been hashed out before, but I can't find an answer anywhere . . . I would like to use the ruby function upcase on a variable that gets set in my site.pp . . . do I really need to write a custom function for this? Does anyone have any code I can drop into my puppet code that does basic ruby functions in puppet, like the upcase I need? thanks, guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] What came first, the user or the group?
Hi, I have inherited some code to create users that doesn't work when removing users . . . it's listed below. It works for adding users, but when it comes to removing users I get: err: /Stage[main]/Common/Common::Mkuser[oshi.apen]/Group[oshi.apen]/ensure: change from present to absent failed: Could not delete group oshi.apen: Execution of '/usr/sbin/groupdel oshi.apen' returned 8: groupdel: cannot remove the primary group of user 'oshi.apen' User requires the Group to be defined, which, again, works for adding users, but not removing. My instinct is to have a condition test for remove/add and set the dependencies from there, but that seems klunky and inelegant. Anyone have any better code for adding/removing users? A suggestion? Thanks a lot, Guy define common::mkuser ( $uid, $gid= undef, $group = undef, $shell = /bin/bash, $home = undef, $ensure = present, $managehome = true, $dotssh = ensure, $comment= created via puppet, $groups = undef, $password = undef, $symlink= undef, $mode = undef ) { # if gid is unspecified, match with uid if $gid { $mygid = $gid } else { $mygid = $uid } # fi $gid # if home is unspecified, use /home/username if $home { $myhome = $home } else { $myhome = /home/${name} } # fi $home # if group is unspecified, use the username if $group { $mygroup = $group } else { $mygroup = $name } # fi $group if $password { $mypassword = $password } else { $mypassword = '!!' } # fi $password # create user user { $name: uid= $uid, gid= $mygid, shell = $shell, groups = $groups, password = $password, managehome = $managehome, home = $myhome, ensure = $ensure, comment= $comment, require= Group[$name], } # user group { $name: gid= $mygid, name = $mygroup, ensure = $ensure, } # group # if link is passed a symlink will be used for ensure = , else we will make it a directory if $symlink { #$myEnsure = $symlink $myEnsure = 'symlink' } else { $myEnsure = 'directory' } # fi $symlink # if mode is unspecified, use 0700 if $mode { $myMode = $mode } else { $myMode = '0700' } # fi $mode if $myEnsure == 'symlink' { # link home dir file { $myhome: ensure = symlink, target = $symlink, mode= $myMode, owner = $name, group = $name, require = User[$name], } # file } else { # create home dir file { $myhome: #ensure = $myEnsure, ensure = directory, mode= $myMode, owner = $name, group = $name, require = User[$name], } # file } # fi $myensure -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] unable to distribute custom facts
Where exactly is you fact? Is it in a module? My recent experience required placement of my facts in $modulepath/module/lib/facter . . . On Fri, Aug 12, 2011 at 10:30 AM, newguy aimanparv...@gmail.com wrote: Guys I made a custom fact using export;(export FACTER_envt=`hostname -s|cut -c 1-2`;) on puppet master, and when I do facter envt it shows the desired result, now my problem is that am unable to distribute it to the client machines. I read up a little on adding custom facts and found out the pluginsyc would help me but it didnt, I have pluginsync=true on both puppetmaster and client but still when I do sudo puppetd --test -- pluginsync on client it says the following: err: /File[/var/lib/puppet/lib]: Failed to retrieve current state of resource: Could not retrieve information from source(s) puppet://puppet/plugins On client /var/lib/puppet/lib has no directory On server /var/lib/puppet/lib has puppet and facter directories sudo puppetd --configprint factpath on client is /var/lib/puppet/lib/ facter and on server its the same. Please help. 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Another Custom Fact deployment problem
Hi all, My facts work during testing, but not on deployment. Any help would be greatly appreciated. Fact in modules/ldap/lib/puppet/facter/nss_ldap.rb: fact_name = 'nss_ldap' Facter.add(fact_name) do setcode do auth_settings = %x{/usr/share/authconfig/authconfig.py --test} auth_settings = auth_settings.split(/\n/) # The line of output we are looking for line = auth_settings.collect { |v| v if v =~ /#{fact_name}/ }.compact[0] # The setting that the line is set to . . . line.scan(/\s+is\s+(\w*)/)[0][0] end # of setcode end # of Facter.add for testing, I have a call to a template in my init.pp: file { '/tmp/ldap_info.txt': content = template('ldap/ldap_info.erb'); } # file And the template says: nss_ldap %= nss_ldap % pam_ldap %= pam_ldap % pam_oddjob_mkhomedir %= pam_oddjob_mkhomedir % My node fails, however, with the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template ldap/ldap_info.erb: Could not find value for 'nss_ldap' at /etc/puppetlabs/puppet/modules/ldap/manifests/init.pp:23 on node gmatzpupnode Any thoughts would be greatly appreciated, especially suggestions on how to go about debugging the issue. . . Thanks a lot, Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Another Custom Fact deployment problem
yeah, I got that set . . . yeah, I should have mentioned that the facts do get downloaded on the client to $vardir/lib/puppet/facter . . . but still the facts are not available! thanks a lot! guy On Fri, Jul 29, 2011 at 11:29 AM, Craig White craig.wh...@ttiltd.comwrote: on clients - agent.conf pluginsync = true Craig On Jul 29, 2011, at 8:06 AM, Guy Matz wrote: Hi all, My facts work during testing, but not on deployment. Any help would be greatly appreciated. Fact in modules/ldap/lib/puppet/facter/nss_ldap.rb: fact_name = 'nss_ldap' Facter.add(fact_name) do setcode do auth_settings = %x{/usr/share/authconfig/authconfig.py --test} auth_settings = auth_settings.split(/\n/) # The line of output we are looking for line = auth_settings.collect { |v| v if v =~ /#{fact_name}/ }.compact[0] # The setting that the line is set to . . . line.scan(/\s+is\s+(\w*)/)[0][0] end # of setcode end # of Facter.add for testing, I have a call to a template in my init.pp: file { '/tmp/ldap_info.txt': content = template('ldap/ldap_info.erb'); } # file And the template says: nss_ldap %= nss_ldap % pam_ldap %= pam_ldap % pam_oddjob_mkhomedir %= pam_oddjob_mkhomedir % My node fails, however, with the error: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template ldap/ldap_info.erb: Could not find value for 'nss_ldap' at /etc/puppetlabs/puppet/modules/ldap/manifests/init.pp:23 on node gmatzpupnode Any thoughts would be greatly appreciated, especially suggestions on how to go about debugging the issue. . . Thanks a lot, Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en. -- Craig White ~~ craig.wh...@ttiltd.com 1.800.869.6908 ~~~ www.ttiassessments.com Need help communicating between generations at work to achieve your desired success? Let us help! -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Another Custom Fact deployment problem
No!!! facter -p does *not* show my facts . . . what does that mean!? thank *you*! On Fri, Jul 29, 2011 at 11:42 AM, Nan Liu n...@puppetlabs.com wrote: On Fri, Jul 29, 2011 at 11:38 AM, Guy Matz gm...@matz.org wrote: yeah, I got that set . . . yeah, I should have mentioned that the facts do get downloaded on the client to $vardir/lib/puppet/facter . . . but still the facts are not available! If you run facter -p on the client side does it load the custom fact? If it's loading the fact successfully on the agent, is this fact uploaded to the masters $vardir/yaml/facts directory? Thanks, Nan -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Another Custom Fact deployment problem
hmm . . . my custom facts are in /var/opt/lib/pe-puppet/lib/puppet/facter, but if I put them in /var/opt/lib/pe-puppet/lib/facter they *do* show up in facter -p . . . does that mean I am packaging my facts incorrectly on the server? Or is my client misconfigured? puppet.conf on my client is: [main] vardir = /var/opt/lib/pe-puppet logdir = /var/log/pe-puppet rundir = /var/run/pe-puppet modulepath = /etc/puppetlabs/puppet/modules user = pe-puppet group = pe-puppet [agent] certname = gmatzpupnode.mserv.local server = gmatzpupmaster.mserv.local report = true classfile = $vardir/classes.txt localconfig = $vardir/localconfig graph = true pluginsync = true Again, the fact is defined on the server in modules/ldap/lib/puppet/facter . . . Thanks again On Fri, Jul 29, 2011 at 11:48 AM, Guy Matz gm...@matz.org wrote: No!!! facter -p does *not* show my facts . . . what does that mean!? thank *you*! On Fri, Jul 29, 2011 at 11:42 AM, Nan Liu n...@puppetlabs.com wrote: On Fri, Jul 29, 2011 at 11:38 AM, Guy Matz gm...@matz.org wrote: yeah, I got that set . . . yeah, I should have mentioned that the facts do get downloaded on the client to $vardir/lib/puppet/facter . . . but still the facts are not available! If you run facter -p on the client side does it load the custom fact? If it's loading the fact successfully on the agent, is this fact uploaded to the masters $vardir/yaml/facts directory? Thanks, Nan -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Re: [Puppet Users] Another Custom Fact deployment problem
Nan, thanks for the hint! If I put the facts in module/lib/facter they work on the client . . . I used puppet-module to create the module and followed the directions for creating a custom fact, but I guess they need to go in module/lib/facter, not module/lib/puppet/facter . . . thanks a lot everyone! On Fri, Jul 29, 2011 at 11:54 AM, Guy Matz gm...@matz.org wrote: hmm . . . my custom facts are in /var/opt/lib/pe-puppet/lib/puppet/facter, but if I put them in /var/opt/lib/pe-puppet/lib/facter they *do* show up in facter -p . . . does that mean I am packaging my facts incorrectly on the server? Or is my client misconfigured? puppet.conf on my client is: [main] vardir = /var/opt/lib/pe-puppet logdir = /var/log/pe-puppet rundir = /var/run/pe-puppet modulepath = /etc/puppetlabs/puppet/modules user = pe-puppet group = pe-puppet [agent] certname = gmatzpupnode.mserv.local server = gmatzpupmaster.mserv.local report = true classfile = $vardir/classes.txt localconfig = $vardir/localconfig graph = true pluginsync = true Again, the fact is defined on the server in modules/ldap/lib/puppet/facter . . . Thanks again On Fri, Jul 29, 2011 at 11:48 AM, Guy Matz gm...@matz.org wrote: No!!! facter -p does *not* show my facts . . . what does that mean!? thank *you*! On Fri, Jul 29, 2011 at 11:42 AM, Nan Liu n...@puppetlabs.com wrote: On Fri, Jul 29, 2011 at 11:38 AM, Guy Matz gm...@matz.org wrote: yeah, I got that set . . . yeah, I should have mentioned that the facts do get downloaded on the client to $vardir/lib/puppet/facter . . . but still the facts are not available! If you run facter -p on the client side does it load the custom fact? If it's loading the fact successfully on the agent, is this fact uploaded to the masters $vardir/yaml/facts directory? Thanks, Nan -- 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+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] special handling for template file with XML?
hi, i get the following error when trying to use a template with XML in it: Could not parse for environment production: Syntax error at '' So I tried using the HTML codes for special chars but now get: Could not parse for environment production: Could not match lt;?xml anyone know if I need to specially handle XML templates? thanks a lot, Guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] is ruby code allowed in puppet manifest?
Hi, I'm trying to get the following to work: class cluster { $cluster_name = hostname.slice(0..-2) . . } # class hoping that if I have a server called appfarmserver1 (obtained from facter, can I use a fact like this!?), cluster_name will get set to appfarmserver . . . puppet --parseonly init.pp says: err: Could not parse for environment production: Syntax error at '.'; expected '}' Is there some way to get this to work? Is there a better, more puppetty way to do what I want to do, i.e. based on the hostname from fatcer, set the variable cluster_name for use in a template. Thanks so much, Guy Matz -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
[Puppet Users] Testing, testing . . .
Any of you folks have any good tests that you use to make sure a module has completed successfully? Any best practice suggestions? I looked around on the www but didn't see anything about this. Please point me in the right direction if I missed it. thanks, guy -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.