Nieuwe server uitrollen met Satellite 6

By | 12 mei 2015

Voor het uitrollen van een nieuwe server middels hammer zijn een aantal parameters nodig:

  • environment-id
  • architecture-id
  • domain-id
  • operatingsystem-id
  • partition-table-id

Er dient al een hostgroup aangemaakt te zijn, dat kan via hammer of de WebGUI. Exporteer de benodige settings, voorbeeld:


    export ORG_NAME=Datacenter
    export ORG_LOCATION=Amsterdam
    export ORG_ID=$(hammer --csv organization list --search "${ORG_NAME}"| awk -F, 'FNR == 2 {print $1}')
    export LOCATION_ID=$(hammer --csv location list --search "${ORG_LOCATION}" | awk -F, 'FNR == 2 {print $1}')

    export HOSTGROUP_NAME='rhel-6-x86_64-test'
    export HOSTGROUP_ID=$(hammer --csv hostgroup list --search "name = \"${HOSTGROUP_NAME}\""| awk -F, 'NR==2 {print $1}')

    export DOMAIN_NAME='example.com'
    export HOST_SHORTNAME="test-103"
    export HOST_FQDN="${HOST_SHORTNAME}.${DOMAIN_NAME}"
    export HOST_MAC='52:55:00:54:0b:e1'
    export ROOT_PWD='12345678FOOD'

Nu dit gebeurd is kan hammer worden aangeroepen om de host aan te maken:

     hammer host create --ask-root-password false --build false --hostgroup-id ${HOSTGROUP_ID} --mac ${HOST_MAC} --name "${HOST_SHORTNAME}" --root-password ${ROOT_PWD}

Als de host aangemaakt is moet deze nog gekoppeld worden aan een organistatie en locatie (organization en location). Deze info kunnen we niet via hammer opvragen en gebruiken hier de API voor:

     export HOST_ID=$(hammer host list | grep "${HOST_SHORTNAME}" | awk '{print $1}')

     json_file=$(mktemp)
     cat > ${json_file} <<EOF
     {"organization_id":"$ORG_ID","location_id":"$LOCATION_ID"}
     EOF

     curl -X PUT -k -u admin:securepassword -H 'Content-Type: application/json' -d @${json_file} https://localhost/api/hosts/${HOST_ID}