Lighthouse (5.1.1 or later) Script Templates are a powerful way to run shell scripts on nodes, either automatically at enrollment time via Configure Nodes -> Node Enrollment -> Enrollment Bundles, or manually via Configure Nodes -> Configuration Templates -> Apply Templates.
Advanced users may have custom scripts that they wish to not just run, but install on individual nodes – e.g. to automate maintenance tasks. Furthermore, it may be desirable to have these scripts run regularly via cron.
These users may create and upload a Script Template that pushes a "self-installing" script to the node, as shown below. The parts of the script that are installed on the node are shown in bold.
#!/bin/bash # # Install example script and nightly cronjob # target_script=example.sh # # Write out example script to node # mkdir -p /etc/config/scripts cat << 'EOF' > "/etc/config/scripts/$target_script" #!/bin/bash me=$(basename $0) echo "Example script ran successfully at $(date)" > "/tmp/$me.log" EOF # # Optional: install cronjob to run nightly at 1am # ( crontab -l | grep -v "$target_script" echo "0 1 * * * bash /etc/config/scripts/$target_script" ) | crontab -
Note: To have custom scripts run automatically in response to remote events rather than regularly via cron, use config commands to configure Auto-Response on the node. This may also be centrally orchestrated from Lighthouse using the Script Template or ad hoc using node-command.