fdffa56ff2
Theres a pretty standard workflow for setting a sysctl value which will be applied on image boot which was written by tripleo. Lets move this in tree as other folks (like Octavia) would like to depend on it. Change-Id: I3c266870d417cdba3196f5fa65c4cd634ab13173
50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copied from tripleo-image-element's sysctl element
|
|
#
|
|
# Validate and manage setting sysctl settings.
|
|
#
|
|
# The script is called with name/value pairs which are stored
|
|
# in the system default sysctl.d directory. Before adding new
|
|
# settings a validation is done to ensure that conflicting
|
|
# sysctl settings have not been requested. Once finished sysctl
|
|
# is used to activate the changes.
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
NAME=${1:-}
|
|
VALUE=${2:-}
|
|
# Optional comment used to describe the setting
|
|
COMMENT=${3:-"This file was created by diskimage-builder."}
|
|
|
|
if [ -z "$NAME" -o -z "$VALUE" ]; then
|
|
echo "NAME and VALUE are required."
|
|
exit 1
|
|
fi
|
|
|
|
FILENAME="/etc/sysctl.d/${NAME}.conf"
|
|
|
|
if [ -f $FILENAME ]; then
|
|
# check to make sure the settings match... otherwise fail
|
|
if ! grep -q "^$NAME = $VALUE" $FILENAME; then
|
|
echo "Conflicting sysctl.conf setting for $NAME == $VALUE. Found:"
|
|
grep "^$NAME" $FILENAME
|
|
exit 1
|
|
fi
|
|
else
|
|
|
|
if ! sysctl -a | grep -q "^$NAME"; then
|
|
echo "Invalid sysctl key: $NAME"
|
|
exit 1
|
|
fi
|
|
|
|
sysctl-write-value $NAME "$VALUE" "$COMMENT"
|
|
|
|
sysctl -p $FILENAME
|
|
|
|
fi
|