Não consigo encontrar nenhuma informação sobre como fornecer um script personalizado para ser executado após a instalação. Existem exemplos sobre isso que a comunidade pode fornecer?
Responder1
Dependendo de qual instalador você está usando, o MAAS fornece diferentes mecanismos para personalizar uma instalação. Esta resposta pressupõe que você esteja usando oinstalador curtin(também conhecido como instalador de caminho rápido), que se tornou o padrão noMAAS 1.7.
MAAS usanuvem-initcomo parte de seu processo de instalação. Existem várias maneiras de personalizar o comportamento do cloud-init, sendo a mais fácil simplesmente fornecer umScript de dados do usuário, que o cloud-init executa durante a primeira inicialização, após a conclusão da instalação do sistema operacional.
No MAAS, isso pode ser feito fornecendo o argumento user_data aonode start
Comando 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 no console de instalação,importa uma chave SSH do Launchpadpara 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ê poderia 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-sucedido, deverá retornar (depois de um 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 deum nó específico. Se você quiser que os comandos sejam configurados para que sejam executadosqualquer nóque é instalado por meio do MAAS, é possível incluir os comandos a serem executados como parte da late_commands
sub-rotina no arquivo/etc/maas/preseeds/curtin_userdata
arquivo. Para um exemplo mais complexo que usa esse mecanismo para configurar duas VLANs em uma interface de rede, consultehttp://astokes.org/customizing-fastpath-curtin-installations/.
Observe que Curtin atualmente está em grande parte sem documentos; há no entanto umaarquivo de visão geralque descreve alguns dos detalhes de sua operação.
Tenha em mente que este mecanismo não deve ser confundido com uma comissioning script
execução durante ofase de comissionamento, e qual no ciclo de vida do nó MAAS ocorre antes da instalação. O comissionamento é geralmente usado para tarefas administrativas que não devem afetar diretamente a instalação; exemplos seriam:
- atualização de firmware
- testes de integridade dos principais componentes de hardware
- queimar
Responder2
Deve-se observar que os comandos aqui são para a API 1.0. Na versão 2.0 e superior, o comando é:
maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>