Sunday, 2008-09-07

[2008/09/07 00:54:50] @ Log started by gepetto
[2008/09/07 00:54:50] <jamesturnbull> Shazburg: to which environment do you refer?
[2008/09/07 00:55:05] <jamesturnbull> isox: have you first read wiki:DevelopmentLifecycle
[2008/09/07 00:55:09] <gepetto> jamesturnbull: isox: wiki:DevelopmentLifecycle is http://reductivelabs.com/trac/puppet/wiki/DevelopmentLifecycle
[2008/09/07 00:56:06] @ Quit: randybias:
[2008/09/07 00:58:09] <jamesturnbull> kubicek: so you needed to add dbmigrate somewhere? did oyu have a previous db? once you've created the db it should automatically populate them
[2008/09/07 01:06:10] <Shazburg> jamesturnbull: Bash. I guess I'm really not sure what 'environment' exec {environment} is setting.
[2008/09/07 01:08:22] <jamesturnbull> Shazburg: exec { "blah": environment -> "blah", } sets additionl environmental paremeter for that particular exec
[2008/09/07 01:08:52] <Shazburg> jamesturnbull: AH! I gotchya.
[2008/09/07 01:09:15] <Shazburg> jamesturnbull: Thanks for clearing that up.
[2008/09/07 01:09:21] <jamesturnbull> Shazburg: multiple variables are specified in an array
[2008/09/07 01:10:31] <Shazburg> jamesturnbull: I'm picking up what you're putting down. I was looking at this all wrong.
[2008/09/07 01:23:49] @ Quit: trombik: Client Quit
[2008/09/07 01:58:11] @ shake-n-bake joined channel #puppet
[2008/09/07 02:12:01] @ ski98033 joined channel #puppet
[2008/09/07 02:24:39] @ Quit: bgupta: Read error: 110 (Connection timed out)
[2008/09/07 02:42:00] @ Quit: DavidS1: "Leaving."
[2008/09/07 03:06:09] @ Quit: ski98033: "Leaving."
[2008/09/07 03:06:17] @ DavidS joined channel #puppet
[2008/09/07 03:06:38] @ DavidS left channel #puppet ()
[2008/09/07 03:18:41] @ Quit: punkcut: Read error: 104 (Connection reset by peer)
[2008/09/07 03:33:59] @ DavidS joined channel #puppet
[2008/09/07 03:34:27] <DavidS> cool, my new server debootstraps a vserver in under a minute :-)
[2008/09/07 03:39:56] @ Quit: shake-n-bake:
[2008/09/07 03:41:18] <fujin> sexy
[2008/09/07 03:42:57] <DavidS> yeah, nothing like a local mirror and a pair of fast disks
[2008/09/07 04:42:41] @ descala joined channel #puppet
[2008/09/07 04:46:53] @ Quit: descala: Client Quit
[2008/09/07 04:54:55] @ kubicek_ joined channel #puppet
[2008/09/07 05:01:06] @ martha joined channel #puppet
[2008/09/07 05:20:23] <ranguard> Is there a way to access $fqdn and $hostname in a template without having to put it in the define part of the config? - actually does $fqdn exist like $hostname does?
[2008/09/07 05:20:56] <DavidS> ranguard: facts from facter (like $fadn AND $hostname) should exist everywhere if facter has defined them
[2008/09/07 05:21:25] <DavidS> ranguard: if you are having inconsistencies between the two, it's probably because your facter is confused
[2008/09/07 05:23:10] <ranguard> I cant get them printing <%= $hostname %>, and also tried <% $hostname %> - have I got the wrong syntax?
[2008/09/07 05:23:10] <DavidS> no $$
[2008/09/07 05:23:10] <ranguard> that's in my template
[2008/09/07 05:23:12] <DavidS> but <%= is correct
[2008/09/07 05:23:25] <DavidS> <%= hostname %>
[2008/09/07 05:25:25] <ranguard> heh - thanks - tried so many combintations - went down the wrong path when I tried <%= host %> - so thought that was invalid syntax - should have been hostname obviosuly - cheers!
[2008/09/07 05:25:52] <DavidS> ranguard: happy sunday :-)
[2008/09/07 05:27:30] * ranguard thinks that deserves a bacon sandwich
[2008/09/07 06:48:12] * Volcane really wish the error reporting on modules would get sorted :(
[2008/09/07 06:48:36] <Volcane> err: Could not retrieve catalog: Is a directory - /path/to/modules/bind/manifests/ha at ...
[2008/09/07 06:48:50] <Volcane> when trying to include bind::ha
[2008/09/07 06:50:30] <Volcane> which usually means theres a syntax error *somewhere* but its miss reporting it
[2008/09/07 06:52:21] <Volcane> and worse is when it goes away after a few tries :(
[2008/09/07 06:56:41] <Volcane> I'd file a bug, been unable to pin down the circumstances to reprodue
[2008/09/07 07:04:46] @ Innocenti joined channel #puppet
[2008/09/07 07:22:56] @ |Innocenti| joined channel #puppet
[2008/09/07 07:24:03] @ Quit: Innocenti: Remote closed the connection
[2008/09/07 07:34:51] @ sigmonsays_ joined channel #puppet
[2008/09/07 07:37:10] @ Quit: sigmonsays__: Read error: 110 (Connection timed out)
[2008/09/07 07:57:30] @ dene joined channel #puppet
[2008/09/07 08:16:05] @ descala joined channel #puppet
[2008/09/07 08:25:14] @ sigmonsays__ joined channel #puppet
[2008/09/07 08:26:07] @ Quit: |Innocenti|: Remote closed the connection
[2008/09/07 08:26:52] @ Quit: sigmonsays_: Read error: 110 (Connection timed out)
[2008/09/07 08:27:09] @ Quit: descala:
[2008/09/07 09:09:57] @ meandtheshell joined channel #puppet
[2008/09/07 09:16:04] @ pleemans joined channel #puppet
[2008/09/07 09:24:48] @ sigmonsays_ joined channel #puppet
[2008/09/07 09:25:14] @ Quit: sigmonsays__: Read error: 110 (Connection timed out)
[2008/09/07 09:30:33] @ snerd joined channel #puppet
[2008/09/07 09:55:07] @ Quit: snerd: Remote closed the connection
[2008/09/07 10:44:31] @ briandquinn joined channel #puppet
[2008/09/07 10:45:09] <DavidS> any ideas on #1564?
[2008/09/07 10:45:52] <gepetto> DavidS: #1564 is http://reductivelabs.com/redmine/issues/show/1564
[2008/09/07 10:47:12] @ nuloop joined channel #puppet
[2008/09/07 10:58:27] * Volcane 's seen similar with facts
[2008/09/07 10:59:11] <DavidS> Volcane: well, facts are also transported as Files, so i suppose any checksum bug might hit them too
[2008/09/07 11:01:00] <Volcane> yip
[2008/09/07 11:01:11] <Volcane> i touch them back to whats expected when it really annoys me
[2008/09/07 11:03:49] <jamesturnbull> DavidS: hmmm that's an ugly one
[2008/09/07 11:04:22] <jamesturnbull> DavidS: it;ll be in util/checksum.rb somewhere
[2008/09/07 11:08:04] <DavidS> jamesturnbull: nah, there are only the actual checksumming functions
[2008/09/07 11:08:28] <DavidS> i'd rather point to type/file/checksum.rb, but reading it didn't show anything obvious
[2008/09/07 11:08:56] <DavidS> but then i didn't think i totally understand this whole caching scheme
[2008/09/07 11:16:01] <DavidS> Volcane: touching the file didn't help, as the mismatch is mtime != md5
[2008/09/07 11:19:28] <Volcane> DavidS: ah! i missread thought its time != time, no I've never seen it do that only time != time and then refusing to sort it outon its own
[2008/09/07 11:20:17] <DavidS> Volcane: very strange, it is totally repeatable for me: every client does this with both 0.24.4-8~bpo as well as 0.24.5-2 from lenny
[2008/09/07 11:20:58] <DavidS> and it seem to only be the recursively copied files
[2008/09/07 11:21:03] <Volcane> ah :( sux
[2008/09/07 11:21:15] <DavidS> indeed
[2008/09/07 11:21:29] <Volcane> i have recurse copies on debian machines without that problem, but i try and avoid recurse as much as possible so only have 1 place where i use it
[2008/09/07 11:22:52] <DavidS> but i seem to have the time!=time problem too with pluginsync: notice: /File[/var/lib/puppet/lib/facter]/checksum: checksum changed '{mtime}Sun Sep 07 13:39:22 +0000 2008' to '{mtime}Sun Sep 07 15:39:22 +0200 2008'
[2008/09/07 11:23:40] <Volcane> yeah thats what i see
[2008/09/07 11:24:39] <DavidS> ah .. there is a TZ change in this
[2008/09/07 11:24:45] <DavidS> +0000 != +0200
[2008/09/07 11:33:45] @ SonOfLilit joined channel #puppet
[2008/09/07 11:33:54] <SonOfLilit> Hello
[2008/09/07 11:34:03] <DavidS> SonOfLilit: hi
[2008/09/07 11:34:06] <SonOfLilit> My question isn't at all puppet related
[2008/09/07 11:34:16] <SonOfLilit> but I remembered the best sysadmins I've talked to live here
[2008/09/07 11:34:19] <SonOfLilit> so... if I may
[2008/09/07 11:34:33] <DavidS> SonOfLilit: not a good start, but quite a good follow-up, fire away ;-)
[2008/09/07 11:34:34] <SonOfLilit> we're building a framework to test a very violent piece of software
[2008/09/07 11:34:55] <SonOfLilit> we need to tell what has changed on a disk
[2008/09/07 11:35:04] <DavidS> tripwire, aide?
[2008/09/07 11:35:18] <tim|imac> "violent piece of software"? it kills people?
[2008/09/07 11:35:24] <SonOfLilit> and timestamps aren't enoough, as our software is too violent to count on them
[2008/09/07 11:35:43] <Volcane> heh
[2008/09/07 11:35:46] * DavidS waves at tim|imac
[2008/09/07 11:35:57] <Volcane> SonOfLilit: inhouse developed software?
[2008/09/07 11:36:03] <SonOfLilit> yes
[2008/09/07 11:36:06] * tim|imac waves back at DavidS
[2008/09/07 11:36:12] <DavidS> SonOfLilit: md5sum sha1sum?
[2008/09/07 11:36:32] <tim|imac> aide does checksums... i presume so does tripwire
[2008/09/07 11:36:35] <SonOfLilit> would work
[2008/09/07 11:36:43] <martha> I think you mean volatile, not violent
[2008/09/07 11:36:43] <SonOfLilit> how fast are they?
[2008/09/07 11:37:18] <DavidS> SonOfLilit: disk speed is probably your most limiting factor
[2008/09/07 11:37:45] <SonOfLilit> I meant violent :) I like impressive, dramatic words
[2008/09/07 11:38:42] <SonOfLilit> you might be right
[2008/09/07 11:38:52] <SonOfLilit> though hashing speed might make a difference
[2008/09/07 11:39:03] * tim|imac takes the knifes away from SonOfLilit's computer and puts them safely in the drawer.
[2008/09/07 11:39:11] <Volcane> SonOfLilit: I'd suggest dragging some developers in it path and letting it kill them. other than that, you're options is something like tripwire and then some tool to go and diff perhaps a LVM snapshot of before with the current box
[2008/09/07 11:40:03] <DavidS> SonOfLilit: if you are concerned about perf, look at tripwire/aide, they offer a wide range of algos
[2008/09/07 11:40:49] <SonOfLilit> how does aide report when it finds differences?
[2008/09/07 11:40:58] <DavidS> SonOfLilit: list of files
[2008/09/07 11:41:15] <DavidS> SonOfLilit: list of *changed* files
[2008/09/07 11:41:17] <SonOfLilit> a simple log, or does is nature as an IDS prompt it to take immediate action of some sort?
[2008/09/07 11:41:24] <SonOfLilit> oh, cool
[2008/09/07 11:42:05] <DavidS> SonOfLilit: of course you could bugger aide upstream about adding a --assert-violence switch to immediately shutdown the server if something has changed ;-)
[2008/09/07 11:43:20] * Volcane thinks a filesystem snapshot before run combined with tripwire change lists would be great, can do diffs etc
[2008/09/07 11:43:21] <SonOfLilit> haha
[2008/09/07 11:43:26] <SonOfLilit> or submit a patch
[2008/09/07 11:49:46] <SonOfLilit> tripwire is expensive and aide isn't multiplatform enough (you guessed it :/ winXP) but other tools in their family seem to be what we needed :)
[2008/09/07 11:49:47] <SonOfLilit> thanks
[2008/09/07 11:50:02] <DavidS> SonOfLilit: you're welcome
[2008/09/07 11:50:02] <SonOfLilit> and to think I was leaning in the direction of rsync --list-only
[2008/09/07 12:23:24] @ SonOfLilit left channel #puppet ()
[2008/09/07 12:39:07] @ lak joined channel #puppet
[2008/09/07 12:47:15] @ descala joined channel #puppet
[2008/09/07 12:47:38] <DavidS> hi lak!
[2008/09/07 12:47:45] <lak> hi
[2008/09/07 12:48:16] <lak> just checking in briefly then heading back to the hospital for feeding and diaper changing :/
[2008/09/07 12:48:26] <DavidS> ? best wishes in any case!
[2008/09/07 12:48:33] <lak> thanks
[2008/09/07 12:48:35] @ Quit: descala: Client Quit
[2008/09/07 12:48:46] <lak> one girl's left in the NICU but it's just because she's not eating that well
[2008/09/07 12:48:58] <lak> and it looks a lot like they'll take her feeding tube out today or tomorrow
[2008/09/07 12:49:11] <lak> which could see us going home as soon as tues or wed, hopefully
[2008/09/07 12:49:22] <lak> no 'net access at the hospital, so i have to get it in 5 min bursts
[2008/09/07 12:49:26] <lak> gotta go
[2008/09/07 12:49:27] <lak> cheers
[2008/09/07 12:49:28] * DavidS crosses fingers!
[2008/09/07 12:49:29] @ Quit: lak:
[2008/09/07 12:57:36] @ briandquinn left channel #puppet ()
[2008/09/07 13:03:23] @ Innocenti joined channel #puppet
[2008/09/07 13:04:08] @ Quit: sigmonsays_: Read error: 110 (Connection timed out)
[2008/09/07 13:04:45] @ sigmonsays_ joined channel #puppet
[2008/09/07 13:15:16] @ Quit: Innocenti: Remote closed the connection
[2008/09/07 13:58:36] @ descala joined channel #puppet
[2008/09/07 14:02:14] @ Quit: descala: Client Quit
[2008/09/07 14:11:24] @ shake-n-bake joined channel #puppet
[2008/09/07 14:17:36] @ martha left channel #puppet ()
[2008/09/07 14:21:53] @ descala joined channel #puppet
[2008/09/07 14:43:19] @ edwardam joined channel #puppet
[2008/09/07 14:43:50] @ Quit: meandtheshell: "Leaving."
[2008/09/07 14:45:12] @ Quit: descala: Read error: 110 (Connection timed out)
[2008/09/07 15:00:29] @ andrewcshafer joined channel #puppet
[2008/09/07 15:23:44] @ Quit: pleemans: Remote closed the connection
[2008/09/07 16:17:52] @ Arathorn joined channel #puppet
[2008/09/07 16:20:32] <Arathorn> hi all - i'm looking at using puppet to replace a horrible system of symlinks-to-svn-working-copy system I use for versioning random bits of important system config
[2008/09/07 16:20:50] <Arathorn> does puppet allow a way to propagate manual local changes on a server back to the config at all?
[2008/09/07 16:21:43] <Arathorn> or do you have to mess around manually with the server, and then manually update the puppet script to reflect what you've done?
[2008/09/07 16:23:03] <DavidS> Arathorn: usually you "mess around manually" with the config on the master and let puppet handle everything else
[2008/09/07 16:28:36] <Arathorn> right
[2008/09/07 16:29:53] <z00dax> puppet has no checking for local changes, it will always stomp over whatever you do locally
[2008/09/07 16:30:05] * Arathorn suspects this may take a little bit of a leap of faith to use, then
[2008/09/07 16:30:07] <z00dax> so think of it as a one way stream only
[2008/09/07 16:30:16] <z00dax> Arathorn: it is, and it breaks often :D
[2008/09/07 16:30:41] <Arathorn> hm - you sell it so well ;)
[2008/09/07 16:30:51] <holoway> it's the leap you should be making, thogh
[2008/09/07 16:31:08] <holoway> the idea is easy - if you merge manual changes, you invite un-manageable conflict
[2008/09/07 16:31:16] <z00dax> if you keep in mind that its a one way street, with potential to break- you tend to double check things and get into the right mindset, in which case it does not break
[2008/09/07 16:31:28] <holoway> your infrastructure is code
[2008/09/07 16:31:40] <z00dax> classic mistakes like 'ooh.. puppet setup this cron job, let me change it a bit to see how that works' - are Fail!
[2008/09/07 16:33:04] * Arathorn hmms.
[2008/09/07 16:33:15] <Arathorn> as whilst I can see I could persuade myself to live in such a puppet world
[2008/09/07 16:33:25] <Arathorn> i'm pretty sure that well meaning others could wreak total havoc
[2008/09/07 16:33:37] <z00dax> only if they are allowed to :d
[2008/09/07 16:33:40] <DavidS> Arathorn: there can only be one :-)
[2008/09/07 16:34:17] <z00dax> there is no acl mechanism in puppet, at all. so if anyone gets config version control commit access, that person is $god
[2008/09/07 16:34:17] <Arathorn> i'm not sure i'm quite ready yet to go postal, alas
[2008/09/07 16:34:18] * Volcane finds great conform in managing his entitre infrastructure from the comfort of textmate and svn checkins
[2008/09/07 16:34:31] <Volcane> comfort even
[2008/09/07 16:34:55] <DavidS> Arathorn: the easiest way to switch to puppet is when deploying a new system ...
[2008/09/07 16:35:07] <DavidS> no legacy config to toe around
[2008/09/07 16:35:29] <DavidS> which is coincidentally what i'm currently doing on a sunday at 22:35 :-/
[2008/09/07 16:35:34] <Arathorn> hehe
[2008/09/07 16:36:03] <Arathorn> well, yesterday I went and deployed a new mailserver, as a DRBD-pair
[2008/09/07 16:36:22] <Arathorn> and set up the exim/cyrus etc. from scratch on the master, symlinking the config into a SVN wc
[2008/09/07 16:36:40] <Arathorn> and now I have the minor problem of easily duplicating that setup on the slave node
[2008/09/07 16:37:02] <Arathorn> and it occurs to me that puppet probably could have helped in this
[2008/09/07 16:37:07] <z00dax> how many machines do you have in all ?
[2008/09/07 16:37:09] <erikh> Arathorn: I know this is #puppet, but it (seems) like you want a manual deployment tool like capistrano or vlad
[2008/09/07 16:37:11] <DavidS> Arathorn: bingo
[2008/09/07 16:37:32] <Arathorn> i have a fair number (5?) of random DRBD pairs
[2008/09/07 16:37:42] <z00dax> yes, puppet will help.
[2008/09/07 16:37:44] <Arathorn> doing different things (e.g. fileserver, webserver, mailserver)
[2008/09/07 16:37:53] <Arathorn> and the pairs spend their lives getting horribly out of sync
[2008/09/07 16:37:57] <erikh> ah
[2008/09/07 16:38:01] <erikh> yeah, that's what puppet is good at.
[2008/09/07 16:38:05] <z00dax> although when you cross 40 odd machine numbers, thats when it really starts to make a diff
[2008/09/07 16:39:10] <DavidS> z00dax: if you constrain yourself to very basic maint tasks, like installing a common set of packages and shell envs everywhere it already pays on a much smaller scale
[2008/09/07 16:39:13] <Arathorn> well, there's also a farm of generic boxes, but they have /very/ little common configuration, and are all ghosted anyway
[2008/09/07 16:39:15] @ Quit: Demosthenex: Read error: 110 (Connection timed out)
[2008/09/07 16:39:43] * Arathorn has a play on this mailserver DRBD cluster, then
[2008/09/07 16:40:31] <z00dax> DavidS: absolutely
[2008/09/07 16:40:49] <z00dax> I wonder how much of that sort of stuff spacewalk could handle now
[2008/09/07 16:41:18] <holoway> spacewalk?
[2008/09/07 16:41:30] <Volcane> opensource redhat satelite
[2008/09/07 16:41:40] <holoway> Volcane: terrifying!
[2008/09/07 16:42:03] <Volcane> :) yeah
[2008/09/07 16:42:14] <erikh> Arathorn: yeah, take a peek @ vlad/cap... they definitely have a grip on webapp deployment but I use cap for all sorts of stuff I don't want to enforce policy on
[2008/09/07 16:42:23] <Volcane> i wouldnt mind it, but they need tog et the dependencies a bit more realistic
[2008/09/07 16:43:08] <holoway> vlad/cap are both great tools in the box - but if you find yourself doing systems management with 'em, you're doing it wrong. :)
[2008/09/07 16:43:13] <holoway> my $0.02
[2008/09/07 16:44:31] <z00dax> I agree with holoway
[2008/09/07 16:44:57] <z00dax> whats that thing that ticketmaster.com guys are using ...
[2008/09/07 16:45:00] * z00dax looks
[2008/09/07 16:45:04] <kubicek_> btw. i'm using puppet to setup apache virtual hosts. is it possible to setup them somehow on fly? i looked on external nodes but it doesn't seem to work for me. is there any way or should i write a small restfull webserver that adds a new host to a manifest file on request ?
[2008/09/07 16:45:22] <Arathorn> yeah, vlad/cap do seem to be very deploying-ruby-webapp oriented
[2008/09/07 16:45:23] <z00dax> kubicek_: you dont need to do that at all
[2008/09/07 16:45:31] <Arathorn> whereas i want something to make sure my /etc/fstabs don't get out of sync
[2008/09/07 16:45:38] <Arathorn> (or whatever it happens to be)
[2008/09/07 16:45:39] <z00dax> kubicek_: setup a template, and then just call that with the various paramters you need
[2008/09/07 16:46:39] <kubicek_> z00dax: but when a request for a new virtual hosts comes i have to manualy edit node definition and restart puppetmaster, right ?
[2008/09/07 16:47:00] <erikh> holoway: eh, there are times where it's a better solution
[2008/09/07 16:47:03] <z00dax> restart puppetmaster ? no
[2008/09/07 16:47:34] <z00dax> either manually edit the manifest for the host, or drop in a new .pp file into a dir you include *.pp from ( is how I've seen this sort of a thing done )
[2008/09/07 16:47:52] <z00dax> restarting puppetmaster seems a bit harsh
[2008/09/07 16:48:35] <kubicek_> z00dax: so the best way is to make a small restfull webserver that receives a new virtual host request a creates a new pp file with the virtual host manifest ?
[2008/09/07 16:48:43] <Volcane> kubicek_: if you do it with a define it could be something as simple as apache::vhost{"your.com": } or perhaps apache::vhost{"your.com": template => "apache/your.com.erb"} which could then go and create dirs, confs, etcetc
[2008/09/07 16:49:07] <DavidS> kubicek: you can use full ruby in a template, e.g. loop over the contents of a external file ...
[2008/09/07 16:49:17] <kubicek_> Volcane: thats what i have, bud i don't want to write even apache::vhost{"your.com": } manually :)
[2008/09/07 16:49:26] <Volcane> I think kubicek_ wants to automate the creation of the manifest to build the vhost
[2008/09/07 16:49:36] <z00dax> kubicek_: have the template make a DB call directly into the backend db :D
[2008/09/07 16:49:45] <kubicek_> cool!
[2008/09/07 16:49:47] <kubicek_> thank you!
[2008/09/07 16:50:33] @ Demosthenes joined channel #puppet
[2008/09/07 16:50:33] <kubicek_> that is the sollution i was looking for
[2008/09/07 16:50:57] <z00dax> just remember that removing a config from puppet's knowledge, does not remove the configs on the machine, you need to ensure => absent etc, in order to achieve that
[2008/09/07 16:52:13] <holoway> erikh: I do lots of cap stuff that you could do in puppet
[2008/09/07 16:52:14] <kubicek_> i have already implemented absent in my manifests, will think on it while creating db table
[2008/09/07 16:52:23] <holoway> so I'm with you on sometimes it's better. :)
[2008/09/07 16:52:26] <kubicek_> thank your for this hint
[2008/09/07 16:53:10] <z00dax> and dont do stuff like ( any domain not found, rm -rf configs ) - since a timedout db connection will take out the entire setup :D
[2008/09/07 16:53:18] * z00dax knows
[2008/09/07 16:53:46] <DavidS> z00dax: shouldn't a DB timeout abort the configuration? O:-)
[2008/09/07 16:53:57] <z00dax> it does now :D
[2008/09/07 16:54:01] <DavidS> lol
[2008/09/07 17:03:35] <gepetto> ::puppet:: Managed ByPuppet edited by freiheit @ http://reductivelabs.com/trac/puppet/wiki/ManagedByPuppet (by eric.eisenhart@sonoma.edu)
[2008/09/07 17:03:41] <kubicek_> z00dax: but i can use ruby only in erb templates not in manifests, right? i would like to do something like %w(test1 test2 test3).each{|vhost| apache::virtual_host { vhost: [params..]}} where test1 test2 would be from external file/database
[2008/09/07 17:04:29] <kubicek_> because i'm also creating users, directories etc so just erb template is not enought
[2008/09/07 17:08:56] <gepetto> ::puppet:: Whos Using Puppet edited by freiheit @ http://reductivelabs.com/trac/puppet/wiki/WhosUsingPuppet (by eric.eisenhart@sonoma.edu)
[2008/09/07 17:11:16] <DavidS> kubicek_: you might want to look into creating custom functions
[2008/09/07 17:13:15] <kubicek_> i see :) ruby there :)
[2008/09/07 17:13:18] <kubicek_> thank you
[2008/09/07 17:14:11] @ Quit: andrewcshafer:
[2008/09/07 17:26:20] <DavidS> sh*tf*ckg*dd*m*t! *beep* *beep* *beep* etch's amd64 vserver kernel doesn't COWBL WTF?!?!
[2008/09/07 17:30:03] <DavidS> I'm only glad i didn't have any userdata there ...
[2008/09/07 17:32:15] <Arathorn> cowbl?
[2008/09/07 17:32:32] <ion_> Needs more cowbell.
[2008/09/07 17:32:46] <DavidS> Copy-On-Write-Breaking-Links
[2008/09/07 17:33:25] <DavidS> vservers can be hashified so that the same files in different guests are hardlinked together
[2008/09/07 17:33:29] <Arathorn> ah.
[2008/09/07 17:33:45] <DavidS> to enable smooth upgreads within a guest, cowbl breaks those links on write transparently
[2008/09/07 17:33:56] * Arathorn nods
[2008/09/07 17:34:02] <Arathorn> cunning :)
[2008/09/07 17:34:06] <Arathorn> well, cunning if it did it
[2008/09/07 17:34:11] <DavidS> EXCEPT WHEN THE *beep* maintainer has *beep*turned *beep* off the *beep* option
[2008/09/07 17:34:23] <DavidS> Arathorn: exactly
[2008/09/07 17:39:54] @ Quit: Demosthenes: Read error: 110 (Connection timed out)
[2008/09/07 18:14:08] @ ski98033 joined channel #puppet
[2008/09/07 18:14:37] @ Quit: shake-n-bake:
[2008/09/07 18:19:35] @ andrewcshafer joined channel #puppet
[2008/09/07 18:35:15] @ Joined channel #puppet
[2008/09/07 18:35:15] @ Topic is "Puppet 0.24.5 Released! (http://tinyurl.com/5vsrc3) | Welcome to Puppet on Redmine (http://tinyurl.com/48ek6g) | Please see http://snurl.com/1udr1 for channel guidelines"
[2008/09/07 18:35:18] @ Topic set by jamesturnbull on Wed Jul 23 20:04:00 -0400 2008
[2008/09/07 18:35:20] @ Mode +tnc by kubrick.freenode.net
[2008/09/07 18:35:26] @ Quit: DavidS: Read error: 104 (Connection reset by peer)
[2008/09/07 18:39:56] @ Quit: edwardam: Read error: 60 (Operation timed out)
[2008/09/07 18:47:44] @ Quit: ski98033: "Leaving."
[2008/09/07 18:48:57] @ Demosthenes joined channel #puppet
[2008/09/07 18:50:00] @ punkcut joined channel #puppet
[2008/09/07 18:51:17] @ edwardam joined channel #puppet
[2008/09/07 19:14:31] @ Quit: kubicek_:
[2008/09/07 19:19:59] @ n0ts___ joined channel #puppet
[2008/09/07 19:32:27] @ Quit: n0ts__: Read error: 110 (Connection timed out)
[2008/09/07 20:13:42] @ inigo_montoya is now known as mmcgrath
[2008/09/07 21:01:17] @ alephant joined channel #puppet
[2008/09/07 21:01:19] <alephant> Hi all!
[2008/09/07 21:01:44] <alephant> Is there a way for class bar to test whether class foo has been included?
[2008/09/07 21:02:20] @ lowercase24 joined channel #puppet
[2008/09/07 21:02:22] <lowercase24> ello?
[2008/09/07 21:02:26] <alephant> i
[2008/09/07 21:02:47] <alephant> ow re ou?
[2008/09/07 21:02:55] @ johnw joined channel #puppet
[2008/09/07 21:03:27] @ Quit: johnw: Client Quit
[2008/09/07 21:03:37] @ johnw joined channel #puppet
[2008/09/07 21:03:51] <mmcgrath> alephant: one way I do it is, in the class, define $classNameIncluded=1
[2008/09/07 21:04:07] <alephant> ooh
[2008/09/07 21:04:10] <alephant> thanks
[2008/09/07 21:04:21] <lowercase24> i m gut
[2008/09/07 21:06:16] @ Quit: Arathorn: "This computer has gone to sleep"
[2008/09/07 21:07:43] <fujin> alephant: defined(Class["blah"])
[2008/09/07 21:07:57] <fujin> It relies on parse order, though..
[2008/09/07 21:08:03] <alephant> gah
[2008/09/07 21:08:28] <alephant> does mmcgrath's boolean variable technique rely on parse order?
[2008/09/07 21:08:37] <fujin> you can also require => Class["blah"] to /ensure/ parse order
[2008/09/07 21:09:30] <alephant> hmm...
[2008/09/07 21:12:29] <alephant> "Parameter require failed: Relationships must be resource references"?
[2008/09/07 21:12:32] <lowercase24> hey everyone, I am trying to get something to work in puppet, but haven't been about to find a solution just yet
[2008/09/07 21:12:42] <lowercase24> I have a directory that in the templates called "foo"
[2008/09/07 21:12:55] <fujin> what version, alephant ?
[2008/09/07 21:13:19] <lowercase24> and I want to create n directories in the same folder based on the exact contents of that directory, so I would have "foo1" "foo2" "foo3" .. "fooN" all with the exact same content
[2008/09/07 21:13:30] <alephant> puppetd 0.24.4
[2008/09/07 21:13:33] <lowercase24> is there a way to accomplish this through puppet?
[2008/09/07 21:13:41] <alephant> puppetmasterd 0.24.4
[2008/09/07 21:14:24] <fujin> coulda sworn you could require => Class["blah"] as a resource
[2008/09/07 21:14:43] @ ski98033 joined channel #puppet
[2008/09/07 21:14:49] <fujin> lowercase24: yes, possible, use resurce => true and source => "puppet://blah/yourdir"
[2008/09/07 21:14:54] <fujin> it'll suck down and ocpy the folder over
[2008/09/07 21:15:10] <lowercase24> I want to use a single folder copied N times with a variation on a base name
[2008/09/07 21:15:14] <lowercase24> so the base folder "foo"
[2008/09/07 21:15:20] <lowercase24> would end up as "foo1" "foo2" .. "fooN"
[2008/09/07 21:15:23] <fujin> yeah?
[2008/09/07 21:15:24] <lowercase24> is that possible?
[2008/09/07 21:15:26] <fujin> I just said it's possible
[2008/09/07 21:16:03] <fujin> file { [ "/path/to/foo1", "/path/to/foo2"]: source => "puppet://files/foo", recurse => true }
[2008/09/07 21:16:24] <lowercase24> cool, thanks fujin I'll look into it :)
[2008/09/07 21:17:05] <lowercase24> right, but I don't want to specific statically the number of directories, I want it to be determined by a provided int
[2008/09/07 21:17:18] <fujin> lolwut
[2008/09/07 21:17:33] <fujin> no, there are no loop constructs like that
[2008/09/07 21:17:48] <fujin> you could probably do some hackery with functions, but meh
[2008/09/07 21:17:57] <lowercase24> so I either have to say copy one directory a specific number of times or else have the directories pre-created
[2008/09/07 21:18:11] <lowercase24> so no happy iteration or anything along those lines
[2008/09/07 21:18:14] <fujin> no
[2008/09/07 21:18:28] <lowercase24> thanks, I appreciate your time :)
[2008/09/07 21:18:30] <fujin> iteration in a declarative language is generally quite bad
[2008/09/07 21:18:40] <lowercase24> yep
[2008/09/07 21:28:02] <alephant> WTF?
[2008/09/07 21:28:11] <alephant> Why does the following:
[2008/09/07 21:28:12] <alephant> http://pastebin.ca/1196864
[2008/09/07 21:28:36] <alephant> and then including both xyzzy and plugh, not result in both logging statements being executed?
[2008/09/07 21:28:50] <fujin> include order?
[2008/09/07 21:29:06] <fujin> variable scoping
[2008/09/07 21:29:31] <fujin> if $xyzzy::xyzzySet
[2008/09/07 21:29:51] <alephant> hmm...
[2008/09/07 21:29:55] @ freiheit joined channel #puppet
[2008/09/07 21:31:05] <alephant> Awesome, thanks
[2008/09/07 21:33:56] <alephant> Well... this is silly:
[2008/09/07 21:35:21] <alephant> I have classA and classB defined in separate <filename>.pp, which are both in my "include these files" directory. I can successfully "do something" if $classA::varname, but otherwise Puppet barfs that I can't reference a variable in a package that hasn't been evaluated yet!
[2008/09/07 21:35:42] <fujin> so evaluate them
[2008/09/07 21:35:43] <alephant> How?
[2008/09/07 21:35:50] <fujin> include
[2008/09/07 21:36:07] <alephant> I don't want to include classA from within classB... I want to do something in classB based on whether classA has been previously included.
[2008/09/07 21:37:03] <alephant> Is that even possible?
[2008/09/07 21:37:53] @ johnw_ joined channel #puppet
[2008/09/07 21:37:56] <mcbride> alephant: not the way you're trying to do it.
[2008/09/07 21:38:47] <alephant> ugh
[2008/09/07 21:38:57] <alephant> So what's the recommended way to solve this specific problem:
[2008/09/07 21:39:21] <alephant> I want all nodes to get setup with a common software package: in this case, Munin. Everybody includes class munin_node.
[2008/09/07 21:39:35] <fujin> throw your munin module out the window and get DavidS'
[2008/09/07 21:39:50] * fujin grins
[2008/09/07 21:39:57] <alephant> Those which are also webservers include class apache. If you've got apache defined, then setup the munin apache plugins.
[2008/09/07 21:40:18] <alephant> I'll do that... but I'm guessing that this example will come up again wearing a different hat.
[2008/09/07 21:40:19] <fujin> I have that exact setup
[2008/09/07 21:40:22] @ Quit: johnw_: Read error: 104 (Connection reset by peer)
[2008/09/07 21:40:37] @ johnw_ joined channel #puppet
[2008/09/07 21:40:45] <fujin> err, without the inconsistency.
[2008/09/07 21:40:51] <fujin> all of the systems I have with apache on have munin
[2008/09/07 21:41:18] @ Quit: johnw: Read error: 113 (No route to host)
[2008/09/07 21:41:24] @ johnw_ is now known as johnw
[2008/09/07 21:41:55] <fujin> I'm sure you could solve this with node-scoped variables, though
[2008/09/07 21:42:15] <fujin> and besides, if you're including munin_node before apache2, then it'll be evaluated first
[2008/09/07 21:42:26] <fujin> thus you should be able to if defined(Class["munin_node"])
[2008/09/07 21:45:18] @ Quit: andrewcshafer:
[2008/09/07 21:48:31] <alephant> No, that doesn't work either >:-|
[2008/09/07 21:48:40] <alephant> I'm reaching the end of my rope w/ Puppet...
[2008/09/07 21:49:04] <alephant> ...I had high hopes that it would make my life *easier*, but in fact I'm struggling to do the things that need to be done.
[2008/09/07 21:49:39] <alephant> Automating "install svn, colordiff & populate sources.list" is easy... but I could do it easily by hand.
[2008/09/07 21:50:22] <alephant> It's the "let me instantiate website Foo with its dependencies and checkout the code and set the permissions and all" is a royal pain in the neck... and I could all of *that* with Subversion and Python as well.
[2008/09/07 21:50:40] * alephant tears his hair out.
[2008/09/07 21:50:51] <alephant> (plus this laptop is really wam on my lap)
[2008/09/07 21:51:55] <alephant> Does anybody have any advice for automating a heterogeneous end-user site?
[2008/09/07 21:56:08] @ Quit: johnw: Read error: 104 (Connection reset by peer)
[2008/09/07 21:56:17] @ Quit: lowercase24:
[2008/09/07 21:56:48] @ johnw joined channel #puppet
[2008/09/07 21:58:48] <mcbride> alephant: the annoying thing about puppet is the language is somewhat restrictive.
[2008/09/07 21:58:59] <alephant> Amen!
[2008/09/07 21:59:04] <fujin> feel free to jump off a cliff
[2008/09/07 21:59:06] <mcbride> alephant: however, the really nice thing about puppet is the language is somewhat restrictive.
[2008/09/07 21:59:22] <alephant> And I can't afford to learn Ruby just for this domain
[2008/09/07 21:59:58] <alephant> I appreciate the infrastructure! But the combination of thinking in a declarative fashion *and* not having access to the brute force of the implementation language is driving me nuts
[2008/09/07 22:00:20] <mcbride> if you're having trouble doing something, you may want to question whether it needs to be done that way.
[2008/09/07 22:01:02] <alephant> That's good general advice...
[2008/09/07 22:01:05] <mcbride> for example, in this case you could just have your apache module include the munin_apache class.
[2008/09/07 22:01:23] <alephant> right...
[2008/09/07 22:02:35] <alephant> I'm just assuming that the language will let me do what I want, regardless of whether it's the Best Way... but I haven't found facility in the language idioms yet to give me a reasonable vocabulary of "ways of doing things".
[2008/09/07 22:03:07] <fujin> the underlying way of doing thing is you want to consistently put your systems into a desired state, not do this and that based on the presence of this or that
[2008/09/07 22:03:21] <alephant> And, being a Python guy, not having access to the Brute Force method is like a slap in the face. It's like before learning Lisp, and thinking that Emacs is "just being difficult" ;-)
[2008/09/07 22:03:23] <fujin> I want all of my webservers to run apache, and be graphed by Munin
[2008/09/07 22:03:38] <mcbride> alephant: if you havn't looked at DavidS's modules yet, do so now.
[2008/09/07 22:03:48] <fujin> http://git.black.co.at
[2008/09/07 22:04:10] <alephant> I've tried... but it's not exactly the shallow end of the pool!
[2008/09/07 22:04:23] <fujin> anyone seen anything like http://pastie.org/267906 before?
[2008/09/07 22:04:27] <mcbride> alephant: also, there are a few places to cheat: you can access ruby somewhat in templates, and you can write your own custom functions.
[2008/09/07 22:04:34] <mcbride> however, resist the urge! :-)
[2008/09/07 22:08:29] <jamesturnbull> morning all
[2008/09/07 22:09:38] <fujin> howdy
[2008/09/07 22:10:34] <jamesturnbull> fujin: how's it going mate?
[2008/09/07 22:10:47] <fujin> eh, apart from this ridiculous timeout error, great
[2008/09/07 22:10:53] <mcbride> now, I have a similar beef to alephant's issue with class include order.
[2008/09/07 22:11:24] <mcbride> it seems that the puppet compiler is a bit weak at making sure that a class's scope has been evaluated before evaluating the class itself.
[2008/09/07 22:12:09] <mcbride> and in testing I've done, you can't really rely on include order to always do the right thing.
[2008/09/07 22:12:23] <mcbride> I'm trying to build a small example of this right now.
[2008/09/07 22:12:49] <mcbride> mind you I should probably follow my own advice and do things differently.
[2008/09/07 22:13:11] <jamesturnbull> mcbride: okay... include order isn't generally a method for that
[2008/09/07 22:13:45] <mcbride> I'd like to see puppet live up to it's claims of being a declarative language a little more.
[2008/09/07 22:13:49] <jamesturnbull> mcbride: because Puppet needs to consider more than just the include order to evaulate classes
[2008/09/07 22:13:56] <mcbride> right.
[2008/09/07 22:14:21] <mcbride> right now the compiler looks at scope a bit, but it doesn't build a full graph of the scope dependencies.
[2008/09/07 22:14:32] @ ski98034 joined channel #puppet
[2008/09/07 22:14:47] <mcbride> I've looked at the code a bit, but that's a somewhat challenging place for a ruby newb to get his hands dirty.
[2008/09/07 22:14:59] <jamesturnbull> mcbride: are you sure? I don't see how it couldn't build a full graph
[2008/09/07 22:15:21] @ Quit: ski98033: Read error: 113 (No route to host)
[2008/09/07 22:15:42] <jamesturnbull> fujin: never seen that error - happening in a weird place too
[2008/09/07 22:16:05] @ shake-n-bake joined channel #puppet
[2008/09/07 22:16:12] <fujin> thats what I thought
[2008/09/07 22:16:38] <mcbride> jamesturnbull: it doesn't consider qualified variables.
[2008/09/07 22:17:41] <jamesturnbull> mcbride: um ... where doesn't it consider them?
[2008/09/07 22:19:15] <mcbride> it does not try to ensure that a class is evaluated before trying to evaluate a qualified variable pointing to that class.
[2008/09/07 22:19:18] <alephant> OK... here's another one:
[2008/09/07 22:19:39] <jamesturnbull> mcbride: really? looking at the parser it certainly claims to
[2008/09/07 22:20:51] <alephant> I want to write a file containing a bunch of statements: Listen w.x.y.z:80\n Listen a.b.c.d:443. I'd *like* to be able to list ip:port in a node{ } and have this get automagically created. Is this dumb, and/or how would I do this?
[2008/09/07 22:21:31] <fujin> $listen_hosts = [ "w.x.y.z:80", "a.b.c.d:443" ]
[2008/09/07 22:21:41] <fujin> <% listen_hosts.each do |h| -%>
[2008/09/07 22:21:47] <fujin> <%= h %>
[2008/09/07 22:21:49] <fujin> <% end %>
[2008/09/07 22:21:49] <alephant> oh wow
[2008/09/07 22:21:51] <alephant> silly me
[2008/09/07 22:21:52] <alephant> tq
[2008/09/07 22:21:53] <alephant> tq
[2008/09/07 22:22:00] <jamesturnbull> alephant: templates - have you looked at DavidS' modules or Luke's modules on Github - if it's webservices there are lots of examples
[2008/09/07 22:22:01] * alephant smacks self on head
[2008/09/07 22:22:08] <fujin> wiki:PuppetTemplating is a good read
[2008/09/07 22:22:17] <gepetto> fujin: wiki: wiki:PuppetTemplating is http://reductivelabs.com/trac/puppet/wiki/PuppetTemplating
[2008/09/07 22:22:32] <alephant> I read the templating... I was for some reason putting a function definition in between the list and the template
[2008/09/07 22:23:56] <fujin> oh
[2008/09/07 22:24:15] <alephant> Yes. I felt silly.
[2008/09/07 22:27:46] <fujin> bah, wish I could track down this bloody timeout
[2008/09/07 22:27:47] <fujin> it must have somethign to do with the manifests I've just written
[2008/09/07 22:34:14] @ andrewcshafer joined channel #puppet
[2008/09/07 22:41:46] <mcbride> pastie: url me
[2008/09/07 22:42:54] <mcbride> ok, so pardon the ugly example
[2008/09/07 22:43:16] <mcbride> I'm perfectly aware that this is not nice.
[2008/09/07 22:43:20] <mcbride> but it highlights the problem.
[2008/09/07 22:43:24] <pastie> http://pastie.org/267915 by mcbride.
[2008/09/07 22:44:19] <mcbride> with that, I get:
[2008/09/07 22:44:19] <mcbride> Class apache_config has not been evaluated so its variables cannot be referenced at /tm
[2008/09/07 22:44:19] <mcbride> p/foo:26 on node 000AE43B1909
[2008/09/07 22:44:21] <mcbride> even though I _do_ include apache_config
[2008/09/07 22:44:33] @ jvanzyl joined channel #puppet
[2008/09/07 22:44:39] <alephant> Hey...
[2008/09/07 22:44:51] <alephant> Can a template access variables defined by facter?
[2008/09/07 22:44:55] <mcbride> if I include apache_config in the bottom scope, at the end...
[2008/09/07 22:45:16] <mcbride> apache_config is evaluated before apache_setup in which it is defined.
[2008/09/07 22:45:35] <fujin> alephant: yes
[2008/09/07 22:45:42] <alephant> ta
[2008/09/07 22:45:43] <alephant> tq
[2008/09/07 22:45:44] <mcbride> and the $apache_config::chroot and $apache_config::ssl are empty.
[2008/09/07 22:45:57] @ Quit: jvanzyl: Client Quit
[2008/09/07 22:46:53] <mcbride> is it clear what I'm trying to do?
[2008/09/07 22:47:44] <mcbride> I want to be able to build inherited classes, but be able to use qualified variables to see some of the configuration in a generic way.
[2008/09/07 22:48:18] <mcbride> yes, probably my trac module should just try to determine on it's own whether apache is running chrooted
[2008/09/07 22:48:34] @ Quit: f3ew: Read error: 104 (Connection reset by peer)
[2008/09/07 22:48:48] <mcbride> but this is also ugly; will require doing execs and other nastiness.
[2008/09/07 22:49:22] <jamesturnbull> mcbride: sorry had to duck away - let me read your manifests
[2008/09/07 22:50:54] @ edwardam_ joined channel #puppet
[2008/09/07 22:51:30] @ Quit: edwardam: Nick collision from services.
[2008/09/07 22:51:32] @ edwardam_ is now known as edwardam
[2008/09/07 22:51:41] <jamesturnbull> mcbride: I think you're overcomplicating
[2008/09/07 22:52:20] <mcbride> fair enough.
[2008/09/07 22:52:27] <mcbride> I've tried simpler things too.
[2008/09/07 22:52:46] <mcbride> I still believe this highlights a defficiency in the parser.
[2008/09/07 22:53:02] <mcbride> but I'd prefer to solve things the right way...
[2008/09/07 22:53:08] <mcbride> how would you go about doing this?
[2008/09/07 22:56:47] <jamesturnbull> mcbride: sorry - just trying to multi-task right now
[2008/09/07 22:57:12] <mcbride> no worries
[2008/09/07 22:58:49] <jamesturnbull> mcbride: okay let me think this through - let's go back to basics - what is your objective?
[2008/09/07 22:59:35] @ Quit: freiheit:
[2008/09/07 22:59:47] @ johnw_ joined channel #puppet
[2008/09/07 23:00:23] @ plathrop joined channel #puppet
[2008/09/07 23:00:54] <alephant> Thanks for your ohelp
[2008/09/07 23:00:56] <alephant> gotta run
[2008/09/07 23:00:58] @ Quit: alephant: "BOOM!!"
[2008/09/07 23:01:18] @ Quit: plathrop: Client Quit
[2008/09/07 23:06:46] <mcbride> my objective is to pass some data about the current config from one class to another.
[2008/09/07 23:07:22] @ f3ew joined channel #puppet
[2008/09/07 23:07:42] <mcbride> for example, if I'm installing a web app I need to know if apache is running chrooted, if ssl is enabled, where httpd.conf fragments go, etc.
[2008/09/07 23:07:52] <mcbride> some of those I can figure out easily enough.
[2008/09/07 23:08:14] <mcbride> they're platform dependant, and I could just duplicate the case $operatingsystem bits from the apache module.
[2008/09/07 23:08:19] <jamesturnbull> mcbride: okay just chatting with luke about the behaviour of the parser
[2008/09/07 23:08:22] <mcbride> it would be nice to avoid that duplication though.
[2008/09/07 23:08:56] <jamesturnbull> mcbride: okay
[2008/09/07 23:09:34] <jamesturnbull> I am just thinkign through some ideas
[2008/09/07 23:10:15] <mcbride> doing $apache::foo works fine, but if on a spcecific machine, I don't have apache, I have apache_foo which inherits apache, things break
[2008/09/07 23:10:45] <mcbride> the nested class apache -> define apache_setup -> class apache_config
[2008/09/07 23:10:49] <mcbride> in my example
[2008/09/07 23:11:08] <mcbride> was an attempt to force the puppet parser to evaluate things in the right order.
[2008/09/07 23:11:51] <jamesturnbull> mcbride: it won't work from my brief chat with Luke
[2008/09/07 23:12:06] <mcbride> right.
[2008/09/07 23:12:34] @ Quit: johnw: Read error: 110 (Connection timed out)
[2008/09/07 23:12:41] <jamesturnbull> mcbride: so explain to me why you'd have (and I am little slow this morning so please excuse me) why you'd have apache_foo?
[2008/09/07 23:12:44] @ johnw_ is now known as ohnw
[2008/09/07 23:12:46] @ ohnw is now known as johnw
[2008/09/07 23:12:50] <mcbride> jamesturnbull: this is one place in which puppet does not behave like a declarative language.
[2008/09/07 23:13:11] <mcbride> if I want to override a default in the apache config.
[2008/09/07 23:13:26] <mcbride> for example, I don't want it to run chrooted
[2008/09/07 23:13:36] <jamesturnbull> how about a node level variable?
[2008/09/07 23:18:28] <mcbride> yes, that works
[2008/09/07 23:19:14] <mcbride> I'd prefer to keep configuration in each module's namespace
[2008/09/07 23:19:57] <jamesturnbull> mcbride: reasonable
[2008/09/07 23:20:29] @ johnw_ joined channel #puppet
[2008/09/07 23:20:55] <jamesturnbull> mcbride: I see what you're trying to do ... I also see the limitation - and think you should log a ticket explaining the problem and what you'd like the language to do
[2008/09/07 23:21:36] <mcbride> ok
[2008/09/07 23:22:05] <jamesturnbull> mcbride: in the short term though ... I think you need to abstract that specification of ssl/chroot - either to the node or perhaps a custo fact? I know that might not be ideal but I think it's fairly clean
[2008/09/07 23:22:19] <jamesturnbull> mcbride: or if you can classify by existign criteria - OS, etc
[2008/09/07 23:23:13] <jamesturnbull> mcbride: I appreciate that it is somewhat more duplication but I think it's less complicated that what you are trying to do now
[2008/09/07 23:25:02] <mcbride> yeah
[2008/09/07 23:25:43] <fujin> jamesturnbull: lmao, worked out what that timeout was
[2008/09/07 23:25:55] <mcbride> jamesturnbull: I don't think I can classify by existing criteria, but the node variable is an acceptable workaround for the time being
[2008/09/07 23:25:56] <fujin> I had some overriden source => set to puppet://ubuntu/hardy/path/to/file
[2008/09/07 23:26:04] <fujin> instead of puppet:///ubuntu/hardy/path/to/file
[2008/09/07 23:26:06] <fujin> note the extra / :}
[2008/09/07 23:26:34] <mcbride> jamesturnbull: mostly this is a general desire to see the puppet language live up to it's claims of being declaritive
[2008/09/07 23:27:03] <mcbride> jamesturnbull: one property of which is being order-of-execution independant.
[2008/09/07 23:27:28] <mcbride> jamesturnbull: the example I pasted is one case where it fails to do this
[2008/09/07 23:28:22] <mcbride> jamesturnbull: and I cringe a bit when I see things in the documentation such as the caveat for defined()...
[2008/09/07 23:28:24] <jamesturnbull> mcbride: agree and from talking to Luke he'd appreciate a ticket on it
[2008/09/07 23:28:33] <jamesturnbull> fujin: this is because you are a doofus :)
[2008/09/07 23:28:33] <mcbride> jamesturnbull: "This function is unfortunately dependent on the parse order of the configuration when testing whether a resource is defined"
[2008/09/07 23:29:11] <mcbride> yup, I'll do the ticket now.
[2008/09/07 23:29:16] <jamesturnbull> mcbride: language tutorial - I think I wrote that :)
[2008/09/07 23:34:03] <mcbride> jamesturnbull: and it's a fine document, thanks.
[2008/09/07 23:34:27] @ sigmonsays__ joined channel #puppet
[2008/09/07 23:34:28] @ Quit: sigmonsays_: Read error: 110 (Connection timed out)
[2008/09/07 23:36:59] @ Quit: johnw: Read error: 110 (Connection timed out)
[2008/09/07 23:39:38] @ johnw_ is now known as johnw
[2008/09/07 23:44:20] @ edwardam_ joined channel #puppet
[2008/09/07 23:46:17] @ Quit: edwardam: Read error: 104 (Connection reset by peer)
[2008/09/07 23:48:01] @ edwardam_ is now known as edwardam
[2008/09/07 23:52:39] @ edwardam_ joined channel #puppet
[2008/09/07 23:53:14] @ Quit: edwardam: Nick collision from services.
[2008/09/07 23:53:47] @ sigmonsays_ joined channel #puppet
[2008/09/07 23:55:11] @ edwardam_ is now known as edwardam
[2008/09/07 23:55:26] @ Quit: sigmonsays__: Read error: 110 (Connection timed out)

Generated by irclog2html.py 2.6 by Marius Gedminas - find it at mg.pov.lt!