init-setup.sh 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. set -euo pipefail
  3. # Copyright (c) Contributors to the Open 3D Engine Project.
  4. # For complete copyright and license terms please see the LICENSE at the root of this distribution.
  5. #
  6. # SPDX-License-Identifier: Apache-2.0 OR MIT
  7. #
  8. BUILD_USER=$(aws ssm get-parameters --names "shared.builderuser" --region $region --with-decryption | ConvertFrom-Json)
  9. BUILD_PASS=$(aws ssm get-parameters --names "shared.builderpass" --region $region --with-decryption | ConvertFrom-Json)
  10. echo "Setting up ${BUILD_USER} as autologin admin"
  11. sudo sysadminctl -addUser "${BUILD_USER}" -fullName "${BUILD_USER}" -password "${BUILD_PASS}" -admin
  12. sudo echo "${BUILD_USER} ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/${BUILD_USER}
  13. sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "${BUILD_USER}"
  14. echo "Change ownership for brew to ${BUILD_USER}"
  15. sudo chown -R "${BUILD_USER}":admin $(brew --prefix)/*
  16. echo "Configure SSH"
  17. mkdir /Users/"${BUILD_USER}"/.ssh
  18. echo "PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin" > /Users/"${BUILD_USER}"/.ssh/environment
  19. sudo sed -i -e 's/#PermitUserEnvironment no/PermitUserEnvironment yes/g' /etc/ssh/sshd_config
  20. sudo launchctl stop com.openssh.sshd && sudo launchctl start com.openssh.sshd
  21. echo "Expanding root volume to EBS configurated size"
  22. PDISK=$(diskutil list physical external | head -n1 | cut -d" " -f1)
  23. APFSCONT=$(diskutil list physical external | grep "Apple_APFS" | tr -s " " | cut -d" " -f8)
  24. yes | sudo diskutil repairDisk ${PDISK}
  25. sudo diskutil apfs resizeContainer ${APFSCONT} 0
  26. echo "Removing hibernate and sleep image"
  27. sudo pmset hibernatemode 0
  28. sudo rm -f /var/vm/sleepimage
  29. echo "Disable screensaver and sleep modes"
  30. macUUID=$(ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62)
  31. rm -rf /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.${macUUID}.plist
  32. rm -rf /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.${macUUID}.plist
  33. rm -rf /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.plist
  34. rm -rf /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.plist
  35. defaults write /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.${macUUID}.plist idleTime -string 0
  36. defaults write /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.${macUUID}.plist CleanExit "YES"
  37. defaults write /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.${macUUID}.plist idleTime -string 0
  38. defaults write /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.${macUUID}.plist CleanExit "YES"
  39. defaults write /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.plist idleTime -string 0
  40. defaults write /Users/"${BUILD_USER}"/Library/Preferences/com.apple.screensaver.plist CleanExit "YES"
  41. defaults write /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.plist idleTime -string 0
  42. defaults write /Users/"${BUILD_USER}"/Library/Preferences/ByHost/com.apple.screensaver.plist CleanExit "YES"
  43. chown -R "${BUILD_USER}":staff /Users/"${BUILD_USER}"/Library/Preferences/ByHost/
  44. chown -R "${BUILD_USER}":staff /Users/"${BUILD_USER}"/Library/Preferences/
  45. killall cfprefsd
  46. # Set values to 0, to prevent sleep at all
  47. pmset -a displaysleep 0 sleep 0 disksleep 0
  48. echo "Disable automatic updates"
  49. sudo softwareupdate --schedule off
  50. defaults write com.apple.SoftwareUpdate AutomaticDownload -int 0
  51. defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 0
  52. defaults write com.apple.commerce AutoUpdate -bool false
  53. defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool false
  54. echo "Additional NTP servers adding into /etc/ntp.conf file"
  55. cat > /etc/ntp.conf << EOF
  56. server 0.pool.ntp.org
  57. server 1.pool.ntp.org
  58. server 2.pool.ntp.org
  59. server 3.pool.ntp.org
  60. server time.apple.com
  61. server time.windows.com
  62. EOF
  63. # Set the timezone to UTC.
  64. echo "Setting timezone to UTC"
  65. ln -sf /usr/share/zoneinfo/UTC /etc/localtime