Existem exemplos de scripts de instalação personalizados?

1

Não consigo encontrar informações sobre como fornecer um script personalizado para ser executado após a instalação. Existem exemplos sobre isso que a comunidade pode fornecer?

    
por Juan Negron 15.06.2015 / 21:55

2 respostas

3

  

Dependendo de qual instalador você está usando, o MAAS fornece mecanismos diferentes para personalizar uma instalação. Esta resposta assume que você está usando o instalador de curtin (também conhecido como instalador de caminho rápido) que se tornou o padrão em MAAS 1.7 .

O MAAS usa o cloud-init como parte de seu processo de instalação. Há várias maneiras de personalizar o comportamento do cloud-init, sendo mais fácil simplesmente fornecer um Script de Dados do Usuário , que o cloud-init executa durante a primeira inicialização, após a instalação do sistema operacional.

No MAAS, isso pode ser feito fornecendo o argumento user_data para o comando node start CLI . O formato desse comando é:

maas <user> node start <node uuid> user_data=<script> distro_series=<name>

onde <script> é na verdade uma string codificada em base64. Para um exemplo concreto, supondo que você gostaria de executar um script chamado addkey.sh que imprime alguma saída para o console de instalação, importa uma chave SSH do Launchpad para o usuário ubuntu e registra os resultados em um arquivo de log:

#!/bin/sh
(
echo ======== Hi World ======================
echo ============== $(date) =================
ssh-import-id user
) | tee /my.log

você pode emitir os seguintes comandos:

$ script=$(base64 addkey.sh)
$ maas myuser node start node-79b67e82-d25c-11e4-a333-00163eca91de \
  user_data=$script distro_series=trusty

que, se bem-sucedida, deve retornar (após algum tempo) a saída no seguinte formato:

Success.
Machine-readable output follows:
{
    "status": 6, 
    "macaddress_set": [
        {
...

Agora, isso executa esse script após a implantação de um nó específico . Se você gostaria de ter comandos configurados para que eles sejam executados em qualquer nó que é instalado através do MAAS, você pode adicionar os comandos a serem executados como parte da sub-rotina late_commands na /etc/maas/preseeds/curtin_userdata . Para um exemplo mais complexo que usa esse mecanismo para configurar duas VLANs em uma interface de rede, consulte link .

Note que Curtin está atualmente em grande parte não documentado; No entanto, existe um arquivo de visão geral que descreve alguns dos detalhes de sua operação.

Tenha em mente que este mecanismo não deve ser confundido com um comissioning script , executado durante a fase de comissionamento e que no ciclo de vida do nó MAAS vem antes da instalação. O comissionamento é geralmente usado para tarefas administrativas que não afetam diretamente a instalação; exemplos seriam:

  • atualização de firmware
  • testes de integridade dos principais componentes de hardware
  • burn-in
por kiko 15.06.2015 / 23:23
2

Deve-se notar que os comandos aqui são para a API 1.0. Em 2.0 e acima, o comando é:

maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>
    
por Brendan Donegan 03.11.2016 / 12:08