1. Select a Linux Distribution
Only Ubuntu 14.04 (Trusty), Fedora 21 (or Fedora 22) and CentOS/RHEL 7 are documented here.
OpenStack also runs and is packaged on other flavors of Linux such as OpenSUSE and Debian.
2. Install Selected OS
In order to correctly install all the dependencies, we assume a specific minimal version of the supported distributions to make it as easy as possible.
We recommend using a minimal install of Ubuntu or Fedora server in a VM if this is your first time.
3. Setup Python
Download Python: https://www.python.org/downloads/
Setup Python:
tar -xzf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make
make install
4. Setup Pip
Download Pip: https://pypi.python.org/pypi/pip#downloads
Setup Pip:
tar -xzf pip-7.1.2.tar.gz
cd pip-7.1.2
python setup.py install
5. Setup Git
Setup git tool:
apt-get install git
apt-get install git-review
6. Download DevStack
Download DevStack by git: git clone https://git.openstack.org/openstack-dev/devstack
7. Download Murano Configuration Files
Download Murano Project: git clone https://git.openstack.org/openstack/murano
Copy Murano Configuration Files to DevStack:
$ cp murano/contrib/devstack/lib/murano DevStack/lib
$ cp murano/contrib/devstack/lib/murano-dashboard DevStack/lib
$ cp murano/contrib/devstack/extras.d/70-murano.sh DevStack/extras.d
8. Configure DevStack local.conf
Add local.conf file in DevStack root directory.
My local.conf is as follows.
# Sample ``local.conf`` for user-configurable variables in ``stack.sh`` # NOTE: Copy this file to the root DevStack directory for it to work properly. # ``local.conf`` is a user-maintained settings file that is sourced from ``stackrc``. # This gives it the ability to override any variables set in ``stackrc``. # Also, most of the settings in ``stack.sh`` are written to only be set if no # value has already been set; this lets ``local.conf`` effectively override the # default values. # This is a collection of some of the settings we have found to be useful # in our DevStack development environments. Additional settings are described # in http://devstack.org/local.conf.html # These should be considered as samples and are unsupported DevStack code. # The ``localrc`` section replaces the old ``localrc`` configuration file. # Note that if ``localrc`` is present it will be used in favor of this section. [[local|localrc]] # Minimal Contents # ---------------- # While ``stack.sh`` is happy to run without ``localrc``, devlife is better when # there are a few minimal variables set: # If the ``SERVICE_TOKEN`` and ``*_PASSWORD`` variables are not set # here you will be prompted to enter values for them by ``stack.sh`` # and they will be added to ``local.conf``. ADMIN_PASSWORD=123456 MYSQL_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=$ADMIN_PASSWORD # ``HOST_IP`` and ``HOST_IPV6`` should be set manually for best results if # the NIC configuration of the host is unusual, i.e. ``eth1`` has the default # route but ``eth0`` is the public interface. They are auto-detected in # ``stack.sh`` but often is indeterminate on later runs due to the IP moving # from an Ethernet interface to a bridge on the host. Setting it here also # makes it available for ``openrc`` to include when setting ``OS_AUTH_URL``. # Neither is set by default. HOST_IP=192.168.98.70 #HOST_IPV6=2001:db8::7 # Logging # ------- # By default ``stack.sh`` output only goes to the terminal where it runs. It can # be configured to additionally log to a file by setting ``LOGFILE`` to the full # path of the destination log file. A timestamp will be appended to the given name. LOGFILE=$DEST/logs/stack.sh.log # Old log files are automatically removed after 7 days to keep things neat. Change # the number of days by setting ``LOGDAYS``. LOGDAYS=2 # Nova logs will be colorized if ``SYSLOG`` is not set; turn this off by setting # ``LOG_COLOR`` false. #LOG_COLOR=False # Using milestone-proposed branches # --------------------------------- # Uncomment these to grab the milestone-proposed branches from the repos: #CINDER_BRANCH=milestone-proposed #GLANCE_BRANCH=milestone-proposed #HORIZON_BRANCH=milestone-proposed #KEYSTONE_BRANCH=milestone-proposed #KEYSTONECLIENT_BRANCH=milestone-proposed #NOVA_BRANCH=milestone-proposed #NOVACLIENT_BRANCH=milestone-proposed #NEUTRON_BRANCH=milestone-proposed #SWIFT_BRANCH=milestone-proposed # Swift # ----- # Swift is now used as the back-end for the S3-like object store. If Nova's # objectstore (``n-obj`` in ``ENABLED_SERVICES``) is enabled, it will NOT # run if Swift is enabled. Setting the hash value is required and you will # be prompted for it if Swift is enabled so just set it to something already: SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5 # For development purposes the default of 3 replicas is usually not required. # Set this to 1 to save some resources: SWIFT_REPLICAS=1 # The data for Swift is stored by default in (``$DEST/data/swift``), # or (``$DATA_DIR/swift``) if ``DATA_DIR`` has been set, and can be # moved by setting ``SWIFT_DATA_DIR``. The directory will be created # if it does not exist. SWIFT_DATA_DIR=$DEST/data # Tempest # ------- # Install the tempest test suite enable_service tempest # Enable Heat enable_service heat h-api h-api-cfn h-api-cw h-eng # Enable Murano enable_service murano murano-api murano-engine
The above red font parts are very important for setup.
9. Configure pypi source for setup
cd ~/.pip/
touch pip.conf
The pip.conf is as follows.
[global] index-url=http://pypi.v2ex.com/simple trusted-host=pypi.v2ex.com
[global] index-url=http://pypi.douban.com/simple/ trusted-host=pypi.douban.com
We can use one of two pypi sources like that.
This step will speed up the installation.
10.Install OpenStack and Murano
cd devstack
./stack.sh
Summary:
Seting up Murano by DevStack is very simple.
But if the operation system is restarted after installation, maybe the Murano environment is broken.
So we'd better to set up Murano by apt-get.
This kind of installation will be permanent even if the operation system is restarted.