Parece que no puedo encontrar ninguna información sobre cómo proporcionar un script personalizado para ejecutarlo después de la instalación. ¿Hay ejemplos sobre esto que la comunidad pueda proporcionar?
Respuesta1
Dependiendo del instalador que esté utilizando, MAAS proporciona diferentes mecanismos para personalizar una instalación. Esta respuesta supone que estás usando elinstalador de cortinas(también conocido como instalador de ruta rápida) que se convirtió en el predeterminado enMAAS 1.7.
Usos de MAASinicio de nubecomo parte de su proceso de instalación. Hay varias formas de personalizar el comportamiento de inicio de la nube; la más sencilla es simplemente proporcionar unScript de datos de usuario, que cloud-init ejecuta durante el primer arranque, una vez completada la instalación del sistema operativo.
En MAAS, esto se puede lograr proporcionando el argumento user_data alnode start
Comando CLI. El formato de ese comando es:
maas <user> node start <node uuid> user_data=<script> distro_series=<name>
donde <script>
en realidad es una cadena codificada en base64. Para un ejemplo concreto, suponiendo que le gustaría ejecutar un script llamado addkey.sh
que imprime algún resultado en la consola de instalación,importa una clave SSH desde Launchpadpara el usuario ubuntu
y registra los resultados en un archivo de registro:
#!/bin/sh
(
echo ======== Hi World ======================
echo ============== $(date) =================
ssh-import-id user
) | tee /my.log
podrías emitir los siguientes comandos:
$ script=$(base64 addkey.sh)
$ maas myuser node start node-79b67e82-d25c-11e4-a333-00163eca91de \
user_data=$script distro_series=trusty
que, si tiene éxito, debería devolver (después de un tiempo) el resultado en el siguiente formato:
Success.
Machine-readable output follows:
{
"status": 6,
"macaddress_set": [
{
...
Ahora esto ejecuta ese script después de la implementación deun nodo específico. Si desea configurar los comandos para que se ejecuten encualquier nodoque se instala a través de MAAS, puede agregar los comandos que se ejecutarán como parte de la late_commands
estrofa en el/etc/maas/preseeds/curtin_userdata
archivo. Para ver un ejemplo más complejo que utiliza este mecanismo para configurar dos VLAN en una interfaz de red, consultehttp://astokes.org/customizing-fastpath-curtin-installations/.
Tenga en cuenta que Curtin actualmente es mayoritariamente indocumentado; hay sin embargo unarchivo de descripción generalque describe algunos de los detalles de su funcionamiento.
Tenga en cuenta que este mecanismo no debe confundirse con una comissioning script
ejecución durante elfase de puesta en marcha, y que en el ciclo de vida del nodo MAAS viene antes de la instalación. La puesta en marcha se utiliza generalmente para tareas administrativas que no deben afectar directamente la instalación; ejemplos serían:
- actualización de firmware
- pruebas de cordura de componentes clave de hardware
- quemado
Respuesta2
Cabe señalar que los comandos aquí son para la API 1.0. En 2.0 y superiores, el comando es:
maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>