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_DEFAULT="heat"
MYSQL_HEAT_PW=${MYSQL_HEAT_PW_DEFAULT} MYSQL_HEAT_PW=${MYSQL_HEAT_PW_DEFAULT}
HEAT_CONFIG="/etc/heat/heat-engine.conf" HEAT_CONFIG="/etc/heat/heat.conf"
ASSUME_YES="" ASSUME_YES=""
ELEVATE="" 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:: 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.conf
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api-cloudwatch.conf
sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat-api.conf
Source the keystone credentials created with tools/openstack 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 "/^\[DEFAULT\]/ a\\\nheat_metadata_server_url=http://${BRIDGE_IP}:8000/\n" /etc/heat/heat.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 "/^\[DEFAULT\]/ a\\\nheat_waitcondition_server_url=http://${BRIDGE_IP}:8000/v1/waitcondition/" /etc/heat/heat.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_watch_server_url=http://${BRIDGE_IP}:8003/" /etc/heat/heat.conf
Launch the Heat services 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. 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: The following files will need editing:
- /etc/heat/heat-api-cfn.conf - /etc/heat/heat.conf
- /etc/heat/heat-api-cloudwatch.conf
- /etc/heat/heat-api.conf
:: ::

View File

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

View File

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

View File

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

View File

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

View File

@ -27,7 +27,7 @@ if __name__ == '__main__':
config = ConfigParser.SafeConfigParser() config = ConfigParser.SafeConfigParser()
try: try:
config = ConfigParser.SafeConfigParser() 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') sql_connection = config.get('DEFAULT', 'sql_connection')
except Exception: except Exception:
sql_connection = 'mysql://heat:heat@localhost/heat' sql_connection = 'mysql://heat:heat@localhost/heat'

View File

@ -35,16 +35,60 @@ detect_rabbit() {
return 1 return 1
} }
sed_if_rabbit() { # Determinate is the given option present in the INI file
DEFAULT_RABBIT_PASSWORD="guest" # 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 conf_path=$1
if echo $conf_path | grep ".conf$" >/dev/null 2>&1 if echo $conf_path | grep ".conf$" >/dev/null 2>&1
then 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 then
echo "rabbitmq detected, configuring $conf_path for rabbit" >&2 echo "rabbitmq detected, configuring $conf_path for rabbit" >&2
sed -i "/^rpc_backend\b/ s/impl_qpid/impl_kombu/" $conf_path iniset $conf_path DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu
sed -i "/^rpc_backend/a rabbit_password=$DEFAULT_RABBIT_PASSWORD" $conf_path 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
fi fi
} }
@ -55,19 +99,22 @@ install_dir() {
for fn in $(ls $dir); do for fn in $(ls $dir); do
f=$dir/$fn f=$dir/$fn
target=$prefix/$f
if [ $fn = 'heat.conf.sample' ]; then
target=$prefix/$dir/heat.conf
fi
if [ -d $f ]; then if [ -d $f ]; then
[ -d $prefix/$f ] || install -d $prefix/$f [ -d $target ] || install -d $target
install_dir $f $prefix install_dir $f $prefix
elif [ -f $prefix/$f ]; then elif [ -f $target ]; then
echo "NOT replacing existing config file $prefix/$f" >&2 echo "NOT replacing existing config file $target" >&2
diff -u $prefix/$f $f diff -u $target $f
else else
echo "Installing $fn in $prefix/$dir" >&2 echo "Installing $fn in $prefix/$dir" >&2
install -m 664 $f $prefix/$dir install -m 664 $f $target
if [ $fn = 'heat-engine.conf' ]; then if [ $fn = 'heat.conf.sample' ]; then
sed -i "s/%ENCRYPTION_KEY%/`hexdump -n 16 -v -e '/1 "%02x"' /dev/random`/" $prefix/$f basic_configuration $target
fi fi
sed_if_rabbit $prefix/$f
fi fi
done done
} }