Default variable details
Some of the debops.machine
default variables have more extensive
configuration than simple strings or lists, here you can find documentation and
examples for them.
machine__motd_scripts
This variable is a list which can be used to manage scripts in the
/etc/update-motd.d/
directory, used to generate the dynamic Message Of
The Day.
Each list entry is a YAML dictionary with specific parameters:
name
Required. Name of a given entry, used as a handle to merge multiple entries together. It's also used in an autogenerated filename of the script.
weight
Optional. Modify the base "weight" of a given script to reorder its output in the resulting dynamic MOTD. The base weight used by the role is
0
, you can use positive or negative numbers to reorder the scripts. The filename format uses 2 digits to define the weight, therefore you should use small range of weights, otherwise weird filenames resulting in unwanted order might be generated.filename
Optional. Define a static filename of the script. This filename won't be affected by the
name
andweight
parameters. It's usually used for scripts provided by Debian packages to aid in dpkg diversion/reversion.src
Optional, conflicts with
content
. Path to a script which should be installed in the/etc/update-motd.d/
directory with a given name. By default the path is relative to thefiles/
directory of thedebops.machine
Ansible role.The script output will be added to the dynamic MOTD. Remember that the script is executed with
root
privileges!content
Optional, conflicts with
src
. YAML text block which contains a script to be installed in the/etc/update-motd.d/
directory with a given name. The script can contain Jinja templating which will be evaluated at Ansible execution time.The script output will be added to the dynamic MOTD. Remember that the script is executed with
root
privileges!divert
Optional, boolean. If
True
, the script managed by this entry will be automatically diverted/reverted as necessary. This is useful to move the files included in the APT packages aside, so that the package manager can still update the packages without issues.The diverted scripts will have a
.disabled
extension and their output will not be included in the dynamic MOTD.state
Optional. Define the state of a particular script. If multiple list entries define a script state, the last one wins. Recognized states:
not specified or
present
: the script will be installed in the/etc/update-motd.d/
directory. If an entry has adivert: True
parameter, existing script will be diverted.absent
: the specified script will be removed. Diverted scripts will be reverted to their previous location, but otherwise will not be removed.init
: the configuration of a given entry will be "initiated", but otherwise the entry will not change anything on the host. This can be used to prepare an entry and activate it later conditionally.ignore
: the given configuration entry will be ignored by the role. This can be used to conditionally activate or skip entries.divert
: if a given entry has thedivert: True
parameter, the specified script will be diverted and effectively disabled. The role will not generate a replacement script. This state can be used to disable scripts installed by APT packages without providing replacements.revert
: if a given entry has thedivert: True
parameter, the specified script will be reverted to its original state.
Examples
Include a random fortune in the dynamic MOTD using the fortune output, if it's installed:
machine__motd_scripts:
- name: 'fortune'
weight: 95
content: |
#!/bin/sh
. /etc/default/locale
export LANG
export PATH="/usr/local/games:/usr/games:$PATH"
if [ -x /usr/games/fortune ] ; then
/usr/games/fortune -s
fi
state: 'present'
Include a random fortune in the dynamic MOTD using a script provided by the role:
machine__motd_scripts:
- name: 'fortune'
weight: 95
src: 'etc/update-motd.d/fortune'