솔트의 내부 구성요소들은 이벤트를 보내고 들음으로써 서로 소통합니다. 솔트에서는 상상할 수 있는 모든 것에 대한 이벤트가 전송됩니다.
- 솔트 미니언 연결
- 키가 수락 또는 거부됨
- 작업이 전송됨
- 미니언으로부터 작업 결과가 반환됩니다.
- 존재 하트비트(기본적으로 꺼져 있음)
Salt 명령줄 인터페이스도 이벤트 시스템을 사용합니다. 솔트 마스터에게 명령이 전송되면 솔트 CLI는 이벤트 버스를 감시하여 대상 미니언으로부터 작업이 반환되는지 확인합니다.
이벤트 감시
솔트는 솔트 마스터에 수신된 이벤트를 실시간으로 표시하는 러너를 제공합니다.
salt-run state.event pretty=True
데모 환경을 사용하는 경우 이벤트 버스가 조용할 수 있으므로 다른 터미널을 열고 salt ‘*’ test.ping 명령을 보내거나 salt-minion 서비스를 미니언 중 하나에서 다시 시작합니다.
다음은 소금 마스터에서 볼 수 있는 이벤트와 유사한 몇 가지 이벤트입니다.
salt/job/20150923203228234305/new { "_stamp": "2015-09-23T20:32:28.235712", "arg": [], "fun": "test.ping", "jid": "20150923203228234305", "minions": [ "minion2" ], "tgt": "*", "tgt_type": "glob", "user": "sudo_vagrant" }
salt/job/20150923203228234305/ret/minion2 { "_stamp": "2015-09-23T20:32:28.291789", "cmd": "_return", "fun": "test.ping", "fun_args": [], "id": "minion2", "jid": "20150923203228234305", "retcode": 0, "return": true, "success": true }
salt/auth { "_stamp": "2015-09-23T20:30:02.998305", "act": "pend", "id": "minion1", "pub": "-----BEGIN PUBLIC KEY-----\...\n-----END PUBLIC KEY-----\n", "result": true }
솔트 러너
러너는 솔트 마스터에서 실행되어 지원 작업을 수행하는 모듈입니다. 러너는 작업 상태 보고, 연결 상태 표시, 이벤트 표시, 외부 API에서 데이터 읽기, 연결된 Salt minions 쿼리 등을 수행합니다.
이벤트 형식
이벤트는 발생한 이벤트를 식별하는 태그와 이벤트에 대한 세부 정보가 포함된 데이터의 두 가지 주요 부분으로 구성됩니다.
이벤트 태그
모든 솔트 이벤트 앞에는 salt/이 붙으며 이벤트 유형에 따라 추가 레벨이 지정됩니다. 예를 들어 작업 이벤트 앞에는 salt/job/이 붙습니다. 단순 네임스페이스를 제공하기 위해 /을 사용하여 각 이벤트 요소를 구분합니다. 이 식별자를 이벤트 태그라고 하며, 작업 ID나 미니언 ID와 같은 특정 세부 정보를 포함하는 경우가 많습니다.
이벤트 태그와 함께 각 이벤트에는 특정 이벤트 데이터도 포함됩니다.
이벤트 데이터
각 이벤트에는 timestamp와 해당 이벤트에 고유한 추가 키 및 값이 포함됩니다.
나중에 리액터를 탐색할 때 이벤트 태그와 데이터를 사용하여 반응을 사용자 지정하는 방법에 대해 배우게 될 것입니다.
출처 : https://docs.saltproject.io/en/getstarted/event/events.html