OpenStack初心者必見!動かすまでの手順を全て記載!

openstack-software-diagram

自作PCのESXi上で無事OpenStackをインストールする事が出来たので、手順を紹介します。

とりあえず動かすまでの手順は全て含めました。必要なイメージのダウンロードや事前準備等も全てです。

「OpenStackを一度試してみたい」という方、この手順に沿って操作すれば必ず構築できるはず。

非常に長くなっていますが、それは画面キャプチャなど、必要な情報を全て含めているからです。

慣れたら30分で出来るようになります。

スポンサーリンク
レクタングル大

はじめに

OpenStackは、ややこしい、と思っていませんか?

これが、私がOpenStackに出会った時の感想です。

私はHyper-V/VMwareの経験があります。(ブログを見た事がある人はご存知ですが、VCP-DCV/VCP-NV/VCIX-NVを持っています)

その知識を総動員しても、OpenStackはややこしかった。

一番の理由は「なんか、コンポーネントが多すぎて、何から手をつけたら良いか解らん・・・」だと思います。

Nova?Neutron?なんじゃそれ?って感じです。

さらに、Linuxは色んなディストリビューションがあります。また、OpenStackは色んなインストール方法があります。

さらにさらに、HAとかコンピュートノードの分離等を考えると、本当に色んなやり方があります。

この、色んなやり方ってのは、初心者に対しては迷う要素なだけです。

「ただ、試してみたいのに。。OpenStackでVMを作ってみたいだけなのに・・・」って人でも、OpenStackの環境を構築するだけで苦労します。

だから、諦める人も多いでしょう。そんな人を沢山見てきました。

ESXiの導入なんてシンプルなのに、、、OpenStackは難しい。

そもそもESXiとOpenStackは解決する課題が違うのですが、一般人からしたら上記のような印象だと思います。

この記事では、とりあえず動くところまでの手順を網羅しました

まずは動かせる状態まで持っていきましょう。

一度動けば、どんなコンポーネントがOpenStackを支えているかの把握も容易になります。OpenStackで何が出来るか?も理解しやすくなります。

動かせれなければ「何が足りないのか?」「どの設定がダメなのか?」と無駄に悩む事が増えます。

この記事では、ESXi上にOpenStackを構築する手順を全て網羅しました。

OpenStackが動くLinuxのダウンロードからインストール、OpenStackの設定など、全てです。

私と同じ環境を事前に作る事をオススメします

この手順書は、私の検証環境で実証しています。

私の検証環境の作り方は、以下の記事に全て網羅しています。機材、組み立て、ESXiの導入等、全てです。

H170-PROとi7-6700KでのESXiサーバ構築手順!
ASUSのH170-PROマザーボードとSkylake i7-6700Kの組み合わせで無事にESXiの構築に成功しました。 ESXiは...

OpenStackの環境構築は、H/W・Linuxディストリビューションにかなり依存します。

その為、同じ環境を構築する事を強くオススメします。

また、この検証環境ができれば、OpenStackやvSphereなどなど、さまざまな検証が可能となります。私が今後追加する予定の色んな仮想可ソフトウェアの検証も、上記検証環境をベースに行います。

殆どの人は、まずはソフトウェアの動作を確認したい・見てみたいはずです。それなのに、H/WのチップセットやLinuxの細かい設定等、そういう「ソフトウェアの確認にはどうでもいいこと」に時間を費やすのは無駄だと感じているはずです。

上記と同じ環境を準備し、この手順に沿えば、とりあえず私が行った事と同じ結果になるはずです。(保証はできませんが・・・)

手順は飛ばさないで下さい

全ての手順には意味があります。

特にbr-exの設定当たりで急にコマンドラインになったりするので、少し戸惑うかもしれません。

でも、それにも意味があります。飛ばさないで下さい。

この記事で、できること

  • ESXiの上にOpenStackを導入し、OpenStack上でインスタンスを起動できる
  • OpenStack上のインスタンスに外部ネットワークからログインできる

この記事に書いていない事

  • OpenStackのアーキテックチャーなど、技術的なこと。この手順書は入門編です。
  • なぜ、この設定にしたか?なぜ、この手順か?など。とりあえず初心者が動かすことが目的です。

参考にさせて頂いたサイト

前提

システム関係

  • 私と同様のESXi環境が構築されている事
  • 管理用パソコンにvSphere Clientが導入されている事
  • ESXi環境をvSphere Clientから操作できる事

