Scripts em nuvem e modelos de script em nuvem
Na aplicação Cloud Provisioning and Governance, a execução do script é dividida em scripts na nuvem e modelos de script na nuvem. Use scripts em blueprints, blocos de recursos, perfis de SO e use scripts de política para definir atributos de formulário de solicitação. Scripts de política não podem substituir dados do usuário.
Scripts na nuvem
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;
}
Cada script em nuvem contém determinados parâmetros. Parâmetros são os atributos que você deseja acessar. Um parâmetro contém um nome, um valor padrão e um valor de substituição. O valor padrão pode ser uma cadeia de caracteres literal, um parâmetro de bloco de recursos ou uma expressão de script complexa usada em blocos de recursos.
Um script em nuvem, por padrão, tem acesso ao objeto templateResolver. O objeto templateResolver tem, por padrão, um método getTemplate, cujo primeiro parâmetro é o nome do modelo de script na nuvem. templateAttributes são os parâmetros de script em nuvem criados como parte de um script em nuvem. Se necessário, as personalizações podem ser feitas em templateAttributes. Como exemplo, consulte o snippet de código a seguir se o valor do parâmetro DevName precisar ser alterado de John para Emilly.
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();
Modelos de script na nuvem
Os modelos de script na nuvem são executáveis reais que são passados para direcionar uma máquina virtual para execução. Os modelos de nuvem podem ser de qualquer tipo (Shell/PowerShell/CloudInit), dependendo do contexto de execução. Você precisa criar um modelo de nuvem primeiro e, em seguida, associá-lo a um script de nuvem.
Scripts na nuvem como CloudInit
- Nível de imagem: no momento da criação de um script na nuvem, você pode especificar uma imagem na qual este script deve ser executado. Depois que um perfil de SO que contém esta imagem específica é selecionado, o script de nuvem padrão em relação a esta imagem é executado. No exemplo abaixo, um script de nuvem Apache está associado a uma imagem específica.
- Nível de perfil do SO: você pode executar um cloudinit em um provedor de nuvem específico e em uma AMI/imagem específica. Você também pode ser genérico e associar um cloudinit a um perfil de SO, independentemente da imagem subjacente. No exemplo a seguir, várias imagens estão associadas ao perfil do SO. Você pode mapear qualquer script de nuvem para o perfil do SO na guia Mapeamentos de perfil do SO de script em nuvem. O mapeamento de um script em nuvem com um perfil de SO tem precedência sobre a associação de scripts em nuvem no nível de imagem.
Neste exemplo, o script de nuvem do Apache é mapeado para o perfil do sistema operacional Centos. Se necessário, você pode substituir os parâmetros de script na seção Substituições de mapeamento de perfil do SO. - Blocos de recursos: ao mapear um script de nuvem para um perfil de SO, você pode escolher se deseja executar o script de nuvem para um bloco de recursos específico usado em um plano gráfico e em relação a um alias de recurso específico. Consulte Criar um perfil de SO.
Scripts em nuvem como PostInit
Você pode usar scripts em nuvem como scripts PostInit em um bloco de recursos. Depois de criar um bloco de recursos com uma máquina virtual a ser provisionada, você pode adicionar uma operação ExecuteScript. A operação ExecuteScript usa um parâmetro de script (um pool de scripts em nuvem) e você pode selecionar qualquer script para executar. Use o atributo ScriptParameters na operação ExecuteScript para substituir qualquer parâmetro de script. Você pode fornecer um mapa JSON do parâmetro de script e seu valor de substituição. Todas as expressões compatíveis com Gestão de nuvem funcionam no atributo ScriptParamters.