Computers and Groups From the Command Line

I have two scripts that work to create a computer record for “localhost” and one to shift it into a group.

first - create the computer record

#!/bin/bash

sudo dscl /Local/Default -create /Computers/localhost
sudo dscl /Local/Default -create /Computers/localhost RealName localhost
sudo dscl /Local/Default -create /Computers/localhost GeneratedUUID $(uuidgen)
sudo dscl /Local/Default -create /Computers/localhost ENetAddress $(ifconfig en0 |grep ether | awk '{print $2}')
sudo dscl /Local/Default -create /Computers/localhost IPAddress 127.0.0.1

Now put it into a computer group (which must already exist, but you can ship an image with all the groups made and empty or build them in with puppet.)

#!/bin/bash
# Add to the test ComputerGroup
thisGUID="$(dscl /Local/Default -read /Computers/localhost GeneratedUID | awk '{ print $2 }')"
sudo dscl /Local/Default -merge "/ComputerGroups/test" GroupMembers "$thisGUID"
sudo dscl /Local/Default -merge "/ComputerGroups/test" Computers localhost
sudo dscl /Local/Default -merge "/ComputerGroups/test" GroupMembership localhost