4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

持ち運び出来るクラウド環境を作る Powerd by OpenStack

Last updated at Posted at 2018-11-15

この記事はただの夢です(?)

修正も都度かけるかもしれません。殴り書きです。
2018/11/15 初版
2018/11/16 編集リクエスト承認
2018/11/17 修正・追記
2018/11/30 ネットワーク設定部分が不親切だったので修正してわかりやすくしてみました

まえがき

IT系の企業であれば、社内で使う検証用の環境というのがありますよね。
通常ならば大きなサーバをラックマウントタイプのものを共有してESXiなどの仮想化基盤で資源分配して使っていることが多いと思います。もしくは、クラウド。
それとは別にして、持ち運べるデータセンタ的なものが存在します。これは、小型のコンピューターにメモリを大量に載せてマイクロなサーバを想像させるように設計して、客先などでデータセンタの模型のようにして実際に稼働させるなどの用途に利用されることがあります。(だいたいはIntelNUCが使われるのですが)。

今回書くのは、その小型コンピュータに仮想化基盤を載せようというお話。

OpenStackとは(ざっくり)

プライベート環境にクラウド環境を構築出来るオープンソースな環境!
そのシステムは、様々なアプリケーションで成り立っています。

コンポーネント 機能 概要
Nova コンピューティング 仮想マシンの管理を担当している。
Glance イメージ管理 仮想マシンで立ち上げるマシン用のOSイメージ管理を担当する。
Cinder ブロックボリューム管理 物理ディスク管理を担当する。
Newtron ネットワーク管理 プライベートクラウド内のネットワーク管理を担当する
Swift オブジェクトストレージ管理 仮想マシンのストレージ管理を担当する。
Keystone 認証情報管理 ログインに使用する情報管理を担当する。
Horizon WebUI WebブラウザでアプリケーションとしてGUIを提供する。

こんな構成で作ります

Name Value
使用機器 Intel NUC
CPU Intel® Core™ i5-3427U (3M Cache、Max 2.80 GHz)
RAM 16GB
SSD 248GB
OS CentOS 7
IP 192.168.137.254

使用環境

  • 利用想定
    インターネットに直接接続できない状態である想定
    (社内ネットとかだとADでログインして証明書持ってないと接続できないとかあるよね)

     [ Router ] <---Internetへ---> {{ [ Windows10 ] <---ICS経由---> [ OpenStack ] }}  
    

多分こっちがわかりやすい

            インターネットへ
              { Wi-Fi }
                  |
      [ Client PC - Windows10 ]                           [ Intel NUC - Open Stack]
                  |                                                   |
             { Ethernet }----------------------------------------{ Ethernet }  
                            --  Internet Connection Share --

※ インターネット側から接続させることは今回想定しておらず、自分のClient PCからOpenStackへ接続でき、かつOpenStack内に構築するインスタンスがインターネットへ出られるようにするということが目的です。
インターネット上から公開したい方はここから先を見ないほうがいいかもしれません。

インストール ※OpenStackにするマシンへの操作です。

  1. hostsをいじっておく(これやらないとnovncがうまく動かない)

    echo "192.168.1.254  `hostname`" >> /etc/hosts
    
  2. RDO Packstackリポジトリをインストールする

    yum install https://www.rdoproject.org/repos/rdo-release.rpm
    
  3. RDO Packstack からパッケージインストール

    yum install `yum search centos-release-openstack | grep x86_64 | head -n 1|cut -d " " -f 1`
    
  4. epelとpackstackをインストールする

    yum install epel-release openstack-packstack
    
  5. SELinuxを無効にする

    sed -i "s/SELINUX=.*/SELINUX=permissive/" /etc/selinux/config && setenforce 0
    
  6. ipv6を無効にする

```
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
```  
  1. NetworkManagerを停止(インストール前にやっておかないとなぜかプロセスが止まることがある)

    systemctl disable NetworkManager && systemctl enable network  
    systemctl stop NetworkManager && systemctl restart network
    
  2. packstackを使ってOpenStackを立ち上げる (nohupはリモートコンソールでやるときは入れておくといい)ひたすらnohup.outを見て終わるのを待つ

    nohup packstack --allinone \
    --cinder-volumes-size=200G \
    --provision-demo=n \
    --os-neutron-ovs-bridge-mappings=extnet:br-ex \
    --os-neutron-ovs-bridge-interfaces=br-ex:eno1 \
    --os-neutron-ml2-type-drivers=vxlan,flat &
    
  3. 丁寧にログインメッセージを入れてあげましょう

    printf "\n#########################\nWellcome to Redhat Open Stack \n#########################\n" > /etc/motd
    cat nohup.out | grep http  >> /etc/motd
    cat keystonerc_admin >> /etc/motd
    cat /etc/motd
    
  4. KVMを有効にしてやる

    grep -E 'svm|vmx' /proc/cpuinfo && modprobe vhost_net && modprobe kvm_intel
    echo "virt_type=kvm" >> /etc/nova/nova.conf && cat  /etc/nova/nova.conf | grep virt_type=
    
  5. 検証環境用設定
    ネットワークは内部ネットワークと外部ネットワークに分離する。ちなみに、気をつけてほしいのはNICがブリッジ直付で動作しているのでNATと勘違いしてDNSを設定ミスすると外に出られないなんで~ってなってしまう。自分はまだテストでやってただけなのでhorizonのWebGUIから設定してしまった。

  • ネットワークトポロジー
  |E|                |I|
  |x|                |n|
  |t|      R T       |t|
  |e|------[X]-------|e|
  |r|                |r|--------[M] Instance  
  |n|                |n|
  |a|                |a|--------[M] Instance  
  |l|                |l|
  | |                | |--------[M] Instance  
  |N|                |N|
  |e|                |e|
  |t|                |t|
  | |                | |
--------------------------
  • Internal network の設定
-  サブネット
サブネット名 : (任意)
ネットワークアドレス : 192.168.1.0/24
ゲートウェイ : 192.168.1.1
-  サブネットの詳細
IPアドレス割り当てプール : (任意)
DNSサーバ :  192.168.1.1と192.168.137.1を設定する
  • External network の設定
#管理>ネットワーク>ネットワークの順に開いて、右上のネットワークの作成をクリックする


 - ネットワーク
名前 : (任意)
プロジェクト : admin
プロバイダネットワーク種別 : フラット
物理的ネットワーク : extnet
[v] 管理状態有効
[ ] 共有
[v] 外部ネットワーク
[v] サブネットの作成


 -  サブネット
サブネット名 : (任意)
ネットワークアドレス : 192.168.137.0/24
ゲートウェイ : 192.168.137.1


  -  サブネットの詳細
IPアドレス割り当てプール : (任意)
DNSサーバ :  192.168.137.1を設定する

これで使えるようになったぁ!!

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?