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