SSH 워크플로우 생성
VM의 전원을 끄는 데 필요한 SSH 워크플로우를 생성합니다. 이미 생성한 SSH 사용자 지정 활동을 사용합니다.
시작하기 전에
- SSH 사용자 지정 활동을 이미 생성함
- 필요한 역할: 워크플로우 디자이너 또는 관리자
이 태스크 정보
워크플로우를 생성할 때 이를 테이블과 활동에 연결합니다.
- 전역 수준의 테이블이나 애플리케이션 수준의 테이블에 대해 워크플로우를 생성할 수 있습니다. 전역 테이블을 사용하여 모든 ServiceNow 애플리케이션에서 워크플로우를 사용할 수 있도록 합니다. 여기서는 Cloud Provisioning and Governance에 대한 테이블을 사용하므로 이 워크플로우는 해당 애플리케이션에서만 사용할 수 있습니다.
- 워크플로우 편집기나 Activity Designer에서 워크플로우를 생성할 수 있습니다. 여기에서는 Activity Designer를 사용합니다.
프로시저
- Activity Designer의 오른쪽에서 워크플로우 탭을 선택한 다음 +(더하기 기호)를 클릭하여 새 워크플로우를 추가합니다.
-
새 워크플로우 창에서 다음 단계를 수행합니다.
- 워크플로우의 고유 이름을 입력합니다.
-
테이블 드롭다운에서 사용할 테이블을 선택합니다.
워크플로우를 사용하여 VM 전원을 끄는 것이므로 가상 머신 인스턴스 cmdb_ci_vm_instance를 검색하여 사용합니다.
- 제출을 클릭합니다.
-
워크플로우가 캔버스에 표시되면 다음 단계를 수행합니다.
- 워크플로우의 시작점과 엔드포인트 사이의 연결선을 삭제합니다.
- 추가 정보 캔버스를 마우스 오른쪽 버튼으로 클릭하고 입력 편집을 선택합니다.
-
다음 입력을 생성합니다.
주:레이블 필드가 아니라 열 필드에 입력한 이름을 사용합니다. 워크플로우가 전역 수준 테이블과 연결된 경우 열 필드의 입력 이름에는 u_ipaddress와 같이 u_ 접두사가 붙습니다. 여기에서 테이블은 애플리케이션 수준이므로 접두사가 필요하지 않습니다.
표 1. 워크플로우 입력 유형 레이블 열(자동으로 추가됨) 최대 길이 문자열 IPAddress ipaddress 100 문자열 CredentialTag credentialtag 100 - 제출을 클릭합니다.
- 캔버스를 마우스 오른쪽 버튼으로 클릭하고 사용자 지정 활동 추가를 선택합니다.
- 버전 창에서는 이전에 SSH 사용자 지정 작업 생성에서 생성한 활동을 검색하여 선택합니다.
-
해당 활동의 새 활동 창(워크플로우 활동 새 레코드 [Diagrammer view])에서 다음 단계를 수행합니다.
- 활동의 이름을 입력합니다.
-
호스트 필드에 활동이 예상하는 입력 매핑을 입력합니다.
호스트의 IP 주소는 ${workflow.inputs.u_ipaddress}입니다.
이 식을 사용하여 IP 주소를 가져옵니다.
$(Script:CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_id])])
- 명령 필드에 shutdown -h now를 입력합니다.
-
자격 증명 태그 필드에 ${workflow.inputs.u_credentialtag}를 입력합니다.
이 식을 사용하여 자격 증명 태그를 가져옵니다.
$(Script:CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])
-
제출을 클릭합니다.
활동이 워크플로우 캔버스에 표시됩니다.
- 캔버스를 마우스 오른쪽 버튼으로 클릭하고 핵심 활동 추가를 선택하여 스크립트 실행 작업을 추가합니다.
- 워크플로우 활동 정의 창에서 스크립트 실행을 검색하여 선택합니다.
-
새 활동: 스크립트 실행 창에서 다음 단계를 수행합니다.
- 활동의 이름을 입력합니다.
-
스크립트 필드에서 환경에 적합한 스크립트를 잘라내어 붙여 넣습니다.
이 스크립트는 종료된 후 VM 상태를 업데이트합니다.
예시 스크립트:if ( gs.nil(data.get(3).error)) { current.state = 'off'; current.setWorkflow(false); current.update(); } - 제출을 클릭합니다.
- 캔버스에서 시작점, 활동, 실행 스크립트, 엔드포인트 사이의 커넥터를 연결합니다.
- 게시를 클릭하여 워크플로우를 사용할 수 있도록 합니다.
-
워크플로우 유효성 검사를 사용하여 워크플로우의 유효성을 검사합니다.
주:current.update()를 사용하지 않는 것이 좋습니다. 이는 무시해도 됩니다.