ba6232ce3d
* 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
189 lines
5.9 KiB
ReStructuredText
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`.
|