클라우드 스크립트 및 클라우드 스크립트 템플릿
Cloud Provisioning and Governance 애플리케이션에서 스크립트 실행은 클라우드 스크립트와 클라우드 스크립트 템플릿으로 나뉩니다. Blueprint, 자원 블록, OS 프로파일에 있는 스크립트를 사용하고 정책 스크립트를 사용하여 요청 양식 속성을 설정합니다. 정책 스크립트는 사용자 데이터를 재정의할 수 없습니다.
클라우드 스크립트
function evaluateTemplate() {
// Template Resolver is a helper function which we will use to fetch a template and replace its parameters,
// var templateResolver=new TemplateResolver(); this comes inbuild
// templateAttributes below will passed from the user.
var listDir=templateResolver.getTemplate('Install',templateAttributes);
return listDir;
}
각 클라우드 스크립트에는 특정 매개변수가 포함되어 있습니다. 매개변수는 액세스하려는 속성입니다. 매개변수에는 이름, 기본값 및 재정의 값이 포함됩니다. 기본값은 자원 블록에 사용 되는 문자열 리터럴, 자원 블록 매개변수 또는 양방향 스크립트 표현식인 값이 될 수 있습니다.
기본적으로 클라우드 스크립트는 templateResolver 객체에 대한 액세스 권한을 가집니다. 기본적으로 templateResolver 객체에는 첫 번째 매개변수가 클라우드 스크립트 템플릿 이름인 gettemplate 메서드가 있습니다. templateAttributes는 클라우드 스크립트의 일부로 만들어진 클라우드 스크립트 매개변수입니다. 필요한 경우 templateAttributes에서 사용자 지정을 수행할 수 있습니다. 예를 들어, DevName 매개변수 값을 John에서 Emily로 변경해야 하는 경우 다음 코드 스니펫을 참조하십시오.
function evaluateTemplate() {
// Template Resolver is a helper function which we will use to fetch a template and replace its parameters,
// var templateResolver=new TemplateResolver(); this comes inbuild
// templateAttributes below will passed from the user.
templateAttributes['DevName'] = 'Emily';
var customNodeName;
var now_GR = new GlideRecord('some_custom_table_to_query');
gr.addQuery('some_parameter','some_value');
gr.query();
if(gr.next())
customNodeName=gr.getValue('some_custom_node_name');
templateAttributes['NodeName'] = customNodeName;
var listDir=templateResolver.getTemplate('Install',templateAttributes);
return listDir;
}
evaluateTemplate();
클라우드 스크립트 템플릿
클라우드 스크립트 템플릿은 실제로 실행이 가능하며 실행을 위해 가상 머신에 전달됩니다. 클라우드 템플릿은 실행 컨텍스트에 따라 모든 종류(Shell/PowerShell/CloudInit)가 될 수 있습니다. 먼저 클라우드 템플릿을 만든 다음 클라우드 스크립트와 연결해야 합니다.
클라우드 스크립트(CloudInit)
- 이미지 수준: 클라우드 스크립트를 만들 때 이 스크립트를 실행할 대상 이미지를 지정할 수 있습니다. 이 특정 이미지를 포함하는 OS 프로파일이 선택되면 이 이미지에 대한 기본 클라우드 스크립트가 실행됩니다. 아래 예시에서는 Apache 클라우드 스크립트가 특정 이미지와 연결되어 있습니다.
- OS 프로파일 수준: 특정 클라우드 제공자와 특정 AMI/이미지에 대해 cloudinit를 실행할 수 있습니다. 또한 원본 이미지에 관계 없이 cloudinit를 OS 프로파일에 연결할 수도 있습니다. 다음 예시에서는 여러 이미지가 OS 프로파일과 연결되어 있습니다. Cloud 스크립트의 OS 프로파일 매핑 탭에서 OS 프로파일에 클라우드 스크립트를 매핑할 수 있습니다. OS 프로파일을 사용하는 클라우드 스크립트의 매핑은 이미지 수준의 클라우드 스크립트 연결보다 우선합니다.
이 예에서 Apache 클라우드 스크립트는 Centos OS 프로파일에 매핑됩니다. 필요한 경우 OS 프로파일 매핑 재정의 섹션에서 스크립트 매개변수를 재정의할 수 있습니다. - 자원 블록: 클라우드 스크립트를 OS 프로파일에 매핑하는 동안 Blueprint에 사용되는 특정 자원 블록과 특정 자원 별칭에 대해 클라우드 스크립트를 실행할지 여부를 선택할 수 있습니다. OS 프로파일 생성 문서를 참조하십시오.
클라우드 스크립트(Postinit)
클라우드 스크립트를 자원 블록에서 Postinit 스크립트로 사용할 수 있습니다. 프로비저닝할 가상 머신이 있는 자원 블록을 만든 후에 ExecuteScript 작업을 추가할 수 있습니다. ExecuteScript 작업은 스크립트 매개변수(클라우드 스크립트 풀)를 사용하며 실행할 스크립트를 선택할 수 있습니다. ExecuteScript 작업의 ScriptParameters 속성을 사용하여 모든 스크립트 매개변수를 재정의합니다. 스크립트 매개변수 및 해당 재정의 값의 JSON 맵을 제공할 수 있습니다. ScriptParamters 속성의 클라우드 관리 작업에서 지원하는 모든 표현식입니다.