Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- . /usr/share/fog/lib/funcs.sh
- . /bin/fog.donate
- clearScreen
- displayBanner
- disks=""
- disk=""
- hd=""
- getHardDisk
- sysman=""
- sysman64=""
- sysproduct=""
- sysproduct64=""
- sysversion=""
- sysversion64=""
- sysserial=""
- systype=""
- biosversion=""
- biosvendor=""
- biosdate=""
- mbman=""
- mbproductname=""
- mbversion=""
- mbserial=""
- mbasset=""
- cpuman=""
- cpuversion=""
- cpucurrent=""
- cpumax=""
- mem=""
- hdinfo=""
- caseman=""
- casever=""
- caseserial=""
- casesasset=""
- sysserial64=""
- systype64=""
- biosversion64=""
- biosvendor64=""
- biosdate64=""
- mbman64=""
- mbproductname64=""
- mbversion64=""
- mbserial64=""
- mbasset64=""
- cpuman64=""
- cpuversion64=""
- cpucurrent64=""
- cpumax64=""
- mem64=""
- hdinfo64=""
- caseman64=""
- casever64=""
- caseserial64=""
- casesasset64=""
- dots "Using disk device"
- echo $hd
- echo " * Starting host registration"
- mac=$(getMACAddresses | base64)
- exists=$(wget --post-data="mac=$mac" -qO - http://${web}service/man.hostexists.php 2>/dev/null)
- checkAndSet() {
- local testvar="$1"
- local onlynum="$2"
- [[ -z $testvar ]] && return
- if [[ $onlynum =~ [Tt][Rr][Uu][Ee] && $testvar =~ ^[0-9]+$ ]]; then
- echo $testvar | base64
- elif [[ $testvar =~ ^[0-9,]+$ ]]; then
- echo $testvar | base64
- else
- return
- fi
- }
- setIDs() {
- local varVar="$1"
- local str="$2"
- local csvstyle="$3"
- local dummy="$4"
- local max="$5"
- local res=""
- local url=""
- local oIFS=$IFS
- local line=""
- while [[ -z ${!varVar} ]]; do
- [[ $csvstyle =~ [Tt][Rr][Uu][Ee] ]] && echo -n " Enter the $str IDs separated with , to associate with computer (? for listing): " || echo -n " Enter the $str ID to associate with computer (? for listing): "
- read dummy
- dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
- case $dummy in
- [?])
- url="http://${web}service/${str}listing.php"
- clearScreen
- res=$(echo -e $(wget -qO - $url 2>/dev/null))
- i=0
- IFS=$'\n'
- for line in $res; do
- let i+=1
- echo $line
- if [[ $i -eq $max ]]; then
- [[ $csvstyle =~ [Tt][Rr][Uu][Ee] ]] && echo -n " Press [Enter] to proceed or enter the $str IDs separated with , to associate with computer: " || echo -n " Press [Enter] to proceed or enter the $str ID to associate with computer: "
- read dummy
- case $dummy in
- [?]|"")
- i=0
- clearScreen
- continue
- ;;
- esac
- case $csvstyle in
- [Tt][Rr][Uu][Ee])
- [[ $dummy =~ ^[0-9,]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy) || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
- break
- ;;
- *)
- [[ $dummy =~ ^[0-9]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy "true") || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
- break
- ;;
- esac
- i=0
- dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
- clearScreen
- fi
- done
- ;;
- ""|0)
- printf -v "$varVar" 0
- ;;
- *)
- dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
- [[ -z $dummy ]] && setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
- case $csvstyle in
- [Tt][Rr][Uu][Ee])
- [[ $dummy =~ ^[0-9,]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy) || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
- ;;
- *)
- [[ $dummy =~ ^[0-9]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy "true") || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
- ;;
- esac
- ;;
- esac
- done
- IFS=$oIFS
- }
- [[ $exists != "#!ok" ]] && handleError "Unable to register host: $exists ($0)\n Args Passed: $*"
- host=""
- ip=""
- productKey=""
- imageid=""
- primaryuser=""
- other1=""
- other2=""
- blImage=""
- blDoAddGroup=""
- blDoAddSnapin=""
- keyEnter=""
- blDoAD=""
- res=""
- while [[ $res != "#!ok" ]]; do
- echo -n " * Enter hostname for this computer: "
- read host
- if [[ ${#host} -gt 15 ]]; then
- host=${host:0:15}
- echo " | Truncated to 15 characters: $host"
- usleep 2000000
- fi
- host=$(echo $host | base64)
- res=$(wget --post-data="host=$host" -qO - http://${web}service/hostnameloop.php 2>/dev/null)
- [[ $res != "#!ok" ]] && echo "$res"
- done
- imageid=""
- setIDs "imageid" "image" "" "" 20
- if [[ $(wget -qO - http://${web}service/locationcheck.php 2>/dev/null) == "##" ]]; then
- while [[ -z $askme ]]; do
- echo -n " Would you like to assign a location for this host? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- setIDs "locationid" "location" "" "" 20
- location64=$locationid
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- fi
- askme=""
- while [[ -z $askme ]]; do
- echo -n " Would you like to associate this host with groups? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- setIDs "groupid" "group" "true" "" 20
- group64=$groupid
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- askme=""
- while [[ -z $askme ]]; do
- echo -n " Would you like to associate this host with snapins? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- setIDs "snapinid" "snapin" "true" "" 20
- snapin64=$snapinid
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- askme=""
- while [[ -z $askme ]]; do
- echo -n " Would you like to associate a product key to this host? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- echo -n " * Enter the product key for this computer: "
- read productKey
- productKey=$(echo $productKey | base64)
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- askme=""
- while [[ -z $askme ]]; do
- echo -n " Would you like this host to join a domain, (using default settings)? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- blDoAD=$(echo -n 1 | base64)
- askme="Y"
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- echo -n " * Enter the primary user for this computer: "
- read primaryuser
- primaryuser=$(echo $primaryuser | base64)
- echo -n " * Enter the other tag #1 for this computer: "
- read other1
- other1=$(echo $other1 | base64)
- echo -n " * Enter the other tag #2 for this computer: "
- read other2
- other2=$(echo $other2 | base64)
- echo " * You entered all required information, "
- askme=""
- while [[ -z $askme ]]; do
- echo -n " Would you like to image this computer now? (y/N) "
- read askme
- case $askme in
- [Nn]|[Nn][Oo]|"")
- askme="N"
- ;;
- [Yy]|[Yy][Ee][Ss])
- tmp=""
- ret=""
- retry=3
- while [[ $ret != "#!ok" && ! $retry -eq 0 ]]; do
- echo " * Enter FOG GUI Username and Password"
- echo -n " Username: "
- read username
- echo -n " Password: "
- read -s password
- user64=$(echo $username | tr -d '\012' | base64)
- pass64=$(echo $password | tr -d '\012' | base64)
- ret=$(wget --post-data="mac=$mac&username=$user64&password=$pass64" -qO - http://${web}service/checkcredentials.php 2>/dev/null)
- case $ret in
- '#!ok')
- echo " * This host will reboot and imaging will start!"
- ret=$tmp
- realdoimage=$(echo -n 1 | base64)
- break
- ;;
- '#!il')
- echo " * Error: Invalid Login! ($retry remaining)"
- let retry-=1
- ;;
- esac
- done
- askme="Y"
- ;;
- *)
- askme=""
- echo " * Invalid input, please try again"
- ;;
- esac
- done
- dots "Attempting to register host"
- res=""
- while [[ -z $res ]]; do
- res=$(wget --post-data="mac=$mac&advanced=$(echo -n 1 | base64)&host=$host&imageid=$imageid&primaryuser=$primaryuser&other1=$other1&other2=$other2&doimage=$realdoimage&doad=$blDoAD&location=$location64&username=$user64&groupid=$group64&snapinid=$snapin64&productKey=$productKey" -qO - http://${web}service/auto.register.php 2>/dev/null)
- echo "$res"
- usleep 2000000
- done
- . /bin/fog.inventory
- usleep 2000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement