원격 실행
이 튜토리얼에서는 원격 실행 시스템의 작동 방식을 설명합니다. 원격 실행 사용에 대한 자습서는 Execute Commands를 참조하십시오.
솔트는 처음부터 원격 실행 도구가 되도록 설계되었으며, 솔트의 다른 하위 시스템에 의해 원격 실행이 많이 사용됩니다.
- 솔트 명령은 크로스 OS 및 크로스 플랫폼용으로 설계되었습니다.
salt '*' pkg.install git
명령은 대상 플랫폼에 따라 커버 아래에 yum, apt, pacman 또는 Salt의 윈도우 패키지 저장소를 사용합니다. 하나의 명령, 많은 시스템. - 모든 Salt 명령은 일관된 데이터 구조로 결과를 반환합니다. 이렇게 하면 결과를 쉽게 검사하거나 데이터베이스에 저장할 수 있습니다.
- 대상 시스템은 모두 명령을 동시에 수신하므로 모든 대상 시스템은 동시에 작업을 실행할 수 있습니다.
Salt는 수백 개의 Python 모듈이 포함된 라이브러리를 사용하여 원격 관리를 수행하며, 사용자는 자신의 모듈을 쉽게 추가할 수 있습니다(또는 더 나은 방법으로 프로젝트에 기여!). Python, 셸 명령 또는 거의 모든 다른 인터페이스를 사용하여 액세스할 수 있는 모든 응용 프로그램 또는 서비스는 Salt에서 실행 모듈로 노출될 수 있습니다.
원격 실행
원격 실행 시스템은 솔트 명령줄 인터페이스를 사용하여 액세스합니다. 솔트 인터페이스에서 보낸 간단한 명령을 사용하여 솔트 시스템을 통해 추적해 보겠습니다.
salt '*' test.rand_sleep 120
솔트 통신 시스템에 대해 배운 내용을 바탕으로 다음과 같은 작업을 수행합니다.
- 이 명령은 게시자 포트를 통해 연결된 모든 미니언으로 전송됩니다.
- 각 미니언은 명령을 검사하고 대상에 대해 자신을 평가한 후 명령을 실행할지 여부를 결정합니다.
- 대상 시스템은 명령을 실행한 다음 결과를 요청 서버로 반환합니다.
이제 명령이 실행될 때 미니언에 어떤 일이 일어나는지 자세히 알아보겠습니다. 먼저 각 명령은 별도의 작업자 스레드로 분리되므로 Salt minion이 여러 작업을 한 번에 처리할 수 있습니다.
하지만 솔트 미니언은 어떻게 test.rand_sleep 120
명령을 행동으로 옮길까? 물론 솔트 실행 모듈!
시스템 관리에 사용되는 모든 명령은 Salt 실행 모듈에서 제공합니다. 이 모듈들은 솔트에서 실제로 작동하는 것이고, 여러분이 그것들이 어떻게 작동하는지 알게 되면 사용하기 쉽습니다.
Salt minion은 명령을 받으면 올바른 모듈(이 예에서는 test
모듈)을 찾은 다음 제공된 인수(120)를 제공하는 해당 함수(rand_sleep
)를 호출합니다. 이런 의미에서, 당신은 솔트를 파이썬 함수에 대한 (미친 강력한) 추상화 레이어로 생각할 수 있다.
코드 다이브!
코드 다이브(누가 하지 않음!)를 즐긴다면 rand_sleep 함수를 살펴보고 명령행에 전송된 인수와 함수에 전송된 인수 사이의 관계를 찾을 수 있는지 확인합니다(스포일러 경고: 이름 아래에서도 동일함).
원격 실행을 사용할 때 실행 모듈의 전체 목록을 책갈피로 지정하려고 합니다. Salt에서 Tomcat 서버를 관리할 수 있는지 궁금한 경우, 이번이 첫 번째 방문입니다(참고: 예, 가능합니다). 모듈 문서에는 여러 가지 예가 있으며 호출이 간단합니다.
Python 섹션에서 모듈 및 기능에 대해 다시 설명하므로, 구성 관리 하위 시스템인 Salt 상태에 대해 잠시 살펴보겠습니다.