magnum/doc/source/dev/dev-manual-devstack.rst
Eli Qiao ba6232ce3d Add more note when play magnum with devstack
* If there is localrc exists, devstack will ignore local.conf.
  Add some note to clarify this.

* Add VOLUME_BACKING_FILE_SIZE=20G when create cinder volume.
  Since when create a default bay, it will require at least 5G * 2
  volume, but the default cinder volume group size is only 10G, even
  it will sitify 5G *2, but I got failed when use default volume group
  size.

* And some other nit fixes.

Change-Id: I24c894d3799ee5aecde551a47c15b6a98546874a
2015-05-22 14:44:33 +08:00

189 lines
5.9 KiB
ReStructuredText

.. _dev-manual-install:
Manually Adding Magnum to DevStack
==================================
If you are getting started with Magnum it is recommended you follow the
:ref:`dev-quickstart` to get up and running with Magnum. This guide covers
a more in-depth process to setup Magnum with devstack.
Magnum depends on Nova, Glance, Heat and Neutron to create and schedule
virtual machines to simulate bare-metal. For bare-metal fully support, it
is still under active development.
This session has only been tested on Ubuntu 14.04 (Trusty) and Fedora 20/21.
We recommend users to select one of them if it is possible.
Clone DevStack::
cd ~
git clone https://github.com/openstack-dev/devstack.git devstack
Create devstack/localrc with minimal settings required to enable Heat
and Neutron, refer to http://docs.openstack.org/developer/devstack/guides/neutron.html
for more detailed neutron configuration.::
cd devstack
cat >localrc <<END
# Modify to your environment
FLOATING_RANGE=192.168.1.224/27
PUBLIC_NETWORK_GATEWAY=192.168.1.225
PUBLIC_INTERFACE=em1
# Credentials
ADMIN_PASSWORD=password
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
enable_service rabbit
# Enable Neutron which is required by Magnum and disable nova-network.
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service neutron
# Enable Heat services
enable_service h-eng
enable_service h-api
enable_service h-api-cfn
enable_service h-api-cw
FIXED_RANGE=10.0.0.0/24
Q_USE_SECGROUP=True
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=
PHYSICAL_NETWORK=public
OVS_PHYSICAL_BRIDGE=br-ex
# Log all output to files
LOGFILE=$HOME/devstack.log
SCREEN_LOGDIR=$HOME/logs
VOLUME_BACKING_FILE_SIZE=20G
END
cat > local.sh << END_LOCAL_SH
#!/bin/sh
sudo iptables -t nat -A POSTROUTING -o br-ex -j MASQUERADE
END_LOCAL_SH
chmod 755 local.sh
./stack.sh
At this time, Magnum has only been tested with the Fedora Atomic micro-OS.
Magnum will likely work with other micro-OS platforms, but each one requires
individual support in the heat template.
The next step is to store the Fedora Atomic micro-OS in glance. The steps for
updating Fedora Atomic images are a bit detailed. Fortunately one of the core
developers has made Atomic images available via the web:
If using the m-1 tag or tarball, please use the documentation shipped with the
milestone as the current master instructions are slightly incompatible.
Create a new shell, and source the devstack openrc script::
source ~/devstack/openrc admin admin
cd ~
wget https://fedorapeople.org/groups/magnum/fedora-21-atomic-3.qcow2
glance image-create --name fedora-21-atomic-3 \
--is-public True \
--disk-format qcow2 \
--property os-distro='fedora-atomic'\
--container-format bare < fedora-21-atomic-3.qcow2
test -f ~/.ssh/id_rsa.pub || ssh-keygen
nova keypair-add --pub-key ~/.ssh/id_rsa.pub testkey
Next, create a database in MySQL for Magnum::
mysql -h 127.0.0.1 -u root -ppassword mysql <<EOF
CREATE DATABASE IF NOT EXISTS magnum DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON magnum.* TO
'root'@'%' IDENTIFIED BY 'password'
EOF
Next, clone and install Magnum::
cd ~
git clone https://github.com/openstack/magnum
cd magnum
sudo pip install -e .
Next configure Magnum::
# create the magnum conf directory
sudo mkdir -p /etc/magnum
# copy sample config and modify it as necessary
sudo cp etc/magnum/magnum.conf.sample /etc/magnum/magnum.conf
# enable debugging output
sudo sed -i "s/#debug\s*=.*/debug=true/" /etc/magnum/magnum.conf
# enable more verbose output
sudo sed -i "s/#verbose\s*=.*/verbose=true/" /etc/magnum/magnum.conf
# set RabbitMQ userid
sudo sed -i "s/#rabbit_userid\s*=.*/rabbit_userid=stackrabbit/" /etc/magnum/magnum.conf
# set RabbitMQ password
sudo sed -i "s/#rabbit_password\s*=.*/rabbit_password=password/" /etc/magnum/magnum.conf
# set SQLAlchemy connection string to connect to MySQL
sudo sed -i "s/#connection\s*=.*/connection=mysql:\/\/root:password@localhost\/magnum/" /etc/magnum/magnum.conf
# set Keystone account username
sudo sed -i "s/#admin_user\s*=.*/admin_user=admin/" /etc/magnum/magnum.conf
# set Keystone account password
sudo sed -i "s/#admin_password\s*=.*/admin_password=password/" /etc/magnum/magnum.conf
# set admin Identity API endpoint
sudo sed -i "s/#identity_uri\s*=.*/identity_uri=http:\/\/127.0.0.1:35357/" /etc/magnum/magnum.conf
# set public Identity API endpoint
sudo sed -i "s/#auth_uri\s*=.*/auth_uri=http:\/\/127.0.0.1:5000\/v2.0/" /etc/magnum/magnum.conf
Next, clone and install the client::
cd ~
git clone https://github.com/openstack/python-magnumclient
cd python-magnumclient
sudo pip install -e .
Next, configure the database for use with Magnum::
magnum-db-manage upgrade
Finally, configure the keystone endpoint::
keystone service-create --name=magnum \
--type=container \
--description="Magnum Container Service"
keystone endpoint-create --service=magnum \
--publicurl=http://127.0.0.1:9511/v1 \
--internalurl=http://127.0.0.1:9511/v1 \
--adminurl=http://127.0.0.1:9511/v1 \
--region RegionOne
Next start the API service::
magnum-api
Finally start the conductor service in a new window::
magnum-conductor
Magnum should now be up and running. Further steps on utilizing Magnum and
deploying containers can be found in guide :ref:`dev-quickstart`.