SaltStack-SSH를 통한 솔트

Salt는 다음을 사용하여 원격 시스템에서 명령을 실행합니다. salt-minion. 이것은 정상적인 동작입니다. 일부 시나리오에서는 SSH 프로토콜을 통해서만 원격 시스템에 액세스 할 수 있습니다. 이러한 시나리오의 경우 Salt는 SSH 프로토콜 만 사용하여 원격 시스템에 연결하고 SSH 계층을 통해 명령을 실행하는 옵션을 제공합니다.

Salt SSH구성하기가 매우 쉽습니다. 필요한 유일한 구성은 다음과 같은 특수 파일에 원격 시스템 세부 정보를 지정하는 것입니다.Roster file. 이 명단 파일은 일반적으로 다음 위치에 있습니다./etc/salt/roster. 명단 파일에는 원격 시스템에 대한 모든 정보와 연결 방법이 있습니다. 명단 파일이 구성되면 모든 Salt 명령이salt-ssh salt 명령 대신.

명단 파일

명단 시스템은 특별히 Salt SSH를 위해 설계되었습니다. 이것은 플러그 형 시스템으로 설계되었습니다. 명단 시스템의 유일한 목적은 원격 시스템에 대한 정보를 수집하는 것입니다. 명단 파일은YAML based configuration file 원격 시스템 정보 포함 targets. 이러한 대상은 사전 정의 된 속성 세트가있는 특수 데이터 구조입니다. 명단 파일에는 하나 이상의 대상이 포함되며 각 대상은Salt ID.

명단 파일의 기본 구조는 다음과 같습니다.

<Salt ID>:
   host: <host name>
   user: <user name>
   passwd: <password of the user>

명단 파일에서 지원하는 다른 모든 속성은 선택 사항입니다. 그들은 다음과 같습니다-

  • port − SSH 포트 번호.

  • sudo − sudo를 통해 명령을 실행할지 여부.

  • sudo_user − sudo 사용자 이름.

  • tty − sudo가 활성화 된 경우 참.

  • priv − 개인 키.

  • timeout − SSH 연결 시간 초과.

  • minion_opts − 미니언 옵트 사전.

  • thin_dir − 솔트 구성 요소를위한 대상 시스템의 저장 디렉토리.

  • cmd_umask − salt-call 명령을 강제하는 umask.

샘플 명단 파일은 다음과 같습니다-

web:
   host: 192.168.2.1
   user: webuser
   passwd: secret
   sudo: True   
db:
   host: 192.168.2.2

SSH 키 배포

Salt SSH는 SSH 로그인을위한 기본 공개 / 개인 키 쌍을 생성합니다. 기본 경로는 /etc/salt/pki/master/ssh/salt-ssh.rsa입니다. 이 키는 다음을 사용하여 원격 시스템에 배포 할 수 있습니다.ssh-copy-id 아래와 같이 명령.

ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub [email protected]

명령 실행

salt 명령을 실행하는 것은 salt cli 명령하다 salt-ssh 아래 그림과 같이.

salt-ssh '*' test.ping

원시 셸 명령

Salt SSH는 솔트 모듈 및 기능을 우회하여 원격 시스템에서 원시 명령을 실행하는 옵션 (-r)을 제공합니다.

salt-ssh '*' -r 'ls'

Salt SSH로 타겟팅

Salt SSH에서 원격 시스템을 대상으로 지정하면 glob 및 regex 대상 만 지원됩니다. Salt SSH는 별도의 모듈이기 때문에 현재로서는 제한된 옵션 만 제공하며 가까운 장래에 더 많은 기능을 제공 할 것입니다.