ネットワーク関係

  • 私の家のネットワークは192.168.1.0/24のフラットなネットワークです。ここでの「フラット」とは、192.168.1.0/24のレンジのノードは、VLANやVXLANなどを使わずに普通にPINGで相互通信が出来るということです。
  • なので、以降は192.168.1.0/24を適宜自分の家のネットワークセグメントに置き換えて下さい。
  • ちなみに、私の環境のIPアドレスは以下の通り
    • 192.168.1.231:ESXi
    • 192.168.1.232:OpenStackのVM用(これから作る)

事前準備。ESXiの設定

リソースの確認

まず、ESXiが正しくリソースを認識している事を確認します。

vSphere Clientを起動します。

1

「サマリ」をクリック。CPU/メモリ/ストレージが、ESXi上で正しく認識されている事を確認。

2

仮想スイッチの設定変更

「構成」をクリック。

3

「ネットワーク」をクリック。物理アダプタの上の「プロパティ」をクリック。(一番上のプロパティではない)

4

下の「編集」をクリック。(今から、左の無差別モードの設定を変えます)

5

「セキュリティ」をクリック。

6

「無差別モード」を承諾に変更し、「OK」をクリック。

7

無差別モードが「承諾」に変わった事を確認し、「閉じる」をクリック。

8

OpenStackを導入するLinuxイメージの取得・保存

以下のリンクにアクセスし、Linuxイメージを取得。

「CentOS-7-x86_64-DVD-1511.iso」をローカルにダウンロード。

9

ダウンロードされた事を確認。

10

LinuxイメージをESXiのデータストアに保存

※管理用PCからネットワークインストールもできますが、今後何度もやる事を想定し、データストアに保存します。とりあえず以下の手順に沿ってやって下さい。

「ストレージ」をクリック。

11

右の「datastore1」を右クリックし、「データストアの参照」をクリック。(データストアブラウザが表示される)

12

左の「/」が選択された状態のはずです。まずはフォルダを作って管理したいので、上のフォルダの+があるアイコンをクリックします。

13

「OS_Image」とでも入力し「OK」をクリック。

14

「OS_Image」フォルダが出来たので、右の「OS_Image」をダブルクリック。(「OS_Image」に移動されます)

15

上の「ドラム缶に上矢印」アイコンをクリック。

16

先ほどダウンロードした「CentOS-7-x86_64-DVD-1511.iso」を選択肢、「開く」をクリック。

17

「はい」をクリック。

18

転送が始まります。ネットワークの速度に依存しますが、10分程度かかるので休憩しましょう。

19

終わったら、以下の画面のようにファイルが転送されている事が確認できるはずです。

20

以上で事前準備は終了です。上記データストアブラウザを閉じて下さい。

次は、OpenStackのホストOSとなるLinuxをESXiに導入する作業です。

ESXiにOpenStack用VMを作成する

まず、VMの作成です。

左にある「192.168.1.231」を右クリックし、「新規仮想マシン」をクリック。

21

そのまま「次へ」

22

名前に「OpenStack1」を入力し、「次へ」。(何でもいいですが、合わせた方が後々わかりやすいかと)

23

そのまま「次へ」

24

ゲストOSは「Linux」、バージョンは「CentOS 4/5/6/7(64ビット)」を選択し、「次へ」

25

そのまま「次へ」

26

仮想ディスクサイズに「100」を、「Thin Provision」を選択し、「次へ」

27

「完了前に仮想マシンの設定を編集」をチェックし、「続行」

28

メモリサイズを「20」に変更し、左の「CPU(追加中)」をクリック。

29

ソケットあたりのコアの数を「4」に変更し、「新規CD/DVD(追加中)」をクリック。

30

「データストアISOファイル」を選択し、左の「参照」をクリック。

31

先ほどアップロードしたISOを探します。「OS_Image」をダブルクリック。

33

「CentOS-7-…」をダブルクリック。

34

「パワーオン時に接続」をチェックし、「終了」をクリック。

35

以上でOpenStackを稼働させるLinuxのVM設定が終了です。

参考:私の環境ではCPU/MMUの仮想化は不要でした

いくつかのサイトでは、以下の設定を変更するようにコメントがあったのですが、私のESXiの環境では不要でした。私と同一環境を構築した方は、以下の画面を見る必要はありません。

