Remove references to the multiple config files

Only refer to heat.conf in the docs and scripts.
For install.sh copy the iniset() function from devstack
to assist in setting some semi-sane defaults.

Change-Id: I933891e35103c003f1272bc89c7b42d2ad76697b
This commit is contained in:
Angus Salkeld 2013-08-29 12:05:37 +10:00
parent 752da8e0c1
commit ae28bf4c89
10 changed files with 74 additions and 30 deletions

View File

@ -63,7 +63,7 @@ start_mysql_server() {
MYSQL_HEAT_PW_DEFAULT="heat"
MYSQL_HEAT_PW=${MYSQL_HEAT_PW_DEFAULT}
HEAT_CONFIG="/etc/heat/heat-engine.conf"
HEAT_CONFIG="/etc/heat/heat.conf"
ASSUME_YES=""
ELEVATE=""

View File

@ -111,9 +111,7 @@ In the heat directory, run the install script::
If running OpenStack grizzly installed via tools/openstack, it is necessary to modify the default service user password::
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api-cfn.conf
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api-cloudwatch.conf
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api.conf
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat.conf
Source the keystone credentials created with tools/openstack
------------------------------------------------------------
@ -186,9 +184,10 @@ The heat engine configuration file should be updated with the address of the bri
::
sudo sed -i -e "/heat_metadata_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf
sudo sed -i -e "/heat_waitcondition_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf
sudo sed -i -e "/heat_watch_server_url/ s/127\.0\.0\.1/${BRIDGE_IP}/" /etc/heat/heat-engine.conf
sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_metadata_server_url=http://${BRIDGE_IP}:8000/\n" /etc/heat/heat.conf
sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_waitcondition_server_url=http://${BRIDGE_IP}:8000/v1/waitcondition/" /etc/heat/heat.conf
sudo sed -i -e "/^\[DEFAULT\]/ a\\\nheat_watch_server_url=http://${BRIDGE_IP}:8003/" /etc/heat/heat.conf
Launch the Heat services
------------------------

View File

@ -101,9 +101,7 @@ Modify configuration for admin password
Later a keystone user called '''heat''' will be created. At this point a password for that user needs to be chosen.
The following files will need editing:
- /etc/heat/heat-api-cfn.conf
- /etc/heat/heat-api-cloudwatch.conf
- /etc/heat/heat-api.conf
- /etc/heat/heat.conf
::

View File

@ -36,4 +36,4 @@ OPTIONS
FILES
========
* /etc/heat/heat-api-cfn.conf
* /etc/heat/heat.conf

View File

@ -30,4 +30,4 @@ OPTIONS
FILES
========
* /etc/heat/heat-api-cloudwatch.conf
* /etc/heat/heat.conf

View File

@ -36,4 +36,4 @@ OPTIONS
FILES
========
* /etc/heat/heat-api.conf
* /etc/heat/heat.conf

View File

@ -35,4 +35,4 @@ OPTIONS
FILES
========
* /etc/heat/heat-engine.conf
* /etc/heat/heat.conf

View File

@ -7,7 +7,7 @@ pipeline = faultwrap versionnegotiation authtoken context apiv1app
# ie. uses alternative auth backend that authenticates users against keystone
# using username and password instead of validating token (which requires
# an admin/service token).
# To enable, in heat-api.conf:
# To enable, in heat.conf:
# [paste_deploy]
# flavor = standalone
#
@ -15,7 +15,7 @@ pipeline = faultwrap versionnegotiation authtoken context apiv1app
pipeline = faultwrap versionnegotiation authpassword context apiv1app
# heat-api pipeline for custom cloud backends
# i.e. in heat-api.conf:
# i.e. in heat.conf:
# [paste_deploy]
# flavor = custombackend
#

View File

@ -27,7 +27,7 @@ if __name__ == '__main__':
config = ConfigParser.SafeConfigParser()
try:
config = ConfigParser.SafeConfigParser()
config.readfp(open('/etc/heat/heat-engine.conf'))
config.readfp(open('/etc/heat/heat.conf'))
sql_connection = config.get('DEFAULT', 'sql_connection')
except Exception:
sql_connection = 'mysql://heat:heat@localhost/heat'

View File

@ -35,16 +35,60 @@ detect_rabbit() {
return 1
}
sed_if_rabbit() {
DEFAULT_RABBIT_PASSWORD="guest"
# Determinate is the given option present in the INI file
# ini_has_option config-file section option
function ini_has_option() {
local file=$1
local section=$2
local option=$3
local line
line=$(sed -ne "/^\[$section\]/,/^\[.*\]/ { /^$option[ \t]*=/ p; }" "$file")
[ -n "$line" ]
}
# Set an option in an INI file
# iniset config-file section option value
function iniset() {
local file=$1
local section=$2
local option=$3
local value=$4
if ! grep -q "^\[$section\]" "$file"; then
# Add section at the end
echo -e "\n[$section]" >>"$file"
fi
if ! ini_has_option "$file" "$section" "$option"; then
# Add it
sed -i -e "/^\[$section\]/ a\\
$option = $value
" "$file"
else
# Replace it
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" "$file"
fi
}
basic_configuration() {
conf_path=$1
if echo $conf_path | grep ".conf$" >/dev/null 2>&1
then
if detect_rabbit
iniset $target DEFAULT auth_encryption_key `hexdump -n 16 -v -e '/1 "%02x"' /dev/random`
iniset $target DEFAULT db_backend heat.db.sqlalchemy.api
iniset $target DEFAULT sql_connection "mysql://heat:heat@localhost/heat"
BRIDGE_IP=127.0.0.1
iniset $target DEFAULT heat_metadata_server_url "http://${BRIDGE_IP}:8000/"
iniset $target DEFAULT heat_waitcondition_server_url "http://${BRIDGE_IP}:8000/v1/waitcondition/"
iniset $target DEFAULT heat_watch_server_url "http://${BRIDGE_IP}:8003/"
if detect_rabbit
then
echo "rabbitmq detected, configuring $conf_path for rabbit" >&2
sed -i "/^rpc_backend\b/ s/impl_qpid/impl_kombu/" $conf_path
sed -i "/^rpc_backend/a rabbit_password=$DEFAULT_RABBIT_PASSWORD" $conf_path
iniset $conf_path DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
iniset $conf_path DEFAULT rabbit_password guest
else
echo "qpid detected, configuring $conf_path for qpid" >&2
iniset $conf_path DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid
fi
fi
}
@ -55,19 +99,22 @@ install_dir() {
for fn in $(ls $dir); do
f=$dir/$fn
target=$prefix/$f
if [ $fn = 'heat.conf.sample' ]; then
target=$prefix/$dir/heat.conf
fi
if [ -d $f ]; then
[ -d $prefix/$f ] || install -d $prefix/$f
[ -d $target ] || install -d $target
install_dir $f $prefix
elif [ -f $prefix/$f ]; then
echo "NOT replacing existing config file $prefix/$f" >&2
diff -u $prefix/$f $f
elif [ -f $target ]; then
echo "NOT replacing existing config file $target" >&2
diff -u $target $f
else
echo "Installing $fn in $prefix/$dir" >&2
install -m 664 $f $prefix/$dir
if [ $fn = 'heat-engine.conf' ]; then
sed -i "s/%ENCRYPTION_KEY%/`hexdump -n 16 -v -e '/1 "%02x"' /dev/random`/" $prefix/$f
install -m 664 $f $target
if [ $fn = 'heat.conf.sample' ]; then
basic_configuration $target
fi
sed_if_rabbit $prefix/$f
fi
done
}