다수의 ESXi 호스트가 포함된 환경에서는 스크립트를 사용한 호스트 관리가 vSphere Client에서 호스트를 관리하는 것보다 빠르고 오류 발생률이 낮습니다.

vSphere에는 ESXi 호스트 관리를 위한 스크립팅 언어가 포함되어 있습니다. VMware PowerCLI는 vSphere API에 대한 Windows PowerShell 인터페이스이며 vSphere 구성 요소를 관리하기 위한 PowerShell cmdlet을 포함합니다. ESXCLI에는 ESXi 호스트 및 가상 시스템 관리를 위한 명령 집합이 포함되어 있습니다. 참조 정보 및 프로그래밍 팁은 https://developer.vmware.com을 참조하십시오. vSphere 관리자 설명서는 관리를 위한 vSphere Client 사용을 중점적으로 다룹니다.

vSphere Automation SDK for Python과 같은 vSphere Automation SDK에 대한 스크립팅 인터페이스 중 하나를 사용할 수도 있습니다.

프로시저

  1. 제한된 권한을 가진 사용자 지정 역할을 생성합니다.
    vCenter Server 사용자 지정 역할 생성의 내용을 참조하십시오.
    예를 들어 호스트 관리를 위한 권한 집합을 가지고 있지만 가상 시스템, 스토리지 또는 네트워킹 관리를 위한 권한을 가지고 있지 않은 역할을 생성하는 것을 고려합니다. 사용할 스크립트가 정보를 추출하기만 하는 경우 호스트에 대한 읽기 전용 권한을 가진 역할을 생성할 수 있습니다.
  2. vSphere Client에서 서비스 계정을 생성하고 사용자 지정 역할에 할당합니다.
    특정 호스트에 대한 액세스 권한을 매우 제한하고자 하는 경우 각기 다른 수준의 액세스 권한을 가진 여러 사용자 지정 역할을 생성할 수 있습니다.
  3. 매개 변수 검사 또는 수정을 수행하는 스크립트를 작성한 후 실행합니다.
    예를 들어 다음과 같이 호스트의 셸 대화형 시간 초과를 검사하거나 설정할 수 있습니다.
    언어 명령
    ESXCLI
    esxcli <conn_options> system settings advanced get /UserVars/ESXiShellTimeOut
    esxcli --formatter=csv --format-param=fields="Path,Int Value" 
    system settings advanced list | grep /UserVars/ESXiShellTimeOut
    PowerCLI
    #List UserVars.ESXiShellInteractiveTimeOut for each host
    Get-VMHost | Select Name,
     @{N="UserVars.ESXiShellInteractiveTimeOut";E={$_ 
    | Get-AdvancedSetting -Name UserVars.ESXiShellInteractiveTimeOut
    | Select -ExpandProperty Value}}
    
    # Set UserVars.ESXiShellTimeOut to 900 on all hosts
    Get-VMHost 
    | Foreach { Get-AdvancedSetting -Entity $_ -Name UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900 }
    
  4. 대규모 환경에서 각기 다른 액세스 권한을 가진 역할을 생성하고 수행할 작업에 따라 호스트를 폴더로 그룹화합니다. 그런 다음 다양한 서비스 계정에서 다른 폴더를 통해 스크립트를 실행합니다.
  5. 명령을 실행한 후에 발생한 변경 내용을 확인합니다.