클라우드 스크립트 및 클라우드 스크립트 템플릿
클라우드 프로비저닝 및 거버넌스 애플리케이션에서 스크립트 실행은 클라우드 스크립트와 클라우드 스크립트 템플릿으로 나뉩니다. 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 프로파일과 연결되어 있습니다. 클라우드 스크립트 OS 프로파일 매핑 탭에서 OS 프로파일에 클라우드 스크립트를 매핑할 수 있습니다. OS 프로파일을 사용하는 클라우드 스크립트의 매핑은 이미지 수준의 클라우드 스크립트 연결보다 우선합니다.
이 예에서 Apache 클라우드 스크립트는 Centos OS 프로파일에 매핑됩니다. 필요한 경우 OS 프로파일 매핑 재정의 섹션에서 스크립트 매개변수를 재정의할 수 있습니다. - 자원 블록: 클라우드 스크립트를 OS 프로파일에 매핑하는 동안 Blueprint에 사용되는 특정 자원 블록과 특정 자원 별칭에 대해 클라우드 스크립트를 실행할지 여부를 선택할 수 있습니다. OS 프로파일 생성 문서를 참조하십시오.
클라우드 스크립트(Postinit)
클라우드 스크립트를 자원 블록에서 Postinit 스크립트로 사용할 수 있습니다. 프로비저닝할 가상 머신이 있는 자원 블록을 만든 후에 ExecuteScript 작업을 추가할 수 있습니다. ExecuteScript 작업은 스크립트 매개변수(클라우드 스크립트 풀)를 사용하며 실행할 스크립트를 선택할 수 있습니다. ExecuteScript 작업의 ScriptParameters 속성을 사용하여 모든 스크립트 매개변수를 재정의합니다. 스크립트 매개변수 및 해당 재정의 값의 JSON 맵을 제공할 수 있습니다. ScriptParamters 속성의 클라우드 관리 작업에서 지원하는 모든 표현식입니다.