Ubuntu 12.04 に OpenStack

この記事は編集中です。

環境

192.168.1.1(ルーター)(DHCP)
|
|-192.168.1.XXX(操作PC)
|
|-192.168.1.109(対象PC eth1 static promisc off)
|-192.168.2.110(対象PC eth0 static promisc on)

設定

interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        up ifconfig $IFACE 0.0.0.0 up
        up ip link set $IFACE promisc on
        down ip link set $IFACE promisc off
        down ifconfig $IFACE down
        address 192.168.2.110
        netmask 255.255.255.0
        dns-nameservers 192.168.1.1

auto eth1
iface eth1 inet static
        address 192.168.1.109
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 192.168.1.1 8.8.8.8
setup.conf
HOST_IP='192.168.1.109'
HOST_PUB_IP='192.168.2.110'
PUBLICNETWORK_NIC='eth0'

TIPS

LVM?

cider用にLVM領域が必要です。
インストール時にwhole diskなLVM作成した人は詰んでるので
インストールしなおしてください。
コツとしてはOS入ってる(/をマウントする)とこはLVMじゃなくして
空き容量を作り
空き容量をcider-volumesって名前でLVM化しとくだけでたぶん大丈夫です。
その/dev/sda.をsetup.confに書いておいてください

fdisk /dev/sda.

newdisk
n

primary
p

change system type
t
select LVM
8e

print list
p

write changes

w

pvscan
pvcreate /dev/sda6
pvscan

vgscan
vgcreate cinder-volumes /dev/sda6
vgscan

ovs-vsctl周りで怒られる
sudo service openvswitch-switch status

とかしてみる
なければ

module-assistant auto-install openvswitch-datapath

とかしてインストールする
その時

sudo apt-get install module-assistant

とかでいれとかないとかも?

php で isbn解決

$request = "http://ecs.amazonaws.jp/onca/xml?".
"Service=AWSECommerceService".
"&Version=2011-08-01".
"&ResponseGroup=Small,Images".
"&Operation=ItemLookup".
"&ItemId=".$isbn;

こうだったのが

$request ="http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService".
"&Version=2011-08-01".
"&AssociateTag=PutYourAssociateTagHere".
"&Operation=ItemLookup".
"&IdType=ISBN".
"&SearchIndex=Books".
"&ItemId=".$isbn;

こう

http://associates-amazon.s3.amazonaws.com/signed-requests/helper/index.html
がお役立ち

bootstrapを使ってみる

参考

Ruby on Rails 3.2.10でとりあえずプロジェクト立ち上げるメモ
http://qiita.com/items/e2427141443a90d66a35

Gehirn RS2 に nginx + unicorn 環境で Rails3 を動かしてみる("おまけ" twitter-bootstrap-rails も動かしてみよう)
http://qiita.com/items/c1edfa84b34dba2211ac

インストール

/mnt/hgfs/railsを共有フォルダとしたのでここで作っていきます

rails new bootstrap
cd bootstrap

bootstrapつかうよーとGemfileに書いて

gem "twitter-bootstrap-rails"

bundle install

すると

sqlite3がないよ とか言われるので

sudo apt-get install -y sqlite3 libsqlite3-dev
gem install sqlite3 -v '1.3.7'

再度 bundle install

bundle install

意気揚々と

rails g bootstrap:install

とかやると

/.rvm/gems/ruby-1.9.3-p392/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

みたいに怒られます

どうやらランタイムエンジンがないよ ということで

ExecJS supports these runtimes:

therubyracer - Google V8 embedded within Ruby

therubyrhino - Mozilla Rhino embedded within JRuby

Node.js

Apple JavaScriptCore - Included with Mac OS X

Microsoft Windows Script Host (JScript)

のどれかをつかえってことなんですけど

定番?の therubyracerを使っていきます

http://qiita.com/items/e2427141443a90d66a35

Gemfileに

gem 'execjs'
gem 'therubyracer'
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS

とかいて

bundle install
rails g bootstrap:install less

うまく

insert app/assets/javascripts/application.js
create app/assets/javascripts/bootstrap.js.coffee
create app/assets/stylesheets/bootstrap_and_overrides.css.less
create config/locales/en.bootstrap.yml
gsub app/assets/stylesheets/application.css
gsub app/assets/stylesheets/application.css

とかでたら成功です

設定

レイアウトファイル生成

rails g bootstrap:layout application fluid

ページ作成

rails g scaffold Post title:string description:text
rake db:migrate
rails g bootstrap:themed Posts

route変更

vim config/routes.rb

root :to => 'posts#index'

デフォルトファイル削除

rm -f public/index.html

起動

rails s

TIPS

cannot load such file -- less
(in /mnt/hgfs/rails/bootstrap/app/assets/stylesheets/bootstrap_and_overrides.css.less)

って怒られるときは

gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS

WindowsユーザーがSqaleで遊ぶために VMware player+Ubuntu12.04.2+ruby1.9.3+rails3.2.12+rvmな環境を整える

はじめに

Sqaleが無料アプリケーション一つくれたので遊びたくて・・・
確か gem bootstrapはwindowsだとうまいこといかなかった気がしたので
ubuntusshして使います

環境

手元:Windows7 x64
仮想:Ubuntu12.0.4.2 server (VMware player)

参考

    1. Ubuntu12.04 にRVM を導入して、かなしみを吹っ飛ばしました

http://d.hatena.ne.jp/moznion/20121011/1349974417

    1. Mac に RVM で Ruby 1.9.2 と Rails 3.2.1 をインストールした

http://d.hatena.ne.jp/inouetakuya/20120205/1328443579

    1. VMware Player で共有フォルダを有効にする(2)

http://korikorikorikori.blog.fc2.com/blog-entry-156.html

インストール

  1. VMware playerのインストール
  2. Ubuntu12.0.4.2 server isoダウンロードしてきてVMware playerでインストール(簡易インストールを用います)
ここまではぐぐってください

初期設定

  1. 日本語配列にキー配列変更

sudo loadkeys jp

  1. アップデート

sudo apt-get -y update && sudo apt-get -y dist-upgrade

  1. ビルド環境

sudo apt-get install make gcc g++ wget libssl-dev zlib1g-dev libreadline-dev libxslt-dev libxml2-dev

  1. VMware tools(共有フォルダの設定のため必要)

sudo -i
apt-get install gcc
mkdir /mnt/cdrom
mount -t iso9660 /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
cp VM*.tar.gz /tmp
cd /tmp
tar zxvf VMwareTools*.tar.gz
cd vmware-tools-distrib
./vmware-install.pl
shutdown -r 0

  1. 共有フォルダ設定

VMware Player で共有フォルダを有効にする(2)
http://korikorikorikori.blog.fc2.com/blog-entry-156.html

/mnt/hgfs/

以下にマウントされます

  1. ssh環境

http://d.hatena.ne.jp/xlis/20130317/1363506820

RVM

sudo apt-get -y install git-core curl
curl -L get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm

ruby

rvmを使って1.9.3をインストール

rvm install 1.9.3

1.9.3をデフォルトで使用する

rvm use 1.9.3 --default

設定の確認

rvm list

rails3.2.12

gem install rails --version 3.2.12

rails --version

追記

後日別環境で行ったところ

rvm install 1.9.3

の前に

sudo apt-get install libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbmdev libncurses5-dev automake libtool bison pkg-config libffi-dev

をする必要がありました

Ubuntu上にKVMとOPEN vSwitchインストール

OSの更新

sudo apt-get update -y && sudo apt-get dist-upgrade && uname -a

KVMのインストール

sudo apt-get install kvm libvirt-bin virtinst

ifconfigでvirbr0ができているか確認

ifconfig

linux bridgeじゃなくてOpen vSwitchを使うのが目的なので削除

sudo virsh net-destroy default
sudo virsh net-autostart --disable default
sudo aptitude purge ebtables

OVS(Open vSwitch)のインストール

sudo apt-get install openvswitch-controller openvswitch-brcompat openvswitch-switch openvswitch-datapath-source

bridge compatibility mode

インストールしたら
OVSを bridge compatibility mode?にするそうで

vim /etc/default/openvswitch-switch

#BRCOMPAT=no

BRCOMPAT=yes

に変更し起動

OVS起動

sudo service openvswitch-switch start

カーネルモジュールの確認

lsmod | grep brcom

でbrcompat_mod と openvswitch_mod

OVSPID確認

service openvswitch-switch status

ovsdb-server
ovs-vswitchd
ovs-brcompatd

OVSコンフィグ確認

sudo ovs-vsctl show

で設定空

を確認

TIPS

virbr0とか消し忘れるとエラーがでるようなので

FATAL: Module brcompat not found.
* Inserting brcompat module
Module has probably not been built for this kernel.
For instructions, read
/usr/share/doc/openvswitch-datapath-source/README.Debian
FATAL: Module brcompat not found.
* Inserting brcompat module

FATAL: Error inserting brcompat (/lib/modules/3.5.0-25-generic/kernel/brcompat.ko): Unknown symbol in module, or unknown parameter (see dmesg)
* Inserting brcompat module
Module has probably not been built for this kernel.
For instructions, read
/usr/share/doc/openvswitch-datapath-source/README.Debian
FATAL: Error inserting brcompat (/lib/modules/3.5.0-25-generic/kernel/brcompat.ko): Unknown symbol in module, or unknown parameter (see dmesg)
* Inserting brcompat module

その時は 以下のようにするらしい

sudo module-assistant auto-install openvswitch-datapath

んだけど これでもだめで

bridge modが読み込まれてるとだめっぽいのでそこの対策をしました

参考:
http://networkstatic.net/openvswitch-configure-from-packages-and-attaching-to-a-floodlight-openflow-controller/

# Fix
# Unload the Linux bridging module “bridge”, will be loaded on reboot w/this method: $ lsmod | grep bridge
#If it is you can remove it temporarily until a reboot: $ rmmod bridge

# Blacklist the ko module to make the removal persistent through reboots: Edit /etc/modprobe.d/blacklist Add: blacklist bridge

# Delete the bridge-utils package:

#Ubuntu
$ apt-get purge bridge-utils

#Redhat
$ yum remove bridge-utils Verify block/removal
$ lsmod | grep bridge

上記のとおり

lsmod|grep bridge

rmmod bridge

vim /etc/modprobe.d/blacklist

  1. blacklist bridge

sudo apt-get purge bridge-utils

そのあと再起動し

lsmod|grep br

brcompat 13513 0
openvswitch 84124 1 brcompat

service openvswitch-switch status

ovsdb-server is running with pid 1116
ovs-vswitchd is running with pid 1130
ovs-brcompatd is running with pid 1133

ってことで大丈夫でした

kernelバージョンアップするとうまく入らない臭い

その時は上にも書いたけど

module-assistant auto-install openvswitch-datapath
とかしてインストールする

その時

sudo apt-get install module-assistant
とか必要かも

VMwarePlayerでUbuntu

やりたいこと
VMwarePlayer+Ubuntu/KVM/OVSでOpenFlowテスト環境をつくる(1)Add Star
http://d.hatena.ne.jp/stereocat/20130116/1358342989

環境

同じく
Windows PC (Windows7/64bit)

VMware Player Host OS

Ubuntu 12.04.1 (64bit)

VMware Player Guest OS (KVM Host)

VMwareToolsのインストール

sudo -i
apt-get install gcc
mkdir /mnt/cdrom
mount -t iso9660 /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
cp VM*.tar.gz /tmp
cd /tmp
tar zxvf VMwareTools*.tar.gz
cd vmware-tools-distrib
./vmware-install.pl
shutdown -r 0

ただ、server版だからかコピペがうまくいかなかったので もはや普通にsshクライアント (puttyとか
でいじることに

ssh 関連

sudo apt-get install openssh-server ssh
service ssh status
ssh localhost

自動起動させたかったので chkconfig使う

chkconfig

sudo apt-get install chkconfig
chkconfig ssh on

chkconfig ssh on でエラー

なんか
/sbin/insserv がないよーってエラーが出ます
シンボリックリンクはって対応するらしい・・・? http://netkids.me/post/25291140466/ubuntu-12-04-64bit-sbin-insserv

ln -s /usr/lib/insserv/insserv /sbin/insserv
chkconfig ssh on
chkconfig ssh on
chkconfig ssh

なんかずらーっと長いコマンドで怒られますがもう一度やると大丈夫です。

ポート固定

sshの関係上ポートを固定します。
まずはインストールしたVMware playerのdhcpがどのレンジか調べます。
win7ではc:\programdata\vmware\vmnetdhcp.confを開きます

# Virtual ethernet segment 8
# Added at 03/17/13 15:39:57
subnet 192.168.65.0 netmask 255.255.255.0 {
range 192.168.65.128 192.168.65.254; # default allows up to 125 VM's
option broadcast-address 192.168.65.255;
option domain-name-servers 192.168.65.2;
option domain-name "localdomain";
option netbios-name-servers 192.168.65.2;
option routers 192.168.65.2;
default-lease-time 1800;
max-lease-time 7200;
}
host VMnet8 {
hardware ethernet 00:50:56:C0:00:08;
fixed-address 192.168.65.1;
option domain-name-servers 0.0.0.0;
option domain-name "";
option routers 0.0.0.0;
}
# End

となっていたので 192.168.65.3〜127までが使えますね

/etc/network/interfaceをいじっていきます

auto eth0
iface eth0 inet static
address 192.168.65.100
netmask 255.255.255.0
gateway 192.168.65.2
dns-nameservers 192.168.65.2 192.168.0.15

192.168.0.15とか別にいらないかも(ホストのIP)

設定後は再読み込み

sudo /etc/init.d/networking restart
ping google.com

今回は 192.168.65.100に固定しました
ホスト側からsshできることを確認します

キーバインド

sshだとたぶん手元側に合うと思うのですが
うまくいかないときは

sudo loadkeys jp

とかでできるっぽいです