에이전트 클라이언트 수집기macOSJamf를 사용하여 대량 배포
Jamf 한 번에 여러 macOS 장치에 설치 에이전트 클라이언트 수집기 (ACC)하여 조직 전체에 일관된 배포를 촉진합니다.
시작하기 전에
- 에이전트 등록 키를 생성하고 절차에서 사용할 값을 검색합니다. 자세한 내용은 ACC 등록 키 생성 문서를 참조하십시오.
- 로컬 컴퓨터에 ACC를 설치합니다. 자세한 내용은 다음에 대한 DEX ACC 설치 macOS 문서를 참조하십시오.
필요한 역할: agent_client_collector_admin
이 태스크 정보
다음 절차에서는 를 사용하여 JamfACC를 대량 배포하는 방법을 설명합니다. 조직에 따라 ACC를 배포하는 방법이 다를 수 있습니다.
프로시저
-
설치 패키지를 다운로드합니다.
- 다음으로 이동 모두 > 에이전트 클라이언트 수집기 > 배포 > 에이전트 다운로드.
- 다운로드 섹션에서 macOS 칩 유형에 따라 적절한 패키지를 다운로드합니다.
-
설치 패키지를 Pro에 업로드합니다.Jamf
- Pro 인스턴스에서 Jamf 설정 > 패키지.
- 새로 만들기 버튼을 선택합니다.
- 패키지의 표시 이름을 제공합니다.
- 파일 이름에서 파일 찾아보기를 선택하고 패키지를 선택합니다.
- 저장을 선택합니다.
-
acc.yml 파일을 업데이트합니다.
- 로컬 설치 중에 생성된 acc.yml 파일을 데스크톱 위치에 복사합니다.
-
확인 connect-without-mid 이
true로 설정됩니다. - 인스턴스 URL이 정확한지 확인하고 등록 키를 삽입합니다.
-
false verify-plugin-signature
로 설정되었는지 확인합니다. - acc.yml 저장
-
터미널 명령줄을 사용하여 acc.yml 파일을 배포 패키지로 변환합니다.
- 바탕 화면에 yml_package_builder.sh 라는 파일을 만듭니다.
-
다음 스크립트를 yml_package_builder.sh 파일에 복사하고 저장합니다.
#!/bin/bash # === CONFIGURATION === PKG_NAME="acc-yml.pkg" INSTALL_PATH="/Library/Application Support/servicenow/agent-clientcollector" YML_SOURCE_PATH="$HOME/Desktop/acc.yml" # Assuming you have your yml file on the Desktop folder, change it if needed # === CREATE BUILD STRUCTURE === BUILD_DIR="$HOME/pkgbuild-yml" PAYLOAD_DIR="$BUILD_DIR/payload$INSTALL_PATH" # Clean previous build rm -rf "$BUILD_DIR" mkdir -p "$PAYLOAD_DIR" # Copy YAML file into package payload cp "$YML_SOURCE_PATH" "$PAYLOAD_DIR/" # === BUILD THE PACKAGE === pkgbuild \ --identifier "com.servicenow.acc.yml" \ --install-location "$INSTALL_PATH" \ --root "$BUILD_DIR/payload" \ "$HOME/Desktop/$PKG_NAME" echo "✅ .pkg created at: $HOME/Desktop/$PKG_NAME" -
터미널에서 sh yml_package_builder.sh 명령을 실행합니다.
주:수정된 acc.yml 파일과 yml_package_builder.sh 파일은 같은 위치(예: 데스크톱)에 저장해야 합니다.
파일 acc-yml.pkg 가 바탕 화면에 나타납니다. - 설치 패키지를 업로드한 것과 동일한 방식으로 yml 패키지를 Pro에 Jamf 업로드합니다.
-
Pro 인스턴스에서 Jamf 설치 후 스크립트를 만듭니다.
- 다음으로 이동 설정 > 스크립트.
- 새로 만들기 버튼을 선택합니다.
- 표시 이름을 입력하고 필요에 따라 양식을 작성합니다.
-
스크립트 탭에 다음 스크립트를 붙여 넣습니다.
# === 1. Create sudoers file === SUDOERS_FILE="/private/etc/sudoers.d/_servicenow" cat <<EOF > "$SUDOERS_FILE" # ServiceNow Agent Collector - Sudoers Configuration for macOS # Command alias for ServiceNow allowed commands # These commands can be executed by the _servicenow user with sudo privileges Cmnd_Alias SN_ALLOWED = /usr/bin/powermetrics, \ /usr/bin/mdls, \ /usr/bin/log, \ /usr/bin/log show *, \ /bin/kill, \ /usr/bin/defaults, \ /usr/local/bin/jamf, \ /bin/rm, \ /bin/ls, \ /usr/bin/pgrep, \ /usr/bin/find, \ /usr/bin/pmset, \ /usr/bin/open, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/app_freeze.sh, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/zscaler_zpa_reconnect.sh, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/clear_google_chrome_browsing_data.sh, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/services.sh, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/restart_service.sh *, \ /Applications/Zscaler/Zscaler.app/Contents/PlugIns/zscli, \ /Library/Application\ Support/servicenow/agent-client-collector/cache/acc-dex-modules/bin/scripts/sudo/elevate_temporary_admin.sh # ServiceNow user permissions # _servicenow user can run osqueryi and all SN_ALLOWED commands without password # SETENV allows environment variables to be preserved _servicenow ALL=NOPASSWD: SETENV: /Library/Application\ Support/servicenow/agent-client-collector/cache/osquery/bin/osqueryi *, SN_ALLOWED # Defaults for _servicenow user # !requiretty: Allow sudo without a TTY (required for automated scripts) Defaults:_servicenow !requiretty EOF chmod 440 "$SUDOERS_FILE" echo "[INFO] Sudoers file created at $SUDOERS_FILE" # === 2. Set permissions for the YAML file === YML_PATH="/Library/Application Support/servicenow/agent-clientcollector/ acc.yml" if [ -f "$YML_PATH" ]; then chmod 644 "$YML_PATH" echo "[INFO] Permissions set on acc.yml" else echo "[WARN] acc.yml not found at $YML_PATH" fi # === 3. Restart ACC service === PLIST="/Library/LaunchDaemons/com.sn.acc.plist" if [ -f "$PLIST" ]; then echo "[INFO] Stopping ACC service..." launchctl unload -w "$PLIST" 2>/dev/null sleep 2 echo "[INFO] Starting ACC service..." launchctl load -w "$PLIST" else echo "[ERROR] LaunchDaemon not found at $PLIST" fi - 저장을 선택합니다.
-
정책을 만들고 Jamf 생성된 패키지와 스크립트를 추가합니다.
- Pro 인스턴스에서 Jamf 인벤토리 > 정책.
- 새로 만들기 버튼을 선택합니다.
- 적절한 정책 이름, 트리거 및 빈도를 입력합니다.
- 범위에서 모든 대상 컴퓨터를 추가합니다.
-
다음으로 이동 패키지 > 구성 및 설치 및 acc-yml 패키지를 기록에 추가합니다.
주:작업에서 설치가 선택되어 있는지 확인하십시오.
-
다음으로 이동 스크립트 > 구성 을 클릭하고 기록에 설치 후 스크립트를 추가합니다.
주:우선순위에서이후가 선택되어 있는지 확인합니다.
- 저장을 선택합니다.
- 범위 탭에서 대상 컴퓨터와 대상 사용자를 추가합니다.
- 저장을 선택합니다.
-
배포 상태를 모니터링하려면 다음 중 하나를 수행합니다.
- Pro 인스턴스 대시보드에서 Jamf 배포 상태를 확인합니다.
- 다음으로 이동하여 에이전트 상태를 확인합니다. 모두 > 에이전트 클라이언트 수집기 > 에이전트.
- 엔드포인트 장치에서 로그 파일을 검토합니다. /Library/Application Support/servicenow/agent-client-collector/log/acc.log.