36

VMにLinux(Centos7)を導入する

では、Centos7のインストールです。

上の緑の左矢印をクリックします。VMが起動されます。

37

VMが起動されたら「OpenStack1」の左にも緑の矢印が表示される。

右の「サマリ」の上ら辺にあるパソコンと矢印が組合わさったアイコンをクリック。

OpenStack1VMのコンソールが開きます。

38

まず、マウスを「Install CentOS 7」辺りに持っていって、キーボードを有効にします。

キーボードの矢印ボタンで「Install CentOS 7」を選択し、Enter。

39

そのまま「Continue」

40

「INSTALLATION DESTINATION」をクリック。

41

なにもせずに、「Done」をクリック。

42

「Begin installation」をクリック。

43

「ROOT PASSWORD」をクリック。

44

自分の好きなパスワードを入力し、「Done」

45

終わったら「Reboot」をクリック。

46

VMがリブートされ、以下の画面が表示されたらOKです。休憩しましょう。

47

次は、OSのネットワーク設定です。

OpenStack用Linuxのネットワーク設定

まず、インターフェース名を昔ながらのeth0に変更します。多分これは必須じゃないと思うのですが、RDOのサイトでもまだeth0で説明が多いので、やってしまいます。

rootでログインし、以下の通り、コマンドを実行。ifcfg-enoXXXというファイルを触ります。

48

こんな感じで、とりあえずバックアップを作っておいて、ファイル名を「ifcfg-eth0」に変更。

viなどで「ifcfg-eth0」を編集。

49

NAMEとDEVICEを「eth0」に修正し、ファイルを保存。

50

以下の画面の通り、ディレクトリを移動。「grub」のバックアップを取得し、編集。

51

6行目の最後に「net.ifnames=0」を追加し、保存。

52

以下の通り、grub2の読み込みファイルを再構成。

53

設定した文字列が入っている事を確認し、reboot。

54

リブート後に「ip a」を実行し、eth0が表示されていたらOKです。

55

次にOpenStackVMのIPアドレスとかホスト名の設定に移ります。これが終わったら外部からsshでログインできます。

nmtuiというコマンドを実行すると以下の画面が表示されます。「Edit a connection」でEnter。

56

「eth0」が選択された状態なので、Enter。

57

インターフェースの設定です。「Address/Gateway/DNS」にそれぞれを入力します。このOpenStackVMのIP設定です。普通のWindowsと同じです。

「Automatically Connect」にチェック(スペースバー)を入れて、「OK」

58

「Quit」

59

次はホスト名の設定です。再度nmtuiを実行し、「Set system hostname」を選択。

60

ホスト名に「openstack1」を入力し、「OK」。(何でもいいですけど、出来るだけ合わせて下さい)

61

「OK」をクリックし、reboot。

62

以下の画面の通り、ホスト名が変更されている事を確認する。

63

以上で、基本的なVMのネットワーク設定が完了です。

この時点で、ESXiのvSwitch経由で外部と通信できるはず。つまり、自分の管理用PCからsshできるはず。

(これ以降は画面キャプチャじゃなくてコマンドラインをそのまま貼付けれる。。。。)

OpenStackのインストール

いよいよインストールです!といっても、RDOのAll in oneを使います。

OpenStackそのもののインストール

まずは、LinuxマシンにSSHします。

RDOの手順通り、/etc/environmentを編集します。コピペでOKです。

RDOの手順通り、サービスを停止します。コピペでOKです。

実効結果はこんな感じ。

RDOの手順通り、リポジトリ更新とか、アップデートをしていきます。

・・・の前に、インターネットに繋がるかを確認しておきましょう。yumでインターネットからデータを取得するので、インターネットに繋がらなかったらダメです。

OKなので、yumやります。一行ずつ、コピペでOKです。

基本的に、全て「Complete!」で終わるはず。

ちなみに、yum update -yは5分くらいかかります。落ち着いて待ちましょう。

終わったら、念のためリブートします。

では、いよいよ、OpenStackのインストールです!

前回のリブートでSSHが切れているはずです。SSHでログインしなおします。

以下のコマンドでOpenStackをインストールします。RDOの手順通り。コピペでOKです。

このコマンド(というか、インストールスクリプト)は完了するまでかなりかかります。

私と同一の環境を準備していたら10分程で終わるはずです。お茶でも飲んで休憩しましょう。

