Salt Project는 이벤트 기반 IT 자동화, 원격 작업 실행 및 구성 관리를 위한 Python 기반 오픈 소스 소프트웨어입니다.

Salt에 대한 자세한 내용은 Salt 사용자 가이드를 참조하십시오.

Salt를 사용하려면 게스트에 salt-minion을 배포해야 합니다. Salt 특정 게스트 변수는 VM별로 호스트 측에 설정되고 이후에 게스트 내부의 VMware Tools에서 읽습니다. 그런 다음, VMware Tools는 Salt 번들을 다운로드하고 게스트 내에서 salt-minion 인스턴스를 작동합니다.

사전 요구 사항

  • 64비트 OS만 지원합니다.
  • Windows의 경우 Windows 8 이상 버전이 지원됩니다.
    참고: Windows 2008R2는 지원되지 않습니다.
  • VMware Tools는 Salt Minion 기능과 함께 설치해야 합니다. 기본적으로 이 기능은 사용하도록 설정되어 있습니다.
  • Linux에서 설치된 패키지에 대한 종속성이 있습니다(예: curl 및 wget).

프로시저

  • 게스트 변수를 사용하는 VM별 호스트 측 구성
    호스트 관리자는 VIM API 또는 vSphere/VC UI를 사용하여 특정 VM에 대한 호스트 측의 모든 게스트 변수 설정을 관리합니다.
      • Windows:

        VMware Tools Salt Minion 기능이 기본적으로 설치되며 사용자 지정 설치에서 수정할 수 있습니다.

        VMware Tools가 특정 VM에서 salt-minion 인스턴스를 생성하고 salt-master에 연결하려면 호스트 관리자가 해당 VM에 대한 게스트 변수를 구성하고 설정해야 합니다.

        vSphere 호스트 UI에서 특정 VM을 선택하고 마우스 오른쪽 버튼을 클릭하여 설정을 편집합니다. [VM 옵션] 탭에서 고급 > 구성 편집 > 매개 변수 추가/삭제를 선택하고

        • guestinfo./vmware.components.salt_minion.desiredstate를 present로 설정합니다.
        • guestinfo./vmware.components.salt_minion.args<VMware Tools salt-minion 설정 스크립트에 대한 사용자 지정 인수>로 설정합니다.

        예를 들면 다음과 같습니다.

        guestinfo./vmware.components.salt_minion.desiredstate → present

        guestinfo./vmware.components.salt_minion.args → master=1.2.3.4

      • Linux:
        호스트 관리자는 open-vm-tools 및 open-vm-tools-salt-minion을 설치한 후 특정 VM에 대한 게스트 변수를 다음과 같이 설정해야 합니다.
        • guestinfo./vmware.components.salt_minion.desiredstate를 present로 설정합니다.
        • guestinfo./vmware.components.salt_minion.args<VMware Tools salt-minion 설정 스크립트에 대한 사용자 지정 인수>로 설정합니다.

        예를 들면 다음과 같습니다.

        guestinfo./vmware.components.salt_minion.desiredstate → present

        guestinfo./vmware.components.salt_minion.args → master=1.2.3.4 id=12345

    • Salt-minion 제거

      Windows 또는 Linux에서 호스트 관리자가 게스트 변수 guestinfo./vmware.components.salt_minion.desiredstate를 absent로 설정하면 VMware Tools에서 게스트 VM의 salt-minion 인스턴스를 제거합니다.

      예를 들면 다음과 같습니다.

      guestinfo./vmware.components.salt_minion.desiredstate → absent

    • 게스트 내에서 salt-minion의 최신 상태 확인

      vSphere UI의 게스트 내에서 salt-minion의 최신 상태를 확인하려면 다음 게스트 변수를 사용합니다.

      guestinfo.vmware.components.salt_minion.laststatus를 사용합니다.

  • tools.conf를 사용한 게스트 측 구성

    tools.conf 파일에는 VMware Tools에 대한 구성이 .ini 형식으로 포함되어 있습니다. 이 도구는 salt_minion 섹션을 찾고 해당 섹션 아래에 정의된 구성을 사용합니다. 이 파일은 다음 위치에 저장됩니다.

    Windows - C:\ProgramData\VMware\VMware Tools\tools.conf

    Linux - /etc/vmware-tools/tools.conf

    다음은 tools.conf에 정의된 salt_minion 섹션의 예입니다.

    [salt_minion]
    master=1.2.3.4
    conf_file=/etc/salt/minion
    id=dev_minion
    참고: tools.conf에서 minion 구성 옵션만 사용할 수 있습니다. 원하는 스크립트 작업을 tools.conf에서 가져올 수 없습니다.
    • 게스트 변수의 상태 변경을 모니터링하도록 간격 구성:

      VMware Tools는 상태 변경에 대해 게스트 변수를 주기적으로 폴링합니다. 기본 poll-inteval은 180s이며 tools.conf 설정에서 구성할 수 있습니다.

      "[componentmgr]"

      "poll-interval=180" (기본값: 180초)

    • 구성 요소 사용 및 사용 안 함(salt_minion):
      • 게스트 관리자는 tools.conf 설정을 구성하여 salt_minion을 사용하도록 설정할 수 있습니다.

        "[componentmgr]"

        "included=salt_minion"

      • 게스트 관리자는 tools.conf 설정을 구성하여 모든 구성 요소를 사용하도록 설정할 수 있습니다.

        "[componentmgr]"

        "included=all" (기본 구성)

      • 게스트 관리자는 tools.conf 설정을 구성하여 모든 구성 요소를 사용하지 않도록 설정할 수 있습니다.

        "[componentmgr]"

        "included=none"
  • 설치 스크립트를 사용하여 salt-minion 설치
      • Linux 환경
        Linux 시스템에서 설치 스크립트 svtminion.sh는 다음과 같은 사전 요구 사항이 있는 bash 스크립트입니다.
        • - systemctl
        • - curl
        • - sha512sum
        • - vmtoolsd
        • - grep
        • - awk
        • - sed
        • - cut
        • - wget

        svtminion.sh --help는 명령줄 옵션을 보여 줍니다.

        사용법:
        ./svtminion.sh [-c|--clear] [-d|--depend] [-h|--help] [-i|--install] 
         [-j|--source] [-l|--loglevel] [-m|--minionversion]
        [-r|--remove] [-s|--status] [-v|--version]

        여기서 ./svtminion.sh [-j|--source]는 Salt Minion을 설치할 위치를 지정합니다. 기본값은 repo.saltproject.io 위치입니다.

        예: URL 위치

        http://my_web_server.com/my_salt_onedir

        https://my_web_server.com/my_salt_onedir

        file:////my_path/my_salt_onedir

        //my_path/my_salt_onedir

        참고: Salt Minion의 특정 버전([-m|--minionversion])이 지정된 경우 소스에 추가됩니다. 기본 버전은 최신 버전입니다.

        다음은 tools.conf에 정의된 대로 salt_minion을 설치하는 예입니다.

        [salt_minion]
        master=1.2.3.4
        conf_file=/etc/salt/minion
        id=dev_minion
        source=https://my_web_server.com/my_salt_onedir
        참고: salt에 대한 표준 저장소 위치의 개인 복제본에서 설치하는 경우 source=https://repo.saltproject.io/salt/vmware-tools-onedir/을 사용합니다.
      • Windows 환경

        Windows 시스템에서 설치 스크립트 svtminion.ps1은 powershell 스크립트입니다. Windows에 대한 유일한 사전 요구 사항은 게스트 변수 데이터를 쿼리하는 데 사용되는 'vmtoolsd.exe' 바이너리입니다.

        이 스크립트에 대한 도움말을 보려면 svtminion.ps1 -h 또는 Get-Help svtminion.ps1 명령을 실행합니다.

        Windows 게스트에서 Salt minion을 관리하기 위한 VMware Tools 스크립트는 다음과 같습니다.
        .\svtminion.ps1 [-Install] [-MinionVersion <String>] [-Source <String>] [[-ConfigOptions] <String[]>] [-LogLevel <String>] [-Help] [-Version] [<CommonParameters>]

        여기서 -Source <String>은 설치 관리자가 포함된 저장소의 URL 또는 경로입니다.

        여기에는 기본 위치 https://repo.saltproject.io/salt/vmware-tools-onedir/에 있는 것과 유사한 디렉토리 구조가 포함됩니다. http, https, ftp, unc, local과 같은 가장 일반적인 프로토콜을 처리할 수 있습니다.

        예를 들면 다음과 같습니다.

        PS>svtminion.ps1 -Install
                PS>svtminion.ps1 -Install -MinionVersion 3004-1 master=192.168.10.10 id=dev_box
                PS>svtminion.ps1 -Install -Source https://my.domain.com/vmtools/salt
        참고:

        예제를 보려면 get-help .\svtminion.ps1 -examples를 입력하십시오.

        자세한 내용을 보려면 get-help .\svtminion.ps1 -detailed를 입력하십시오.

        기술 정보를 보려면 get-help .\svtminion.ps1 -full을 입력하십시오.

  • 로그 정보 가져오기
    게스트 관리자는 다음 경로에서 salt-minion과 관련된 로그 정보를 가져올 수 있습니다.
    Windows
    로그 파일 위치
    salt-minion 상태를 확인하기 위한 로그 파일 C:\Windows\Temp\vmware-svtminion-status-{Timestamp}.log
    게스트 내부에 salt-minion 인스턴스를 설치하기 위한 로그 파일 C:\Windows\Temp\vmware-svtminion-install-{TimeStamp}.log
    게스트 내에서 salt-minion 인스턴스를 제거하기 위한 로그 파일: C:\Windows\Temp\vmware-svtminion-remove-{TimeStamp}.log
    게스트 내에서 salt-minion 인스턴스를 설치하거나 제거한 후 런타임 정보를 확인하기 위한 로그 파일 C:\salt\var\log\minion 로그 파일
    Linux
    로그 파일 위치
    salt-minion 상태를 확인하기 위한 로그 파일 /var/log/vmware-svtminion.sh-status-{Timestamp}.log
    게스트 내부에 salt-minion 인스턴스를 설치하기 위한 로그 파일 /var/log/vmware-svtminion.sh-install-{TimeStamp}.log
    게스트 내에서 salt-minion 인스턴스를 제거하기 위한 로그 파일: /var/log/vmware-svtminion.sh-remove-{TimeStamp}.log
    게스트 내에서 salt-minion 인스턴스를 설치하거나 제거한 후 런타임 정보를 확인하기 위한 로그 파일 /var/log/salt/minion