On Dec 22, 2008, at 11:59 AM, Nigel Kersten wrote:

>
>
> On Mon, Dec 22, 2008 at 9:47 AM, Carl Caum <carl.c...@gmail.com>  
> wrote:
>
> On Dec 22, 2008, at 11:42 AM, Nigel Kersten wrote:
>
>>
>>
>> On Mon, Dec 22, 2008 at 9:28 AM, Carl Caum <carl.c...@gmail.com>  
>> wrote:
>> Most plist management can be done with the defaults command.  It  
>> means we exec out everytime, but we could write a definition/plugin  
>> around it.
>>
>> It also has the sometimes undesirable side effect of converting all  
>> your xml1 property lists to binary format.
>>
>> We tend to use PlistBuddy here for this reason.
>>
>
> Not that it's a great solution, but you can force it to be xml1 with  
> this:
> plutil -convert xml1 /Library/Preferences/DirectoryService/ 
> DirectoryService.plist
> It has to be run after every write to be absolutely sure.  But I  
> have to ask, why would you care if you use the defaults command  
> every time for reading and writing?
>
> Because sometimes we have other tools that use one of the various  
> plist modules for Ruby/Python etc that require the xml1 format, and  
> some of those tools aren't running with elevated privileges, and  
> can't always convert a plist to xml.
>
> We're slowly moving things over to using the BridgeSupport in Ruby/ 
> Python where you can instantiate an NSDictionary from a binary or  
> xml plist instead, but that's only available in 10.5 by default.
>
>
>
>
>>
>> I'm having trouble getting puppet to run on OS X.  I installed  
>> 0.24.7 on my OS X server VM using gems.  After signing the  
>> certificate on the puppetmaster side, I get this on the client side:
>>
>> 2008-12-22 11:25:35.796 system_profiler[6552:10b] Exception while  
>> calling [SPPlatformReporter updateDictionary:]
>> *** -[NSCFArray objectAtIndex:]: index (3) beyond bounds (2)
>> err: Could not retrieve catalog: undefined method `[]' for  
>> nil:NilClass
>>
>> I've never seen that... do you get the same bug using the packages  
>> at:
>>
>> http://explanatorygap.net/puppetfacter/
>>
>> ?
> I'll try them and report back
>

VMWare doesn't report hardware to the system profiler.  It's VMWare/ 
Apple's bug.  Thanks to nigelk in IRC for figuring it out.

>
>>
>> Any ideas?
>> On Dec 19, 2008, at 11:16 PM, Crawford Kyle wrote:
>>
>>>
>>> On Dec 19, 2008, at 10:48 PM, Nigel Kersten wrote:
>>>
>>>>
>>>>
>>>> On Fri, Dec 19, 2008 at 7:23 PM, Crawford Kyle  
>>>> <kcrw...@gmail.com> wrote:
>>>>
>>>> On Dec 19, 2008, at 7:55 PM, Nigel Kersten wrote:
>>>>>
>>>>> On Fri, Dec 19, 2008 at 2:29 PM, Carl Caum <carl.c...@gmail.com>  
>>>>> wrote:
>>>>>
>>>>> Does anyone know how to go about joining Mac OS X Leopard to an  
>>>>> Active
>>>>> Directory domain with puppet?
>>>>> Primarily it needs to be broken down in to doing LDAP  
>>>>> authentication
>>>>> with a few attribute mappings and using kerberos for the password
>>>>> authentication.
>>>>>
>>>>> You're going to want to push out your DS preferences and then do  
>>>>> an exec for the joining of the machine account I imagine,  
>>>>> although you could do some of this with templates.....
>>>>>
>>>>> How were you doing this before Puppet?
>>>>>
>>>>> There are no native types now, because those of us doing the Mac  
>>>>> stuff with Puppet don't work in AD environments :)
>>>>>
>>>>> I'm more than happy to spend time helping you work through this  
>>>>> though Carl. I'm reasonably familiar with AD integration even  
>>>>> though we don't do it here.
>>>>>
>>>>> This would be a great recipe to get up on the Puppet wiki.
>>>>
>>>> We are in a large AD environment using Puppet. We currently  
>>>> handle the AD joining outside of Puppet with a python script in a  
>>>> launchd job that runs at first boot, though we will probably be  
>>>> moving this to Puppet.
>>>>
>>>> The typical steps are:
>>>> Make sure time server is set and time is set correctly   
>>>> ( ntpd.conf or exec systemsetup )
>>>> Activate AD plugin by enabling it in DirectoryService.plist.   
>>>> ( just a simple key value but I think you need to restart  
>>>> DirectoryService for it to notice )
>>>> Configure AD plugin using dsconfigad options.  ( this can take a  
>>>> lot of options  all of these just change key values in  
>>>> ActiveDirectory.plist )
>>>> Join to domain using dsconfigad with a limited AD account and  
>>>> password with permissions to add machines to your OU.  ( this  
>>>> would need to exec the dsconfigad command with username,  
>>>> password, OU, machine join name.  Unfortunately the password is  
>>>> passed to dsconfigad in clear text as a parameter )
>>>> Set the authentication search path to Custom, and include your AD  
>>>> domain node using dscl.  ( dscl exec )
>>>>
>>>> We do manage the time server with Puppet and setting a couple of  
>>>> mapping attributes in the AD plists.
>>>>
>>>> I'm happy to help you get this all working in Puppet as well.
>>>>
>>>> oh cool. I didn't realize you were doing AD integration Kyle.
>>>>
>>>> How are you ensuring that AD continues to be configured on the  
>>>> clients? Does the python launchd job do all of this? Or are you  
>>>> managing some components as Puppet resources?
>>>>
>>>> I've been thinking for a while about how to mange  
>>>> DirectoryService nodes as native Puppet types, but there are so  
>>>> many attributes to think about I'm not sure it actually  
>>>> simplifies matters all that much...
>>>
>>> Yes, I've done a lot of AD integration work. The python script I  
>>> wrote tests the configuration and scenarios related to AD Node  
>>> status and takes action if necessary.  The only part in Puppet so  
>>> far is management of a couple AD plist keys.
>>>
>>> Agreed, DirectoryService node configuration can get complex.   
>>> There may be lower hanging fruit like improved plist management  
>>> that would help in all areas including DirectoryService.
>>>
>>> Kyle
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>> -- 
>> Nigel Kersten
>> Systems Administrator
>> Tech Lead - MacOps
>>
>>
>>
>
>
>
>
>
>
> -- 
> Nigel Kersten
> Systems Administrator
> Tech Lead - MacOps
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to