終わったらこんな感じ。エラーは一切でないはず。

念のため、リブートします。(このタイミングからOpenStackが既に入っているので、リブートにも少し時間がかかります)

リブートでSSHが切れているはずなので、再度ログインし直します。

外部接続用のブリッジ作成(br-ex)

次に、br-exの作成です。この辺もRDOを参考にします。

ifcfg-eth0をコピーして作ります。以下の通りやればOKなはず。

コピーして・・・

ifcfg-br-exをviなどで以下の通り修正。

というか、ぶっちゃけ、上記をそのまま新規ファイルにコピーした方がいいかもしれません。IPは適宜直して欲しいのですが、上記以外の情報は含めなくてよいです。

次に、ifcfg-eth0を修正。

これはまんまコピーで大丈夫なはず。

よく色んなサイトに同様の情報がありますが、「このパラメーター以外に、既にあった値は残した方が良いのか?」とか不安になりますが、上記まんまで大丈夫です。つまり、例えばifcfg-eth0のファイルの中にはIPアドレスの情報とかは、ない。

リブートします。

成功していたら、少なくとも今までと同様にSSHでログインできるはず。(実は、ここが一番苦労したので気合い入っています)。

外部ネットワーク周りの作成

External Networkを作ります。一行ずつコピペでOK。

ちなみに、出力結果はこんな感じ。

サブネットを作ります(この辺はDashboardでも良いのですが、コマンドで)

  • allocation poolのstart,end:OpenStackが作るGuestOSに割り当てるグローバルIPのプールみたいなもの。ESXiとかに割り当てた外部IPから20個程予約して下さい。(実際はGuestOSにじかに割り当てられるものではないが、とりあえずこの通りやって下さい)
  • gateway:自分の家のネットワークのインターネットにアクセスするゲートウェイ。

出力結果はこんな感じ。

OpenStack上に載せるVMのイメージ作成

次に、OpenStackのWeb画面を経由でメージを作ります。以下の手順に沿ったら大丈夫です。

まず、OSイメージをネットから取得します。Fedoraを取得します。

上記リンクの「Fedora-Cloud-Base-24-1.2.x86_64.qcow2」をダウンロードします。

64

いよいよ、OpenStackのWebにアクセスします。ご自身のLinuxVMのIPアドレスにアクセスします。

(今回の例だと、192.168.1.232です。URLに「192.168.1.232」と入力すると、自動的に以下に遷移します)

65

UserNameは「admin」パスワードは、以下で確認した「OS_PASSWORD」文字列を入れます。

つまり、私の環境では「9e27a56a0426407b」をパスワード欄に入れます。

「Connect」を押したら、ログインできるはず。

以下は英語で申し訳ないのですが「プロジェクト」→「コンピュート」→「イメージ」へ遷移します。

66

「イメージの作成」をクリックします。

67

すると、中央に以下のエラー(日本語)が出るはずです。。大丈夫です。

これを今から修正します。

68

SSHでログインし、以下のコマンドを入力して下さい。一行ずつコピペでOKです。

(yum install時にはYesと答える)

実効結果はこんな感じ。

/etc/openstack-dashboard/local_settingsの”ALLOWED_HOSTS”を以下の通り修正します。

変更前

変更後

リブートし、再度イメージ作成画面に移動して下さい。(ちなみに、リブートされてからWebが起動するまで少し時間がかかるので、落ち着いて)

そして、先ほどの手順でイメージ作成画面に戻ってみて下さい。

69

エラーが消えたはずです。

次に進みましょう。

この画面で、以下の通り入力します。以下の3つの項目だけで良いです。「イメージの作成をクリック」

  • イメージ名:Fedora
  • ファイル:先ほどダウンロードしたFedoraのファイルを設定。
  • Format:QCOW2-QEMU Emulator

70

ここからは日本語です。

イメージの作成が正常に完了したはずです。

71

Privateネットワーク作成

OpenStackで作ったVM同士が通信するPrivateネットワークを作ります。

「プロジェクト」→「ネットワーク」→「ネットワーク」をクリック。

「ネットワークの作成」をクリック。

72

以下の通り入力し、「サブネット」をクリック。

73

以下の通り入力して下さい。このIPはこれまで入力してきた家のLANとは別物なので、何でも大丈夫です。でも、以下の手順と整合を合わせる為に、全く同じ値を入力して下さい。

