openstack-manuals/doc/install-guide/section_debconf-dbconfig-common.xml
Diane Fleming 42b23e8c84 Edits to install guide
Closes-Bug: #1249082

Change-Id: I9f68073da5ca25867b2b8c099cce5df34f6a3eec
author: diane fleming
2013-11-10 06:43:51 +01:00

157 lines
6.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<section xml:id="debconf-dbconfig-common"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Configure the database with dbconfig-common</title>
<para>The <package>dbconfig-common</package> package provides a
standard Debian interface that enables you to configure Debian
database parameters. It includes localized prompts for many
languages and it supports the OpenStack database back ends:
SQLite, MySQL, and PostgreSQL.</para>
<para>By default, the <package>dbconfig-common</package> package
configures the OpenStack services to use SQLite3. So if you use
<package>debconf</package> in non-interactive mode and without
pre-seeding, the OpenStack services that you install use
SQLite3.</para>
<para>By default, <package>dbconfig-common</package> does not
provide access to database servers over a network. If you want the
<package>dbconfig-common</package> package to prompt for remote
database servers that are accessed over a network and not through
a UNIX socket file, reconfigure it, as follows:</para>
<screen><prompt>#</prompt> <userinput>apt-get install dbconfig-common &amp;&amp; dpkg-reconfigure dbconfig-common</userinput></screen>
<para>These screens appear when you re-configure the
<package>dbconfig-common</package> package:</para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_keep_admin_pass.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_used_for_remote_db.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<para>Unlike other <package>debconf</package> prompts, you cannot
pre-seed the responses for the <package>dbconfig-common</package>
prompts by using <command>debconf-set-selections</command>.
Instead, you must create a file in
<filename>/etc/dbconfig-common</filename>. For example, you
might create a keystone configuration file for
<package>dbconfig-common</package> that is located in
<filename>/etc/dbconfig-common/keystone.conf</filename>, as
follows:</para>
<programlisting language="ini">dbc_install='true'
dbc_upgrade='true'
dbc_remove=''
dbc_dbtype='mysql'
dbc_dbuser='keystone'
dbc_dbpass='MyKeyStoneDbPassWord'
dbc_dbserver=''
dbc_dbport=''
dbc_dbname='keystonedb'
dbc_dbadmin='root'
dbc_basepath=''
dbc_ssl=''
dbc_authmethod_admin=''
dbc_authmethod_user=''</programlisting>
<para>After you create this file, run this command:</para>
<screen><prompt>#</prompt> <userinput>apt-get install keystone</userinput></screen>
<para>The Identity Service is installed with MySQL as the database
back end, <literal>keystonedb</literal> as database name, and the
localhost socket file.</para>
<para>The <package>cinder-common</package> package displays these
screens:</para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_1_configure-with-dbconfig-yes-no.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_2_db-types.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_3_connection_method.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_4_mysql_root_password.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_5_mysql_app_password.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata scale="40"
fileref="figures/debconf-screenshots/dbconfig-common_6_mysql_app_password_confirm.png"
/>
</imageobject>
</mediaobject>
</informalfigure>
<para>To access a MySQL server remotely, you must make it accessible
as root from a remote server. To do so, run the
<package>openstack-proxy-node</package> package command:</para>
<screen><prompt>#</prompt> <userinput>/usr/share/openstack-proxy-node/mysql-remote-root</userinput></screen>
<para>Alternatively, if you do not want to install this package, run
this script to enable remote root access:</para>
<programlisting language="bash">#!/bin/sh
set -e
SQL="mysql --defaults-file=/etc/mysql/debian.cnf -Dmysql -e"
ROOT_PASS=`${SQL} "SELECT Password FROM user WHERE User='root' LIMIT 1;" \
| tail -n 1`
${SQL} "REPLACE INTO user SET host='%', user='root',\
password='${ROOT_PASS}', Select_priv='Y', Insert_priv='Y',\
Update_priv='Y', Delete_priv='Y', Create_priv='Y', Drop_priv='Y',\
Reload_priv='Y', Shutdown_priv='Y', Process_priv='Y', File_priv='Y',\
Grant_priv='Y', References_priv='Y', Index_priv='Y', Alter_priv='Y',\
Super_priv='Y', Show_db_priv='Y', Create_tmp_table_priv='Y',\
Lock_tables_priv='Y', Execute_priv='Y', Repl_slave_priv='Y',\
Repl_client_priv='Y', Create_view_priv='Y', Show_view_priv='Y',\
Create_routine_priv='Y', Alter_routine_priv='Y', Create_user_priv='Y',\
Event_priv='Y', Trigger_priv='Y' "
${SQL} "FLUSH PRIVILEGES"
sed -i 's|^bind-address[ \t]*=.*|bind-address = 0.0.0.0|' /etc/mysql/my.cnf
/etc/init.d/mysql restart</programlisting>
<para>You must enable remote access before you install OpenStack
services.</para>
</section>