Jamf Pro에서 Rosetta2 설치

초기 설정 시


MacOS 장치의 초기 설정JAMF-Enrollment-Kickstart에서 사용되며, 처음 설치된 데몬이 .pkg에서 산발되어 M1을 설치한 Mac에서 정상적으로 작동하지 않습니다.
Rosetta2를 설치하면 해결할 수 있지만 pkg을 설치해야 합니다. 그리고 이 pkg의 설치는 JAMF-Enrollment-Kickstart가 완성되기 전에 반복적으로 실행됩니다.
CPU의 구조와 설치 여부에 따라 초기 설정된 정책을 구분하는 것은 스마트하지 않기 때문에 Pkg 파일을 설치하는 정책을 실행하기 전에
  • CPU 아키텍처 판별
  • Rosetta2가 설치되어 있는지 확인
  • 아키텍처는arm64이고 Rosetta2를 설치하지 않은 상태에서 Rosetta2
  • 를 설치한다.
    나는 이런 각본을 집행하고 싶다.
    제가 직접 쓰려고 했는데 Jamf Nation에 직접 스크립트 투고가 있어서 썼어요.
    https://community.jamf.com/t5/jamf-pro/deploy-rosetta-on-m1-machines-before-everything-else/m-p/223539/highlight/true#M211948
    #!/bin/bash
    
    # Installs Rosetta as needed on Apple Silicon Macs.
    
    exitcode=0
    
    # Determine OS version
    # Save current IFS state
    
    OLDIFS=$IFS
    
    IFS='.' read osvers_major osvers_minor osvers_dot_version <<< "$(/usr/bin/sw_vers -productVersion)"
    
    # restore IFS to previous state
    
    IFS=$OLDIFS
    
    # Check to see if the Mac is reporting itself as running macOS 11
    
    if [[ ${osvers_major} -ge 11 ]]; then
    
      # Check to see if the Mac needs Rosetta installed by testing the processor
    
      processor=$(/usr/sbin/sysctl -n machdep.cpu.brand_string | grep -o "Intel")
    
      if [[ -n "$processor" ]]; then
        echo "$processor processor installed. No need to install Rosetta."
      else
    
        # Check Rosetta LaunchDaemon. If no LaunchDaemon is found,
        # perform a non-interactive install of Rosetta.
    
        if [[ ! -f "/Library/Apple/System/Library/LaunchDaemons/com.apple.oahd.plist" ]]; then
            /usr/sbin/softwareupdate --install-rosetta --agree-to-license
    
            if [[ $? -eq 0 ]]; then
                echo "Rosetta has been successfully installed."
            else
                echo "Rosetta installation failed!"
                exitcode=1
            fi
    
        else
            echo "Rosetta is already installed. Nothing to do."
        fi
      fi
      else
        echo "Mac is running macOS $osvers_major.$osvers_minor.$osvers_dot_version."
        echo "No need to install Rosetta on this version of macOS."
    fi
    
    exit $exitcodeho "Unknown Architecture"
    fi
    
    JAMF-Enrollment Kickstart를 설치한 Pkg 정책의 스크립트 페이로드에서 우선순위를 Before로 등록합니다.

    MacOS를 업데이트할 때


    맥OS Big Sur를 업데이트하면 로셋타2가 이런 방법을 없앴다고 한다.
    이전 스크립트 투고의 같은 주제에서arm64로 구성되었고Rosetta2에 설치되지 않은 맥의 확장 속성이 사서함에 있습니다.
    https://www.jamf.com/jamf-nation/discussions/37357/deploy-rosetta-on-m1-machines-before-everything-else#:~:text=%23!/bin/bash ​ %3A << DOC,result>%24result</result>"
    #!/bin/bash: << DOC
    EA to determine whether Rosetta is installed. 
    Possible results:
    "installed"    - arm64 Mac - Rosetta is installed
    "missing"      - arm64 Mac - Rosetta is not installed
    "ineligible" - Intel Mac - Rosetta cannot be installed
    DOC# is this an ARM Mac?
    arch=$(/usr/bin/arch)
    if [ "$arch" == "arm64" ]; then
        # is rosetta 2 installed?
        if [[ -f "/Library/Apple/System/Library/LaunchDaemons/com.apple.oahd.plist" ]]; then
            result="installed"
        else
            result="missing"
        fi
    else
        result="ineligible"
    fiecho "<result>$result</result>"
    
    이 확장 속성이 missing인 Mac에 대해 방금 스크립트를 실행하면 Rosetta2를 다시 설치합니다.

    좋은 웹페이지 즐겨찾기