「サブネットの詳細」をクリック。

74

以下と同じ値を入力し、「作成」をクリック。

75

Privateネットワークができました。

ルーター等、残りのネットワーク設定

続いて、ルーターを作成します。左の「ルーター」をクリック。

76

「ルーターの作成」をクリック。

77

以下の通り入力し、「ルーターの作成」をクリック。

78

ルーターが作成されました。作成したルーター「router_admin」をクリック。

79

「インターフェース」をクリック。

80

「インターフェースの追加」をクリック。

81

以下の通り選択し、「送信」をクリック。(IPアドレスは入力しないでもよいです)

82

左上の「ゲートウェイの設定」をクリック。

83

以下の通り設定し、「送信」をクリック。(ルーターIDは気にせず)

84

ルーターが出来ました。

85

念のため、確認のため、左の「ネットワークトポロジー」をクリックします。以下のようにルーターとネットワークが繋がっているはず。さらに、「トポロジー」タブをクリック。

86

こんな感じで、セグメント間にルーターがあることが解ります。

87

アクセス制御設定

次に、アクセスの設定(NSXのDFWのようなもの)を設定します。

「プロジェクト」→「コンピュート」→「アクセスとセキュリティー」をクリック。

「default」の「ルールの管理」をクリック。

88

「ルールの追加」をクリック。

89

ルールから「すべてのICMP」を選択し、「追加」をクリック。(他は自動的に入力されます)

90

同じ要領で、SSHも追加。

91

結果は、以下のようになるはずです。

92

次に、SSHキーの作成を行います。

コンソールから、以下を入力して下さい。

結果はこんな感じです。

以上で、OpenStack上でVMを作る準備ができました!休憩しましょう!

次は、いよいよクライマックス。VMを作ります!

OpenStackでVM(インスタンス)の作成

では、最後です。

「プロジェクト」→「コンピューと」インスタンスをクリック。

右の「インスタンスを起動」をクリック。

93

これまでのピースを全て繋げます。

インスタンス名は何でも良いです。好きな名前を入れて、「次へ」をクリック。

94

以下のような画面になります。ここで、事前に作成したFedoraのイメージを選択したいのです。

下の「Fedora」の右っかわに+マークがあります。これをクリックします。

95

すると、上に移動したのがわかるはずです。こんな要領で、以下もやっていきます。

「ボリュームサイズ」を10にして、「次へ」をクリック。

96

「m1.small」を選択して、「次へ」をクリック。(画面の通りでOK)

97

「private」だけを選択肢、「次へ」をクリック。(つまり、external_networkは選択しない)

98

そのまま「次へ」

99

既に「default」が選択されているので、そのまま「次へ」

100

これも既に「admin」が選択されてるのでOKです。「インスタンスの起動」をクリック。

101

以上で、VMが作られるはずです。。待てば

102

出来ました!しかし、この段階では外部からアクセスが出来ません、右の「スナップショットの作成」の右の三角を押して、「Floating IPの割り当て」をクリック。

103

「確保済みの・・・」の右のプラスをクリック。

104

プールを選択し、以下の通りになっていることを確認して、「IPの確保」をクリック。

105

「IPアドレス」を確認し、「割り当て」をクリック。

106

インスタンスの横に「Floating IP」が表示されたら、成功です。このIPアドレスに対して、外部からアクセスできます。

107

試しにPINGしてみます。

OKですね!

うまくいかなかったら、手順を見直して下さい

上記は私の環境で10回以上試して動作している手順です。

なので、もしうまくいかなかったら、手順を見落としている可能性があるので、再度確認して下さい。

また、くどいようですが、私と同じ環境を構築している方が無難です。

H170-PROとi7-6700KでのESXiサーバ構築手順!
ASUSのH170-PROマザーボードとSkylake i7-6700Kの組み合わせで無事にESXiの構築に成功しました。 ESXiは...
勉強を再会する方へ
スポンサーリンク
レクタングル大
  • このエントリーをはてなブックマークに追加

コメント

  1. 匿名 より:

    ESXiの記事、こちらの記事ともに非常に参考になりました。
    ありがとうございます!

    • CCIE_TOZAI より:

      記事を見てくれてありがとうございます。
      また、参考になったみたいで嬉しいです。この記事はかなり時間をかけたので・・・

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">