4. 태스크 정의

에이전트가 설치된 노드에 명령을 실행하기 위해서, 태스크(Task)를 정의해야 합니다.

먼저, 스크립트 파일을 만듭니다.

$ vi diskusage.sh
#!/bin/sh
df -h

diskusage라는 ID로 태스크를 생성합니다. 위에서 만든 쉘스크립트 파일의 경로를 주고, 호스트(Host)에서 실행할 OS 사용자명은 root로 지정합니다. 또한, 온디맨드 방식으로 실행할 수 있도록, '-eo E' 옵션도 추가합니다.

$ opmate task create -id diskusage -sf ./diskusage.sh -ou root -eo E
Requesting https://127.0.0.1:8443/opmate;user=bumbee
diskusage has been created successfully.

생성한 태스크가 어떤 노드에서 실행될지 타겟노드(Target Node)를 지정해야 합니다. 2개 노드에서 실행되도록 다음과 같이 입력합니다.

$ opmate task addtarget -id diskusage -nd linux01
Requesting https://127.0.0.1:8443/opmate;user=bumbee
linux01 has been added to target successfully.

$ opmate task addtarget -id diskusage -nd linux02
Requesting https://127.0.0.1:8443/opmate;user=bumbee
linux02 has been added to target successfully.

태스크가 잘 생성되었는지 확인해 보겠습니다. 태스크가 많으면 목록이 너무 길어질테니, 소유자(OWNER)가 bumbee인 태스크만 조회해 봅니다.

$ opmate task list -oi bumbee
Requesting https://127.0.0.1:8443/opmate;user=bumbee
+-----------+------+--------+--------------+---------+-----------+
| ID        | REV. | OWNER  | SCRIPT       | OS USER | NEXT TASK |
+-----------+------+--------+--------------+---------+-----------+
| diskusage | 0    | bumbee | diskusage.sh | root    |           |
+-----------+------+--------+--------------+---------+-----------+

ROWS COUNT : 1/1

조금 더 자세히 볼까요?

$ opmate task view -id diskusage
Requesting https://127.0.0.1:8443/opmate;user=bumbee
+------------------+------------------+
| FIELD            | VALUE            |
+------------------+------------------+
| [BASIS]          |                  |
|                  |                  |
| ID               | diskusage        |
| REVISION         | 0                |
| OWNER            | bumbee           |
| SCRIPT           | diskusage.sh     |
| OS USER          | root             |
| BY SCHEDULER     | disable          |
| BY ONDEMAND      | enable           |
| BY TASK          | disable          |
| NEXT TASK        |                  |
| DESCRIPTION      |                  |
| CREATED AT       | 2020/03/14 14:01 |
| CREATED BY       | bumbee           |
| UPDATED AT       | 2020/03/14 14:01 |
| UPDATED BY       | bumbee           |
|                  |                  |
| [APPROVAL]       |                  |
|                  |                  |
| STATUS           | N/A              |
| REQ REASON       |                  |
| RJT REASON       |                  |
| APPROVER         |                  |
| UPDATED AT       | 2020/03/14 14:01 |
|                  |                  |
| [SCHEDULES]      |                  |
|                  |                  |
| [RUNNERS]        |                  |
|                  |                  |
| [TARGETS]        |                  |
|                  | linux01(Node)    |
|                  | linux02(Node)    |
+------------------+------------------+

잘 생성되었지만 아직 아니랍니다. 리비젼(REVISION) 번호가 0인 것과 승인상태(APPROVAL STATUS)가 N/A인 것에 주목하세요. 태스크는 승인을 받아야 실제로 실행할 수 있습니다.