OpenStack 環境構築メモ

# 【概要：OpenStack 環境構築】
* OpenStack 環境を構築するため作業手順を記載
* RDO Packstack を使用。
* 最新の liberty ではなく、kilo を使うこととする(2016年3月時点)

## ♢ OpenStack とは？
* NASA主導のクラウド技術。Nova を始めとするコンポーネント群で構成されており、OpenStack を使うと仮想ネットワーク(SDN)や構成管理ツール(Ansible)等を簡単に導入出来る。  
  Wikipedia: https://ja.wikipedia.org/wiki/OpenStack

## ♢ OpenStack アーキテクチャ
* Conceptual Architecture: http://docs.openstack.org/kilo/install-guide/install/apt/content/ch_overview.html
![openstack_kilo_conceptual_arch.png](https://qiita-image-store.s3.amazonaws.com/0/118031/df9fbfc1-9666-d5b4-7c00-592654698e49.png)


## ♢ RDO Packstack とは？
* OpenStack のデプロイツール。OpenStack 環境を作る時に必要となる。  
  Documentation for Liberty (October 2015): http://docs.openstack.org/  
  RDO quickstart：https://www.rdoproject.org/install/quickstart/  

# 【環境】
## ♢ システムリソース
* CPU: 3core
* Mem: 3072GB  
  RDO 公式サイトには少なくとも 4GB と記載あるがリソース余裕なし。。。

> Machine with at least 4GB RAM, processors with hardware virtualization extensions, and at least one network adapter.
> https://www.rdoproject.org/install/quickstart/

* NIC: 2つ (業務LAN/管理LAN)

## ♢ OS
* CentOS7.2

# 【インストール手順】
* 参考サイト：https://www.rdoproject.org/install/quickstart/

## ♢ 1. RDO Packstack リポジトリの登録
```bash
yum install https://www.rdoproject.org/repos/rdo-release.rpm
```
## ♢ 2. OpenStack(Kilo)インストール
### a. インストール実行 (CentOS7)
* 標準リポジトリに kilo パッケージが用意されていた。素晴らしい。  
  遠慮なく使わせて頂く。  

```bash
yum search centos-release-openstack
-----
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
===================================== N/S matched: centos-release-openstack ======================================
centos-release-openstack.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-kilo.noarch : OpenStack from the CentOS Cloud SIG repo configs
centos-release-openstack-liberty.noarch : OpenStack from the CentOS Cloud SIG repo configs

  Name and summary matches only, use "search all" for everything.
```

* インストール実行  

```bash
yum install centos-release-openstack-kilo
```

### b. インストール実行(RHEL7)
* 参考 
 * RDO repositories: https://www.rdoproject.org/documentation/repositories/  

* リポジトリ追加

```bash
yum install http://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm
```

* オプションリポジトリ有効化

```bash
subscription-manager repos --enable rhel-7-server-optional-rpms
subscription-manager repos --enable rhel-7-server-extras-rpms
subscription-manager repos --enable=rhel-7-server-rh-common-rpms
```


## ♢ 3. openstack-packstack インストール
```bash
yum install epel-release openstack-packstack
```
* epel も必要と Document に書いてある為、インストールしておく

> 1. On RHEL and CentOS, enable the EPEL repository:  
> http://docs.openstack.org/kilo/install-guide/install/yum/content/ch_basic_environment.html#basics-packages

## ♢ 4. システムアップデート実行
```bash
yum update
```

## ♢ 5. デプロイ実行
* 10分程実行に時間がかかる。環境によりエラー報告もあるようだが無事終わることを祈る。

```bash
packstack --allinone --use-epel=y
----

 **** Installation completed successfully ******

Additional information:
 * A new answerfile was created in: /root/packstack-answers-20160320-182839.txt
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
 * Warning: NetworkManager is active on 10.0.2.15. OpenStack networking currently does not work on systems that have the Network Manager service enabled.
 * File /root/keystonerc_admin has been created on OpenStack client host 10.0.2.15. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://10.0.2.15/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * To use Nagios, browse to http://10.0.2.15/nagios username: nagiosadmin, password: 0156a1dda98a4ae9
 * The installation log file is available at: /var/tmp/packstack/20160320-182838-hvf94y/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20160320-182838-hvf94y/manifests
```

## ♢ 6. NetworkManager 無効化
* インストール後のメッセージに書かれている通り、 OpenStack で NetworkManager の利用が推奨されていない為、停止する

```bash
systemctl disable NetworkManager && systemctl enable network
systemctl stop NetworkManager && systemctl restart network
```

## ♢ 7. 仮想サーバ設定の有効化
* 仮想サーバで構築する際にはインスタンスを KVM モードで起動する設定と、vhost_net を有効化する。

### 1. nova 設定変更(KVM モード有効化)
```bash
sed -i s/virt_type=qemu/virt_type=kvm/g /etc/nova/nova.conf
cat /etc/nova/nova.conf | grep ^virt_type=
```

### 2. 設定反映
```bash
systemctl restart openstack-nova-compute.service
```

### 3. vhost_net 有効化
```bash
modprobe vhost_net
```

### 4. vhost_net 有効化確認
```bash
lsmod | grep vhost_net
```