もくじ
前書き
OpenStackの手動インストールに挑戦していたときの、エラー対処方法備忘録です。
answer-fileを使用してOpenStackをインストールしたのですが、どうしてもインストールコマンド実行後に下記のエラーが発生してしまっていました。
Applying Puppet manifests [ ERROR ]
ERROR : Error appeared during Puppet run: 192.168.100.200_controller.pp |
[1;31mError: /Stage[main]/Sahara::Db::Sync/Exec[sahara-dbmanage]: Failed to call refresh: Command exceeded timeout [0m [1;31mError: /Stage[main]/Sahara::Db::Sync/Exec[sahara-dbmanage]: Command exceeded timeout [0m |
結論としてDbSyncセクションのタイムアウトが原因でした。
エラー対処の備忘録を書きます。
OpenStackのインストール方法は、下記のページを参考にさせていただきました。
https://www.adoc.co.jp/blog/e000247.html
本書の使用環境は以下のようになっています。
《使用環境》
仮想ソフト | Hyper-V(物理ホストはWindows Server 2016) |
仮想OS | CentOS7 |
仮想OSメモリ | 8GB |
仮想ドライブサイズ | 200GB |
仮想OSのIPアドレス | 192.168.100.200 |
OpenStackの手動インストール手順(トラブルシュートあり)
CentOS7をインストール
CentOS7を最小限のインストールでインストールしました。
※手順は省きます。
NetworkManagerを無効化
CentOS7のインストールが完了したら、NetworkManagerを無効化します。
# systemctl stop NetworkManager # systemctl disable NetworkManager # systemctl restart network |
[ifcfg-eth0]ファイルの編集
“/etc/sysconfig/network-scripts/”下にインターフェースの設定ファイルがあるので、viエディタなどで編集します。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
※青字の個所は環境によって変わります。(ifcfg-enp0s3など)
本件では以下のように編集しました。
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=※※変更しない※※ DEVICE=eth0 ONBOOT=yes IPADDR=192.168.100.200 NETMASK=255.255.255.0 GATEWAY=192.168.100.1 DNS1=192.168.100.1 |
インターフェースを再起動
インターフェースファイルを編集したので、変更を有効にするためにインターフェースを再起動します。
# ifdown ifcfg-eth0 # ifup ifcfg-eth0 |
net-toolsのインストールと全パッケージのアップデート
ifconfigなどのコマンドを使用するため”net-tools”をインストールして、さらに全パッケージのアップデートを行います。
# yum install net-tools # yum update -y |
RDOレポジトリの設定と[OpenStack-packstack]のインストール
その名の通り、RDOレポジトリの設定と[OpenStack-packstack]のインストールです。
# yum install -y https://rdoproject.org/repos/rdo-release.rpm # yum install -y openstack-packstack |
answer-fileの編集
本件では、answer-fileを編集してOpenStackをインストールします。
まずanswer-fileを作るため下記コマンドを実行します。
# packstack –gen-answer-file answer-file.txt |
本件では以下のように編集しました。
CONFIG_HEAT_INSTALL=y CONFIG_SAHARA_INSTALL=y CONFIG_LBAAS_INSTALL=y CONFIG_NEUTRON_FWAAS=y CONFIG_TROVE_INSTALL=y CONFIG_HORIZON_SSL=y CONFIG_KEYSTONE_ADMIN_PW=※※ダッシュボードログイン時のパスワードを指定します※※ CONFIG_PROVISION_DEMO=n |
$db_sync_timeoutを”0″にする
さて、ここがトラブルシュートの肝です。下のコマンドを実行して、”$db_sync_timeout = 300″と記載されているファイルを確認します。
# cd /usr/share/ # grep -Ri “timeout = 300” |
本件の環境では結果は以下となりました。
doc/postfix-2.10.1/README_FILES/TLS_LEGACY_README: smtpd_starttls_timeout = 300s doc/postfix-2.10.1/README_FILES/TLS_LEGACY_README: smtp_starttls_timeout = 300s doc/postfix-2.10.1/README_FILES/TLS_README: smtpd_starttls_timeout = 300s doc/postfix-2.10.1/README_FILES/TLS_README: smtp_starttls_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_lhlo_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_mail_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_quit_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_rcpt_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_starttls_timeout = 300s doc/postfix-2.10.1/main.cf.default:lmtp_xforward_timeout = 300s doc/postfix-2.10.1/main.cf.default:milter_content_timeout = 300s doc/postfix-2.10.1/main.cf.default:qmqpd_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_helo_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_mail_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_quit_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_rcpt_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_starttls_timeout = 300s doc/postfix-2.10.1/main.cf.default:smtp_xforward_timeout = 300s ruby/vendor_ruby/puppet/file_system/file_impl.rb: def exclusive_open(path, mode, options = ‘r’, timeout = 300, &block) ruby/vendor_ruby/puppet/file_system.rb: def self.exclusive_open(path, mode, options = ‘r’, timeout = 300, &block) openstack-puppet/modules/rsync/templates/header.erb:timeout = 300 openstack-puppet/modules/nova/manifests/db/online_data_migrations.pp: $db_sync_timeout = 300, openstack-puppet/modules/nova/manifests/db/sync.pp: $db_sync_timeout = 300, openstack-puppet/modules/nova/manifests/db/sync_api.pp: $db_sync_timeout = 300, openstack-puppet/modules/neutron/manifests/db/sync.pp: $db_sync_timeout = 300, |
ここで、上で青文字にした「$db_sync_timeout = 300」に注目し、対象のファイルを確認します。
※対象ファイル名は赤字にしています。
上記より、本件の環境で$db_sync_timeout = 300が記載されているファイルは4つであるとわかります。
openstack-puppet/modules/nova/manifests/db/online_data_migrations.pp openstack-puppet/modules/nova/manifests/db/sync.ppopenstack-puppet/modules/nova/manifests/db/sync_api.pp openstack-puppet/modules/neutron/manifests/db/sync.pp |
これらをひとつずつviエディタなどで開き、「$db_sync_timeout = 300」を「$db_sync_timeout = 0」と変更します。
# vi openstack-puppet/modules/nova/manifests/db/online_data_migrations.pp
“openstack-puppet/modules/nova/manifests/db/online_data_migrations.pp” 40L, 1117C# include ::nova::deps exec { ‘nova-db-online-data-migrations’: |
すべての「$db_sync_timeout = 300」を「$db_sync_timeout = 0」に変更したら、OpenStackのインストールコマンドを実行します。
ここで、「–timeout=0」のオプションを付与して実行します。
# packstack –answer-file answer-file.txt –timeout=0 –debug |
1~2時間経過すると終了します。
これで成功しました。
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ****** Additional information: |
再起動します。
# reboot |
ネットワーク設定
再起動が完了したら、ネットワーク設定を行います。
まずインターフェースファイルのバックアップを取得します。
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0_bak |
“ifcfg-br-ex”という新しいインターフェースファイルを作成します。
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br-ex |
“ifcfg-br-ex”をviで開いて以下のように編集しました。
# vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex |
もともとあった”ifcfg-eth0″は以下のように編集しました。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 |
ネットワークを再起動します。
# service network restart # service neutron-openvswitch-agent restart # service neutron-server restart |
ダッシュボードへのログイン
最後に、ダッシュボードのログイン画面が表示されて、answer-fileに記載したパスワードでログインできることを確認します。
ダッシュボードのログインURLは「https://[ホストIPアドレス]/dashboard/」です。

警告がでるので[詳細情報]ボタンをクリックして、、


ログイン画面が出たら、ユーザ名とパスワードを入力して[接続]をクリックします。

ログインできました!

後書き
本件のエラーは、もしかしたらバグなのかもしれません。
いろいろなサイトを参考にしましたが、決定的となったのは以下の英語サイトでした。
※下のサイトで、まさに”bug”と書かれていますので。。
https://bugs.launchpad.net/packstack/+bug/1724272
新しいOpenStack今後リリースされていくと思いますが、本記事が少しでも役に立てれば幸いです。
最後までお読みいただき、ありがとうございました。
|
|