Help us understand the problem. What is going on with this article?

DevstackでMuranoを動かしてみた

More than 3 years have passed since last update.

参考にした資料

1. devstackをclone

$ cd ~/
$ git clone https://github.com/openstack-dev/devstack.git
$ git checkout -b stable/juno origin/stable/juno

2. locarcのサンプルの取得/設定

$ cd ~/devstack
$ git clone https://raw.githubusercontent.com/stackforge/Murano-deployment/release-0.4/getting-started/localrc

localrcのHOST_IP,default_password,FLOATING_RANGEに自分の環境にあった値を記入

3. Muranoのインストール用スクリプトの取得/配置/設定

$ cd ~/
$ git clone https://github.com/stackforge/murano.git
$ cp murano/contrib/devstack/lib/* devstack/lib
$ cp murano/contrib/devstack/extras.d/* devstack/extras.d
$ echo "ENABLED_SERVICES+=,murano,murano-api,murano-engine" >> ~/devstack/localrc

4. stack.shの実行

$ ~/devstack/stack.sh
2015-04-05 03:21:56.920 | + service=h-eng
2015-04-05 03:21:56.920 | + echo 'Error: Service h-eng is not running'
2015-04-05 03:21:56.920 | Error: Service h-eng is not running
2015-04-05 03:21:56.920 | + '[' -n /opt/stack/status/stack/h-eng.failure ']'
2015-04-05 03:21:56.921 | + die 1409 'More details about the above errors can be found with screen, with ./rejoin-stack.sh'
2015-04-05 03:21:56.921 | + local exitcode=0
2015-04-05 03:21:56.921 | [Call Trace]
2015-04-05 03:21:56.921 | ./stack.sh:1403:service_check
2015-04-05 03:21:56.921 | /home/ukinau/devstack/functions-common:1409:die
2015-04-05 03:21:56.926 | [ERROR] /home/ukinau/devstack/functions-common:1409 More details about the above errors can be found with screen, with ./rejoin-stack.sh
2015-04-05 03:21:57.930 | Error on exit

heat-engineの起動チェックで、コケてインストールが失敗しているように見えるが、heat-engine以外はキチンと起動しているので、下記手順でheat-engineを起動しプロセスレベルでは起動完了とする

5. heat-engineが依存しているライブラリのVersion違いに対応する

参考バグ:https://bugs.launchpad.net/devstack/+bug/1404163

devstackでインストールされるバージョンだとダメだとheat-engineに怒られる(こんな感じ)

2015-04-04 23:20:47.629 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (sqlalchemy-migrate 0.9.6 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('sqlalchemy-migrate==0.9.1'))

のでバージョンをダウングレードします。
下記がバージョンを変更する必要があるパッケージ類です

$ sudo pip uninstall sqlalchemy-migrate
$ sudo pip uninstall python-heatclient
$ sudo pip uninstall oslo.utils
$ sudo pip uninstall oslo.messaging
$ sudo pip uninstall oslo.db
$ sudo pip uninstall oslo.i18n
$ sudo pip uninstall eventlet
$ sudo pip uninstall oslo.config
$ sudo pip uninstall keystonemiddleware

$ sudo pip install sqlalchemy-migrate==0.9.1
$ sudo pip install python-heatclient==0.2.9
$ sudo pip install oslo.utils==1.2.1
$ sudo pip install oslo.messaging==1.4.0
$ sudo pip install oslo.i18n==1.3.1
$ sudo pip install oslo.db==1.0.3
$ sudo pip install oslo.config==1.6.0
$ sudo pip install keystonemiddleware==1.3.0
$ sudo pip install eventlet==0.15.2

上記を実行したあとに、heat-engine実行

$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

clients_keystone.endpoint_type = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.897 DEBUG heat.openstack.common.service [-] clients_keystone.insecure      = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] clients_keystone.key_file      = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] revision.heat_revision         = unknown from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] ******************************************************************************** from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2075
2015-04-04 23:42:49.902 INFO oslo.messaging._drivers.impl_rabbit [-] Connected to AMQP server on 192.168.1.226:5672

分かりづらいですが、動きました。

これで、プロセスレベルではきちんと動いているように見えます。

Dashboardから操作しましょう。しかし。。。

6. Dashboardからpackageを操作しようとすると、エラーがでる

参考バグhttps://bugs.launchpad.net/oslo-incubator/+bug/1328247

Murano-dashboardのlog.pyが古いので、最新版をコピーするとなおるらしい。

$ cp /opt/stack/horizon/openstack_dashboard/openstack/common/log.py  /opt/stack/murano-dashboard/muranodashboard/openstack/common/log.py
$ sudo service apache2 restart

ここまでできて、OpenStack with Murano by devstackの起動完了です。
一通り試しましたが、他にエラーはでてません。

NextStep

ここから先は、Muranoの利用方法についてなので、ドキュメントを読みながらよしなに、どうぞ

パッケージの登録をして、Enviromentを作ってDeployなどなど・・・

1番最初に試すのは公式Wikiのこちらの資料がいいのではないでしょうか
How_to_create_new_app_on_murano_application_catalog_automatically

ひまがあれば、使い方のユースケースも次回投稿しますが、今日はここまで


参考資料(heat-engine起動の試行錯誤)

$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:20:47.629 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (sqlalchemy-migrate 0.9.6 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('sqlalchemy-migrate==0.9.1'))

$ sudo pip uninstall sqlalchemy-migrate
$ sudo pip install sqlalchemy-migrate==0.9.1
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $!>/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:24:13.454 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (python-heatclient 0.4.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('python-heatclient<0.3.0,>=0.2.9'))

$ sudo pip uninstall python-heatclient
$ sudo pip install python-heatclient==0.2.9
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:25:19.094 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (oslo.utils 1.4.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('oslo.utils<=1.2.1,>=1.0.0'))

$ sudo pip uninstall oslo.utils
$ sudo pip install oslo.utils==1.2.1
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:26:23.542 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (oslo.messaging 1.8.1 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('oslo.messaging<1.5.0,>=1.4.0'))

$ sudo pip uninstall oslo.messaging
$ sudo pip install oslo.messaging==1.4.0
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:36:47.025 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (oslo.i18n 1.5.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('oslo.i18n<=1.3.1,>=1.0.0'))

$ sudo pip uninstall oslo.i18n
$ sudo pip install oslo.i18n==1.3.1
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:38:02.831 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (oslo.db 1.7.1 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('oslo.db<1.1,>=1.0.0'))

$ sudo pip uninstall oslo.db
$ sudo pip install oslo.db==1.0.3
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:38:54.489 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (oslo.config 1.9.3 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('oslo.config<=1.6.0,>=1.4.0'))

$ sudo pip uninstall oslo.config
$ sudo pip install oslo.config==1.6.0
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"


2015-04-04 23:40:25.153 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (keystonemiddleware 1.5.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('keystonemiddleware<1.4.0,>=1.0.0'))

$ sudo pip uninstall keystonemiddleware
$ sudo pip install keystonemiddleware==1.3.0
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"


2015-04-04 23:41:47.161 CRITICAL heat.engine [-] Could not load AWSTemplateFormatVersion.2010-09-09: (eventlet 0.17.2 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('eventlet<=0.15.2,>=0.15.1'))

$ sudo pip uninstall eventlet
$ sudo pip install eventlet==0.15.2
$ /opt/stack/heat/bin/heat-engine --config-file=/etc/heat/heat.conf & echo $! >/opt/stack/status/stack/h-eng.pid; fg || echo "h-eng failed to start" | tee "/opt/stack/status/stack/h-eng.failure"

2015-04-04 23:42:49.893 DEBUG heat.openstack.common.service [-] heat_api_cfn.workers           = 0 from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.895 DEBUG heat.openstack.common.service [-] auth_password.allowed_auth_uris = [] from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.895 DEBUG heat.openstack.common.service [-] auth_password.multi_cloud      = False from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.896 DEBUG heat.openstack.common.service [-] clients_keystone.ca_file       = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.896 DEBUG heat.openstack.common.service [-] clients_keystone.cert_file     = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.896 DEBUG heat.openstack.common.service [-] clients_keystone.endpoint_type = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.897 DEBUG heat.openstack.common.service [-] clients_keystone.insecure      = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] clients_keystone.key_file      = None from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] revision.heat_revision         = unknown from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2073
2015-04-04 23:42:49.899 DEBUG heat.openstack.common.service [-] ******************************************************************************** from (pid=825) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py:2075
2015-04-04 23:42:49.902 INFO oslo.messaging._drivers.impl_rabbit [-] Connected to AMQP server on 192.168.1.226:5672
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした