2016年2月18日木曜日

Openstack(kilo)で仮想インスタンスと外部ネットワークを通信できるようにする

GUIだとうまく作成できないので以下URLを参考でそのままいけました

http://docs.openstack.org/ja/user-guide/cli_create_and_manage_networks.html

以下の環境変数を設定します。

export OS_USERNAME=admin
export OS_PASSWORD=[adminのパスワード]
export OS_TENANT_NAME=[adminでいいはず]
export OS_AUTH_URL=http://localhost:5000/v2.0

外部ネットワークを作成

neutron net-create external

Openstackにadminでログインします。
「管理」-「システムパネル」-「ネットワーク」を選択します。
 「external」の「ネットワークの編集:をクリックします。
「ネットワークの編集」画面が表示されるので「外部ネットワーク」にチェックを入れる

内部ネットワークを作成

neutron net-create internal

外部サブネットを作成

neutron subnet-create external 192.168.0.0/24 --name subnet1


内部サブネットを作成

neutron subnet-create internal 10.0.0.0/24 --name subnet2

ルータを作成

neutron router-create router

外部ネットワークと内部ネットワークをルータに接続

neutron router-gateway-set [ROUTERのID] [NETWORKのID]
neutron router-interface-add  [ROUTERのID] [NETWORKのID]

  [ROUTERのID]・・・neutron router-create routerコマンド結果で表示されるidを入力
  [NETWORKのID]・・・neutron net-create external または internal コマンド結果で表示されるidを入力

ポートの作成

neutron port-create net1

ファイアウォールの設定

「プロジェクト」-「コンピュート」-「アクセスとセキュリティ」を選択します。
「default」ルールの「ルールの管理」をクリックします。
「ルールの追加」から「ルール」に「ALLICMP」「受信」「CIDR 0.0.0.0/0」を追加します。
「ルールの追加」から「ルール」に「SSH」「CIDR 0.0.0.0/0」を追加します。

後はインスタンス作成後起動したインスタンスのアクションから「Floating IPの割り当て」を選択し、外部ネットワークのアドレスを
指定することで通信できるはず。。。

CentOS7にOpenstack(Kilo)を導入する

VMwarePlayerにCentOS7を導入しOpenstackをPackstackで導入しました。

仮想マシン作成時はVMwarePlayerでネットワークアダプタをNATにしていると仮想インスタンスが
外部と通信できないので「ブリッジ」で設定します。

CentOSをダウンロードします。

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

CentOS7を以下仮想マシンで作成します。

メモリ:8GB
プロセッサ:2
 ■Intel VT-x/EPTまたはAMD-V/RVIを無効化
仮想ディスク:80GB

CentOS7をインストールします。
ウィザードで固定IPアドレス設定しておいたほうが後の作業が楽です。
インストール後、以下の設定をします。

SELINUXをdisableモードに変更します。

vi /etc/selinux/config

 SELINUX=disable

サーバ再起動します。

NetworkManagerを無効にします。

```
 systemctl stop NetworkManager
 systemctl disable NetworkManager
```

packstackをインストールします。

 yum -y update
  yum -y install http://rdoproject.org/repos/rdo-release.rpm
  yum -y install openstack-packstack

answerfileを作成しOpenstackをカスタム構築します。
demo環境を構成しているとネットワークとルータが自動構成されるのですが
使えないので邪魔なだけなので・・・。

packstack --gen-answer-file answer.txt
vi answer.txt

 CONFIG_PROVISIOM_DEMO=n ←yから変更

packstackでopenstackをインストールします。(1時間程度)

packstack --answer-file=answer.txt

adminの初期パスワードを変更します。

source /root/keystonerc_admin
keystone user-password-update admin
vi /root/keystonerc_admin

 export OS_PASSWORD=**********

Openstack内仮想マシンが外部と通信できるようにブリッジ設定をします。

 vi /etc/sysconfig/network-scripts/ifcfg-br-ex
 
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.100.99 #enoxxxxxxの設定
NETMASK=255.255.255.0 #enoxxxxxxの設定
GATEWAY=192.168.100.1 #enoxxxxxxの設定
ONBOOT=yes #enoxxxxxxの設定
DNS1=192.168.100.1 #enoxxxxxxの設定

vi /etc/sysconfig/network-scripts/ifcfg-enoxxxxxx

DEVICE=enoxxxxxx
TYPE=OVSPort
ONBOOT=yes
NM_CONTROLLED=no
OVS_BRIDGE=br-ex
DEVICETYPE=ovs

reboot

Webブラウザから下記URLで接続します。

http://[OpenstackサーバのIPアドレス]/dashboard

adminでログインします。

2016年2月4日木曜日

ChromiumOSをインストールする。

興味本位でChromeOSのOSS版のChromiumOSをインストールする手順について確認しました。
ChromiumOSは以下の環境でビルドを行い、USBにイメージをコピーします。
結構時間かかりました。

Ubuntu14.04
※ディスクは60GB程必要。VMwarePlayerで仮想マシンにて実施

※rootユーザで実行すると失敗します。

前提となるパッケージ類のインストールを行います。


sudo apt-get install aptitude
sudo aptitude install git-core gitk git-gui subversion curl
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"

cd /tmp
cat > ./sudo_editor <<EOF
#!/bin/sh
echo Defaults \!tty_tickets > \$1          # Entering your password in one shell affects all shells
echo Defaults timestamp_timeout=180 >> \$1 # Time between re-requesting your password, in minutes
EOF
chmod +x ./sudo_editor
sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements


ソースファイルを取得します。


git config --global user.name "name"
git config --global user.email "name@example.com"
cd ${SOURCE_REPO}
repo init -u https://chromium.googlesource.com/chromiumos/manifest.git
repo sync #数時間かかります


Chromium OSをビルドします。


cd ${SOURCE_REPO}
export BOARD=amd64-generic
./cros_sdk -- ./build_packages --board=${BOARD}
cros_sdk -- ./build_image --board=${BOARD}
#1時間かかります

USBマウントしてUSBにデータ書き込みます。


cros_sdk -- cros flash --board=${BOARD} usb://
#上記実行後USBメモリを選択します
#0%の進捗から数分後一気に100%となります。

USBメモリを適当なノートPCに差し込んで問題なく起動しました。

VMwarePlayerやVirtualBoxでは動作しませんでした。
なにか裏ワザあるのでしょうね。