====== 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