| [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!