2014年12月11日木曜日

電気二重層キャパシタ(EDLC)を用いた バイクのバッテリーレス化


自分の原付バイクのバッテリーが寿命を迎えたため、これを機にEDLCでバッテリーレス化した
私は、電子工作の知識はそれほど有してなかったが今回の実験の無事成功を確認できた




























使用した部品

  • 電気二重層コンデンサー10F3V 6個
  • 片面ガラス・ユニバーサル基板 2x47.5mm 1個
  • ポリカーボネートケース 1個
  • ゴムシート 1個
  • 抵抗2kΩ 6個
  • ダイオード 6個

商品金額合計は約¥2,000ほどであった

EDLCのバランサー回路を調べていると、このような特許が引っかかったので少し改良して、
今回購入したコンデンサーの耐圧に合うようにダイオードを挟む形にした

また、抵抗も3kΩがあればそちらを使いたかったが、家に2kΩが大量に余っていたのでそちらを使用した
実際、どっちが適当か計算すれば分かると思うが自分には未知の分野なので放置
※結局、適当に作ってもEDLCのバランス回路として動いてくれたので、よしとした

防水加工をするために、ポリカーボネートケースに入れ
下にはゴムシートを引いて絶縁性を確保した(無くてもいい)

↓回路を寄せすぎて1つだけ抵抗が浮くような配置になってしまった




























ふたを閉めるとこうなる





























■追記

コンデンサ3つのみの簡易版だが,回路図を以下に示す.

2014年12月8日月曜日

CentOS6.5にOpenStack のインストールと設定 (grizzly)


CentOS6.5にEOLとなったOpenStack Grizzlyのインストール方法の覚え書き

久しぶりに、OpenStackを一から構築しようとすると問題が発生した

Installing Dependencies... [ DONE ]
Copying Puppet modules and manifests... [ DONE ]
Applying Puppet manifests...
Applying 192.168.0.2_prescript.pp

ERROR : Error during puppet run : err: /Stage[main]//Exec[update-selinux-policy]/returns: 
change from notrun to 0 failed: yum update -y selinux-policy-targeted returned 1 instead of one of [0] at /var/tmp/packstack/573688ed60034e2cb2c4801220f695e2/manifests/192.168.0.2_postscript.pp:9

Please check log file /var/tmp/packstack/20141207-143446-waaskW/openstack-setup.log for more information

もしくは、このようなエラー


私が参考にしたフォーラムに手順が書いてあるが、
今回は私がこのフォーラムを参考にし、この状態で正しくインストールができるか検証した
(CentOS6.4ではnetnsがデフォルトで使用できないので、CentOS6.5にインストールを行った)

ちなみにほとんどの内容は前回記事と同じである

まずは、前回記事通りにIP固定化やSELinuxをpermissiveにし、
OpenStack grizzlyのリポジトリのURLが変更されていることに注意しつつ進める

# yum install -y openstack-packstack まで終了したら以下の手順をはさむ

#yum install audit-libs-python libselinux-python libsemanage-python policycoreutils-python selinux-policy selinux-policy-targeted setools-libs setools-libs-python audit audit-libs policycoreutils

#mv /usr/share/selinux/devel/include/services/swift.if /usr/share/selinux/devel/include/services/swift.if.old

#rpm -e --justdb selinux-policy.noarch  --nodeps
(↑環境によってselinuxのバージョンは違うので適宜合わせる)

#wget https://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/openstack-selinux-0.1.3-2.el6ost.noarch.rpm

#rpm -ivh openstack-selinux-0.1.3-2.el6ost.noarch.rpm

ここまでを実行後、answerファイルを作成し下記コマンドを実行する
この手順からは、前回記事と同じである

#packstack --answer-file=ans.txt


以上





2014年9月1日月曜日

OpenStack python-keystoneclientを使ってみる

OpenStackはUI上で様々な操作ができるが、APIを通じて処理を自動化できる。

今回は、操作した記録をここに残す。
演習中はbpythonを使用した。

bpythonを起動して、以下を入力する。

●認証方法

from keystoneclient.v2_0 import client
keystone=client.Client(auth_url="http://127.0.0.1:35357/v2.0",
username="admin",
password="hogehoge",
tenant_name="admin")

※環境によって、auth_urlアドレス、usernameユーザ名、passwordパスワードを設定する。
入力して、エラーが出なければ認証に成功している。
















●テナントの列挙

テナントのリストの取得は、以下のコードで可能

keystone.tenants.list()

bpythonでは、補完機能があるため
途中まで入力してTABキーを押すと文字が保管されるので便利である。
















途中まで入力し、















TABキーで選択する
















そして、keystone.tenants.list()を実行すると上図のようになる。
print関数を使わなくても内容が表示される。

以下、ここに載せきれないほど様々な関数が用意されている。

●テナント作成
keystone.tenants.create("tenant_name","description",True)

●テナント削除
keystone.tenants.delete("tenant_id")

●ユーザの列挙
keystone.users.list()

●新規ユーザ作成
keystone.users.create("name", "password", "email",None, True)

●ユーザの有効・無効化
keystone.users.update_enabled( "user_id", {True or False} )

●ユーザの削除
keystone.users.delete ("user_id")

2014年8月22日金曜日

OpenStack grizzlyのURL変更について

fedorapeople.orgでgrizzlyのパッケージなどが公開されていたが、
URL変更がされて以前のURLではOpenStack grizzlyをインストール出来なくなってしまった。

無理にgrizzlyに拘る必要もないが、動作が軽く比較的安定していることもあり、
grizzlyを用いたい場合がある。

新しいURLになっても、grizzlyのインストール方法はほぼ変わらず、URLを変更するだけである。

まず、release-grizzly-3.noarch.rpmの場所が変わったため、以下のコマンドに変わった

[1]

[before]
# yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly-3.noarch.rpm

[after]
#yum install -y https://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/rdo-release-grizzly-3.noarch.rpm

アドレスにEOLと書かれているので、End of Lifeの略だと思われる。
要するにサポート終了。

リポジトリは変更しなくてはならないので、書き換え
#vi /etc/yum.repos.d/rdo-release.repo

[before]
baseurl=http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/epel-6/

[after]
baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/epel-6/

そのあとのコマンド↓は変わらない
#yum install -y openstack-packstack

[2]

あと、Ansファイルの書き換えも必要
Ansファイルを開き、CONFIG_REPO=を↓に書き換える

# A comma separated list of URLs to any additional yum repositories
# to install
CONFIG_REPO=http://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/epel-6/



あとは、#packstack --answer-file=ans.txtでAnsファイル指定して実行すれば、
以前と変わらずOpenStack grizzlyをインストールできる。

2014年7月25日金曜日

OpenStackのボリュームの使い方・アクセス方法

OpenStackでインスタンスが作成までできたので、
ボリュームとインスタンスの接続方法とインスタンスからのアクセス方法についてまとめる

OpenStackのボリュームは、USBメモリのようにインスタンス起動中に
接続したり、切断したりすることが可能である

●ボリュームの作り方

ボリュームを接続するための、インスタンスを起動しておく
もちろん、ボリューム作成後からでも大丈夫


1.ボリューム種別の作成


種別を分けることで、作成したボリュームが管理しやすくなる
種別を作成しなくてもボリュームの作成は可能


ボリュームの種別作成1




















UI画面から[管理]→[ボリューム]→[ボリュームの種別の作成]を押す


ボリュームの種別作成2

種別名を入力し、[ボリューム種別の作成]をクリック

ボリュームの種別作成3














上の図のように自分が設定した種別ができる


ボリュームの作成1






















2.ボリュームの作成

次にボリュームの作成を行う
[プロジェクト]→[ボリューム]→[ボリュームの作成]ボタンを押す

ボリュームの作成2























ボリューム名を入力し、種別を選択する(選択しなくてもいい)
容量を設定した後、[ボリュームの作成]を押す

3.インスタンスとボリュームの接続


ボリューム作成完了













すると、ボリュームが作成されるので、[接続の編集]を押し起動中のインスタンスと接続する




























接続したいインスタンスを選択し、デバイス名を指定する
初期で「/dev/vdc」とグレーで記入されているが
そのまま入力しても良いし、「/dev/vdd」など自由に変更していい

※openstackのドキュメントを見ると
実際のデバイス名は、ハイパーバイザーの設定により、ボリューム名と異なるかもしれません
と書かれているので、ここで設定したデバイス名が、実際のインスタンス上で表示されているデバイス名異なる可能性がある(実際異なっていることを確認済み)

4.インスタンスからのアクセス方法

1.まず、デバイスファイルを特定する

実際に、インスタンス上で表示されるデバイス名と、接続の先に設定したデバイス名が異なってしまうことがあるため、どれが接続したボリュームなのか分かりにくいが、判別する方法が2つほどある

方法1)「ls -l /dev/disk/by-id」を実行する

linuxのDisk確認に「/dev/disk/by-id」の中身を見る方法がある
この方法は確実に、接続されたボリュームを断定することができる

実際に実行するとこのように表示される
[root@host-10-0-0-2 dev]# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-name-VolGroup00-LogVol00 -> ../../dm-1
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-name-VolGroup00-LogVol01 -> ../../dm-0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-uuid-LVM-zud5VIZtcakWMc94sCmRCG0dH21iJLORjlA2qPgCB5Q0pnI14CAlQPZ4qSPwDqAZ -> ../../dm-0
lrwxrwxrwx. 1 root root 10 Jul 25 01:29 dm-uuid-LVM-zud5VIZtcakWMc94sCmRCG0dH21iJLORQtO6Edh5XphYzPqDKYKNfuhc25lSuFTe -> ../../dm-1
lrwxrwxrwx. 1 root root  9 Jul 25 02:15 virtio-6a951574-07d8-4ecb-b -> ../../vdb

virtio-**************で表されるDiskは全て、仮想に接続されたボリュームである
※virtio-以降の文字は、一意なIDなので自分のIDに置き換えて考えること!

ここの、virtio-6a951574-07d8-4ecb-b  -> ../../vdb に注目する
これは、2階層前の「/dev」の「/vdb」が「virtio-6a951574-07d8-4ecb-b」と対応していることを示している





























しかも、virtio-より後ろの部分のIDはOpenStackのUIで確認できるボリュームの詳細のIDと対応しているので、接続されているボリュームが特定できる


方法2)つなぐ前と後で「ls -l /dev/vd*」を実行する


つなぐ前に、デバイスファイルを一覧して
つないだ後に増えたデバイスファイルが接続したボリュームであることが分かる
この方法は、一見簡単だが確実ではない

ボリュームをつなぐ前

[root@host-10-0-0-2 dev]# ls -l /dev/vd*
brw-rw----. 1 root disk 252, 0 Jul 25 01:29 /dev/vda
brw-rw----. 1 root disk 252, 1 Jul 25 01:29 /dev/vda1
brw-rw----. 1 root disk 252, 2 Jul 25 01:29 /dev/vda2

ボリュームをつないだ後

[root@host-10-0-0-2 dev]# ls -l /dev/vd*
brw-rw----. 1 root disk 252,  0 Jul 25 01:29 /dev/vda
brw-rw----. 1 root disk 252,  1 Jul 25 01:29 /dev/vda1
brw-rw----. 1 root disk 252,  2 Jul 25 01:29 /dev/vda2
brw-rw----. 1 root disk 252, 16 Jul 25 02:15 /dev/vdb ←これが追加された



2.接続する

接続する前に、初めて接続する場合はボリューム初期化を行う

自分の場合は、
#mkfs.ext4 /dev/disk/by-id/virtio-6a951574-07d8-4ecb-bまたは、
#mkfs.ext4 /dev/vdbで初期化できる

マウント用フォルダ作成
#mkdir -p /mnt/volume

マウント
#mount /dev/disk/by-id/virtio-15a9f901-ba9d-45e1-8 /mnt/volumeまたは、
#mount /dev/vdb /mnt/volume

これでマウントが完了し、インスタンスからアクセスできるはずである


2014年7月14日月曜日

CentOS6.4にOpenStack のインストールと設定(3/3)


前回の続き
ネットワークを前回に作成したので、
ルータを作成しネットワーク同士を接続する

ルータ一覧画面


















「プロジェクト」→「ルータ」から「ルータの作成」を押す


ルータの作成画面












ルータの名前を適当に入力して、「ルータの作成」を押す

ルータ一覧画面(追加後)









すると、ルータが作成されるので、「ゲートウェイの設定」を押して、設定する



ルータのゲートウェイ設定画面

















前回に作成した外部ネットワークをリストボックスから選択し、設定を完了する










この様に、外部ネットワークの列に、自分が作成した外部ネットワークが設定されていれば、ゲートウェイが設定されている

続いて、ルータの内側ポートに内部ネットワークを設定する
ルータの名前がリンクになっているので選択する

ルータの概要画面























概要画面にアクセスしたら、インタフェースの追加を行い、内部ネットワークがルータを跨いで外部にアクセスできるようにする
それには、「インタフェースの追加」を押す


ルータのインタフェース追加画面
サブネットというリストボックスから、自分が作成した内部ネットワークを選択する

以上で設定が完了したので、ネットワークトポロジーがどうなっているか確認する

「プロジェクト」→「ネットワークトポロジー」で見ることができる

ネットワークトポロジー画面
上のような、トポロジーができていれば設定は完了、おつかれさまでした



2014年7月10日木曜日

CentOS6.4にOpenStack のインストールと設定(2/3)


前回の続き

●ここからは、ネットワークの設定を触るのでSSH接続ではなく、実機で操作する

まず、ブリッジを作成する
#vi /etc/sysconfig/network-scripts/ifcfg-br-ex

----------------------中身----------------------
DEVICE=br-ex
DIVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=8.8.8.8
------------------------------------------------

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
----------------------中身----------------------
DEVICE=eth0
HWADDR=XX:XX:XX:XX:XX:XX
TYPE=OVSPort
ONBOOT=yes
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
------------------------------------------------

# ovs-vsctl show

 ・Bridge br-ex
 ・Bridge br-int があるか確認

例:
   Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
    Bridge br-int
        Port br-int
            Interface br-int
                type: internal
    ovs_version: "1.11.0"

 ・Bridge eth0があれば削除する


# ovs-vsctl del-br eth0

 ・br-exにeth0というportがなければ追加する

#ovs-vsctl add-port br-ex eth0

quantumの設定をする
# vi /etc/quantum/plugin.ini

以下を一番下に追記すればいい
----------------------中身----------------------

[OVS]
vxlan_udp_port=4789
network_vlan_ranges=physnet1
tenant_network_type=local
enable_tunneling=False
integration_bridge=br-int
bridge_mappings=physnet1:br-ex

[AGENT]
polling_interval=2

[SECURITYGROUP]
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
------------------------------------------------

再起動
# reboot

再起動したときに、今まで設定してきた項目が上書きされ書き換わってしまう可能性があるので、
設定を見直す

見直すポイント
# vi /etc/sysctl.conf

※/etc/sysctl.confが書き換わって

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

がすべて=1になっている可能性が高い
変更したら↓を実行して反映する
#sysctl -e -p /etc/sysctl.conf

ネットワークを再起動する
# service network restart

このとき、
Determining if ip address 192.168.0.100 is already in use for device br-ex...
らへんで [NG]になる場合もあるが、

ping 8.8.8.8が飛ぶようであればひとまず大丈夫

# iptables -I FORWARD -i br-ex -j ACCEPT

# iptables -I FORWARD -o br-ex -j ACCEPT

# service iptables save


# . keystonerc_admin

インスタンス用のイメージをダウンロードする
# wget http://oss.fulltrust.co.jp/disk_images/centos6.3_x86_64.qcow2

イメージを登録する
# glance add name=centos6.3 is_public=true container_format=ovf disk_format=qcow2 < centos6.3_x86_64.qcow2


●インストール完了!!! 以下はwebブラウザで操作

http://192.168.0.100/dashboard/ にアクセスし
ユーザ名:admin
パスワード:hogehoge でログインする

ログインしたら、ネットワークの作成に取り掛かる


OpenStackのネットワーク管理画面






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


名前は分かりやすいように、「192.168.0.0」(外部ネットワークは192.168.0.0/24)にしたが、
自分が理解できればなんでもいい

ネットワーク作成画面





















プロジェクト」を「admin」
共有と外部ネットワークにチェックを入れて「ネットワークの作成」をクリック

続いて内部ネットワークも作成する
内部ネットワークのネットワークアドレスは10.0.0.0/24とする

ネットワーク作成画面2






















共有にチェックを入れて「ネットワークの作成」をクリック


この時点で、下図のように2つネットワークができた

ネットワークを追加した結果














192.168.0.0をクリックして、外部ネットワークにサブネットの追加を行う




「サブネットの作成」を押す
























サブネット名は、「ext-subnet」
ネットワークアドレスは「192.168.0.0/24」
ゲートウェイアドレスは自分のPCアドレス「192.168.0.100」とした
詳細タブを押して他の項目も編集する



























割り当てプールは、openstackが使うIPアドレスの範囲を指定する
ここでは「192.168.0.103,192.168.0.149」とした
DNSサーバは「8.8.8.8」と「8.8.8.4」を指定した

以上の設定を終えたら作成を押す


次に、ローカルネットワークの設定を行う

















同じように、サブネットを追加する

内容は次の通り
























名前は「int-subnet」
ネットワークアドレスは「10.0.0.0/24」
ゲートウェイは「10.0.0.1」

























DNSサーバは「8.8.8.8」と「8.8.8.4」を指定した
設定を完了したなら作成を押す


















ネットワークの管理に戻ると、上図のようになる


次回、ルータの作成とインスタンス作成を行う


2014年7月9日水曜日

CentOS6.4にOpenStack のインストールと設定(1/3)


CentOS 6.4にOpenStack Grizzlyをインストールする手順の覚え書き

注意1

※現在、SELinuxのupdateの影響?で、grizzlyのインストールが正常に行えないので、
対処方法を投稿し直しました(記事へのリンク)

注意2

※GrizzlyのパッケージURLが変更されたため、変更箇所については
この記事にて記載した。


まずは、IP固定化
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

# service network restart

そして、アップデート
# yum update -y


SELinuxをpermissiveにする
sed -i -e  "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config

再起動
# reboot

# vi /etc/sysctl.conf

------------sysctl.confの中身------------
# Controls IP packet forwarding らへんの

net.ipv4.ip_forward = 0 を下に変更

net.ipv4.ip_forward=1

さらにしたを追記する↓
net.ipv4.conf.all.fowarding=1
net.ipv4.conf.all.rp_filter=0

# Do not accept source routingらへんの

net.ipv4.conf.default.rp_filter = 1 を下に変更

net.ipv4.conf.default.rp_filter = 0

# Disable netfilter on bridges. らへんのやつをすべて0にする
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

---------------------------------------

設定を反映
# sysctl -e -p /etc/sysctl.conf


GrizzlyのパッケージURLが変更されたため、
# yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly-3.noarch.rpm

↓↓↓↓↓↓↓↓

変更内容はこの記事の[1]に記載した。


# yum install -y openstack-packstackまで終了したら、下の記事へのリンクの手順を踏む

↓↓↓↓↓↓↓↓

(記事へのリンク)

ansファイルを作成する
GrizzlyのパッケージURLが変更されたため、ansファイルに変更が必要である。詳しくはこの記事の[2]に記載した。

使用したansファイルの内容はコチラ

ちなみに、192.168.0.100は自分のIPアドレス で
パスワードはhogehogeにしてある

適宜、必要に応じて置き換えればいい

---------------ansの中身---------------
[general]

# Path to a Public key to install on servers. If a usable key has not
# been installed on the remote servers the user will be prompted for a
# password and this key will be installed so the password will not be
# required again
CONFIG_SSH_KEY=

# Set to 'y' if you would like Packstack to install Glance
CONFIG_GLANCE_INSTALL=y

# Set to 'y' if you would like Packstack to install Cinder
CONFIG_CINDER_INSTALL=y

# Set to 'y' if you would like Packstack to install Nova
CONFIG_NOVA_INSTALL=y

# Set to 'y' if you would like Packstack to install Quantum
CONFIG_QUANTUM_INSTALL=y

# Set to 'y' if you would like Packstack to install Horizon
CONFIG_HORIZON_INSTALL=y

# Set to 'y' if you would like Packstack to install Swift
CONFIG_SWIFT_INSTALL=n

# Set to 'y' if you would like Packstack to install the OpenStack
# Client packages. An admin "rc" file will also be installed
CONFIG_CLIENT_INSTALL=y

# Comma separated list of NTP servers. Leave plain if Packstack
# should not install ntpd on instances.
CONFIG_NTP_SERVERS=

# Set to 'y' if you would like Packstack to install Nagios to monitor
# openstack hosts
CONFIG_NAGIOS_INSTALL=n

# Comma separated list of servers to be excluded from installation in
# case you are running Packstack the second time with the same answer
# file and don't want Packstack to touch these servers. Leave plain if
# you don't need to exclude any server.
EXCLUDE_SERVERS=

# The IP address of the server on which to install MySQL
CONFIG_MYSQL_HOST=192.168.0.100

# Username for the MySQL admin user
CONFIG_MYSQL_USER=root

# Password for the MySQL admin user
CONFIG_MYSQL_PW=hogehoge

# The IP address of the server on which to install the QPID service
CONFIG_QPID_HOST=192.168.0.100

# The IP address of the server on which to install Keystone
CONFIG_KEYSTONE_HOST=192.168.0.100

# The password to use for the Keystone to access DB
CONFIG_KEYSTONE_DB_PW=hogehoge

# The token to use for the Keystone service api
CONFIG_KEYSTONE_ADMIN_TOKEN=ADMIN

# The password to use for the Keystone admin user
CONFIG_KEYSTONE_ADMIN_PW=hogehoge

# The password to use for the Keystone demo user
CONFIG_KEYSTONE_DEMO_PW=hogehoge

# Kestone token format. Use either UUID or PKI
CONFIG_KEYSTONE_TOKEN_FORMAT=UUID

# The IP address of the server on which to install Glance
CONFIG_GLANCE_HOST=192.168.0.100

# The password to use for the Glance to access DB
CONFIG_GLANCE_DB_PW=hogehoge

# The password to use for the Glance to authenticate with Keystone
CONFIG_GLANCE_KS_PW=hogehoge

# The IP address of the server on which to install Cinder
CONFIG_CINDER_HOST=192.168.0.100

# The password to use for the Cinder to access DB
CONFIG_CINDER_DB_PW=hogehoge

# The password to use for the Cinder to authenticate with Keystone
CONFIG_CINDER_KS_PW=hogehoge

# Create Cinder's volumes group. This should only be done for testing
# on a proof-of-concept installation of Cinder.  This will create a
# file-backed volume group and is not suitable for production usage.
CONFIG_CINDER_VOLUMES_CREATE=y

# Cinder's volumes group size
CONFIG_CINDER_VOLUMES_SIZE=20G

# The IP address of the server on which to install the Nova API
# service
CONFIG_NOVA_API_HOST=192.168.0.100

# The IP address of the server on which to install the Nova Cert
# service
CONFIG_NOVA_CERT_HOST=192.168.0.100

# The IP address of the server on which to install the Nova VNC proxy
CONFIG_NOVA_VNCPROXY_HOST=192.168.0.100

# A comma separated list of IP addresses on which to install the Nova
# Compute services
CONFIG_NOVA_COMPUTE_HOSTS=192.168.0.100

# The IP address of the server on which to install the Nova Conductor
# service
CONFIG_NOVA_CONDUCTOR_HOST=192.168.0.100

# The password to use for the Nova to access DB
CONFIG_NOVA_DB_PW=hogehoge

# The password to use for the Nova to authenticate with Keystone
CONFIG_NOVA_KS_PW=hogehoge

# The IP address of the server on which to install the Nova Scheduler
# service
CONFIG_NOVA_SCHED_HOST=192.168.0.100

# The overcommitment ratio for virtual to physical CPUs. Set to 1.0
# to disable CPU overcommitment
CONFIG_NOVA_SCHED_CPU_ALLOC_RATIO=16.0

# The overcommitment ratio for virtual to physical RAM. Set to 1.0 to
# disable RAM overcommitment
CONFIG_NOVA_SCHED_RAM_ALLOC_RATIO=1.5

# Private interface for Flat DHCP on the Nova compute servers
CONFIG_NOVA_COMPUTE_PRIVIF=lo

# The IP address of the server on which to install the Nova Network
# service
CONFIG_NOVA_NETWORK_HOST=192.168.0.100

# Public interface on the Nova network server
CONFIG_NOVA_NETWORK_PUBIF=eth0

# Private interface for Flat DHCP on the Nova network server
CONFIG_NOVA_NETWORK_PRIVIF=lo

# IP Range for Flat DHCP
CONFIG_NOVA_NETWORK_FIXEDRANGE=10.0.0.0/24

# IP Range for Floating IP's
CONFIG_NOVA_NETWORK_FLOATRANGE=192.168.0.0/24

# Name of the default floating pool to which the specified floating
# ranges are added to
CONFIG_NOVA_NETWORK_DEFAULTFLOATINGPOOL=nova

# Automatically assign a floating IP to new instances
CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP=n

# The IP addresses of the server on which to install the Quantum
# server
CONFIG_QUANTUM_SERVER_HOST=192.168.0.100

# Enable network namespaces for Quantum
CONFIG_QUANTUM_USE_NAMESPACES=y

# The password to use for Quantum to authenticate with Keystone
CONFIG_QUANTUM_KS_PW=hogehoge

# The password to use for Quantum to access DB
CONFIG_QUANTUM_DB_PW=hogehoge

# A comma separated list of IP addresses on which to install Quantum
# L3 agent
CONFIG_QUANTUM_L3_HOSTS=192.168.0.100

# The name of the bridge that the Quantum L3 agent will use for
# external traffic, or 'provider' if using provider networks
CONFIG_QUANTUM_L3_EXT_BRIDGE=br-ex

# A comma separated list of IP addresses on which to install Quantum
# DHCP agent
CONFIG_QUANTUM_DHCP_HOSTS=192.168.0.100

# The name of the L2 plugin to be used with Quantum
CONFIG_QUANTUM_L2_PLUGIN=openvswitch

# A comma separated list of IP addresses on which to install Quantum
# metadata agent
CONFIG_QUANTUM_METADATA_HOSTS=192.168.0.100

# A comma separated list of IP addresses on which to install Quantum
# metadata agent
CONFIG_QUANTUM_METADATA_PW=hogehoge

# The type of network to allocate for tenant networks
CONFIG_QUANTUM_LB_TENANT_NETWORK_TYPE=local

# A comma separated list of VLAN ranges for the Quantum linuxbridge
# plugin
CONFIG_QUANTUM_LB_VLAN_RANGES=

# A comma separated list of interface mappings for the Quantum
# linuxbridge plugin
CONFIG_QUANTUM_LB_INTERFACE_MAPPINGS=

# Type of network to allocate for tenant networks
CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE=local

# A comma separated list of VLAN ranges for the Neutron openvswitch
# plugin
CONFIG_QUANTUM_OVS_VLAN_RANGES=physnet1:1:4000

# A comma separated list of bridge mappings for the Quantum
# openvswitch plugin
CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS=physnet1:eth0

# A comma separated list of colon-separated OVS bridge:interface
# pairs. The interface will be added to the associated bridge.
CONFIG_QUANTUM_OVS_BRIDGE_IFACES=br-ex:eth0

# A comma separated list of tunnel ranges for the Neutron openvswitch
# plugin
CONFIG_QUANTUM_OVS_TUNNEL_RANGES=1:1000

# Override the IP used for GRE tunnels on this hypervisor to the IP
# found on the specified interface (defaults to the HOST IP)
CONFIG_QUANTUM_OVS_TUNNEL_IF=

# The IP address of the server on which to install the OpenStack
# client packages. An admin "rc" file will also be installed
CONFIG_OSCLIENT_HOST=192.168.0.100

# The IP address of the server on which to install Horizon
CONFIG_HORIZON_HOST=192.168.0.100

# To set up Horizon communication over https set this to "y"
CONFIG_HORIZON_SSL=n

# PEM encoded certificate to be used for ssl on the https server,
# leave blank if one should be generated, this certificate should not
# require a passphrase
CONFIG_SSL_CERT=

# Keyfile corresponding to the certificate if one was entered
CONFIG_SSL_KEY=

# The IP address on which to install the Swift proxy service
CONFIG_SWIFT_PROXY_HOSTS=192.168.0.100

# The password to use for the Swift to authenticate with Keystone
CONFIG_SWIFT_KS_PW=f2a0f534b4de4ae6

# A comma separated list of IP addresses on which to install the
# Swift Storage services, each entry should take the format
# <ipaddress>[/dev], for example 127.0.0.1/vdb will install /dev/vdb
# on 127.0.0.1 as a swift storage device(packstack does not create the
# filesystem, you must do this first), if /dev is omitted Packstack
# will create a loopback device for a test setup
CONFIG_SWIFT_STORAGE_HOSTS=192.168.0.100

# Number of swift storage zones, this number MUST be no bigger than
# the number of storage devices configured
CONFIG_SWIFT_STORAGE_ZONES=1

# Number of swift storage replicas, this number MUST be no bigger
# than the number of storage zones configured
CONFIG_SWIFT_STORAGE_REPLICAS=1

# FileSystem type for storage nodes
CONFIG_SWIFT_STORAGE_FSTYPE=ext4

# Whether to provision for demo usage and testing
CONFIG_PROVISION_DEMO=n

# The CIDR network address for the floating IP subnet
CONFIG_PROVISION_DEMO_FLOATRANGE=172.24.4.224/28

# Whether to configure tempest for testing
CONFIG_PROVISION_TEMPEST=n

# The uri of the tempest git repository to use
CONFIG_PROVISION_TEMPEST_REPO_URI=https://github.com/openstack/tempest.git

# The revision of the tempest git repository to use
CONFIG_PROVISION_TEMPEST_REPO_REVISION=stable/grizzly

# Whether to configure the ovs external bridge in an all-in-one
# deployment
CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE=n

# To subscribe each server to EPEL enter "y"
CONFIG_USE_EPEL=y

# A comma separated list of URLs to any additional yum repositories
# to install
CONFIG_REPO=http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/epel-6/

# The IP address of the server on which to install the Nagios server
CONFIG_NAGIOS_HOST=192.168.0.100

# The password of the nagiosadmin user on the Nagios server
CONFIG_NAGIOS_PW=hogehoge
---------------------------------------

#packstack --answer-file=ans.txt

しばらく、待つことになるので待機
次回に続く

2014年6月1日日曜日

SSVMにSSHでログインする方法

CloudStackの管理UIを開き、ログインする。

画面左側のメニューから、インフラストラクチャを選択。

画面左のメニュー












そうすると、下の画面中央に出てくるので、システムVMの「すべて表示」を押す。

インフラストラクチャの一覧

下のような、システムVMの一覧が開くので、
種類がSecondary Storage VM となっている行の名前を選択する。

詳細が、表示されるのでその中から
「リンクローカル IP アドレス」 を見つける。

SSVM詳細画面


リンクローカルIPアドレス

ホスト側PC(ここではXenServer)にSSH接続し、
SSVMにSSH接続する。

 CloudStackのドキュメントでは次のように説明している。

# ssh -i <path-to-private-key> <link-local-ip> -p 3922

path-to-private-key:秘密鍵の場所(/root/.ssh/id_rsa.cloud)
link-local-ip:リンクローカルIPアドレス

なので、リンクローカルIPアドレスは162.254.1.254となっているので、
このようにすればよい。

# ssh -i /root/.ssh/id_rsa.cloud 162.254.1.254 -p 3922

2014年5月25日日曜日

Linux mint13 ブート中でのout of range解決策


Linux mint 13をwindowsXPが入っていたPCにインストールしたのだが、
起動時に、ディスプレイがout of rangeになってしまい画面が表示されないことがあった。

そして、その解決策がこちら。


まず、[menu]->[設定]->[追加のドライバー]を選択。

Menu画面

rootパスが求められるので、入力して認証する。

そうすると、次の画面が出てくるので、順番に選択する。

ここで、グラフィックドライバが複数出てくるが[推奨]とされているものを選択する。

追加のドライバー ウィンドウ
 
 [有効にする]を押せば、下のダイアログが出るのでしばらく待つ。

ドライバのインストール実行中のダイアログ

 完了すると、再起動するように促されるので、そのままリブートする。

out of rangeが出なくなれば成功です。
コマンド叩いて設定変更しないので簡単ですね!

2014年5月24日土曜日

CloudStackの設定初期化


CloudStackの管理画面で、様々な設定が簡単に行えるが、
それ故に、 いらない所まで弄ってしまうのも簡単である。(個人談)

なので、ぶっ壊れた場合にも元に戻せる方法を残しておこうと思う。

CloudStackの管理データは、データベースで扱われているので、
CloudStackのデータベースを削除して再セットアップで初期化できる。

まず、サービスを終了する 。

# service cloudstack-management stop

MySQLにroot権限でログインする。

# mysql -u root -p

Enter password: と聞かれるのでrootのパス打ってログイン。

現在のカーソルの行頭がmysql> になっていればログインはできている。

> SHOW DATABASES;と入力し、全てのデータベースを見てみよう。


MySQL内の全てのデータベース

















 この中で、cloudとcloud_usageとcloudbridgeがCloudStackの管理データなので、削除していく。

> DROP DATABASE cloud;
> DROP DATABASE cloud_usage;
> DROP DATABASE cloudbridge;
> quit


そして、CloudStackのセットアップを行えば、
MySQL内に再びデータベースが構築される

# cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456

# cloudstack-setup-management


以上で、初期化は完了!
お疲れ様でした。

2014年5月23日金曜日

CentOS6.4にCloudStack4.2をインストール(2/2)


前回の続き


 ・NFSの設定

  商業利用では、ストレージ専用にサーバ立てるのが大多数だけども、
  ここでは、管理サーバ内にストレージを作成。

  まず、 nfs-utilsをインストール。
  CentOSをupdateした場合は、既に存在している(かも)
 
  # yum -y install nfs-utils

 ・ストレージ用のフォルダ作成
  # mkdir -p /export/primary
  # mkdir -p /export/secondary

  新たにviでファイルを作成する
  # vi /etc/exports

  そして、↓を書き込んで保存
  /export  *(rw,async,no_root_squash,no_subtree_check)

  エキスポートを実行する
  # exportfs -a

  設定ファイルを編集
  # vi /etc/sysconfig/nfs

  ファイルを開いたら、下記の"#"をはずす
  LOCKD_TCPPORT=32803
  LOCKD_UDPPORT=32769
  MOUNTD_PORT=892
  RQUOTAD_PORT=875
  STATD_PORT=662
  STATD_OUTGOING_PORT=2020

  お次は、ファイアウォールの設定なんだけど、
  今回はお遊びなので、ファイアウォールを無効にします。
  (もちろん、あなたが使っているサーバが外部に公開されているならきちんと設定しましょう)

  # service iptables stop
  # chkconfig iptables off

  今回飛ばしたファイアウォールをしっかり設定したいなら 、
  cloudstack doc(4.5.6.2節の6を参照) にあります。
  cloudstack4.0と設定は変わらないので、そこら辺は分かりやすいブログなり参照してください。
 
 ・NFSの自動起動設定

  # service rpcbind start
  # service nfs start
  # chkconfig nfs on
  # chkconfig rpcbind on


 ・システム仮想マシンのテンプレートの準備
  # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://d21ifhcun6b1t2.cloudfront.net/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 -h xenserver -s -F

    もし、ここで /usr/share/cloudstack-common/なんてフォルダが無いとか、
    cloud-install-sys-tmpltが行方不明なら

    # find / -name cloud-install-sys-tmplt

    で探せばOK

 ・再起動
  # reboot
  
 ・再起動完了後
  ブラウザを開いて、CloudStackの管理画面にアクセスしてみる。
  
  http://管理サーバのアドレス:8080/client

  うまくいけば 下のような画面が表示されるはず。
 
CloudStack 管理画面

  長い道のり、お疲れ様でした。

  もし、CloudStackの管理画面が出てこない場合は、
  httpdとかtomcatのサービスが実行されていないか、
  ファイアウォールが邪魔しているのか、
  はたまたCloudStack4.2が時代遅れになっているだけかもしれません。
  (↑実際に本通りにCloudStack4.0をインストールしたのに起動しなかった原因が、
  CloudStackのバージョンが古かったせいだったことがあった。)

  とにかく、最後までお付き合いいただき、ありがとうございました。

2014年5月22日木曜日

CentOS6.4にCloudStack4.2をインストール(1/2)


自分のため、覚書(しかもCloudStack管理サーバのみ)なので、
細かいコマンドとかは省いているのでご了承を。
大体は、CloudStackのドキュメントとか見ればいいと思うよ、

もっとも、Linuxに慣れている人なら心配はないと思うけど。




用意するもの
  • 実機 or 仮想マシン
  • CentOS6.4のCD or ディスクイメージ


手順

 ・まずは、CentOS6.4をインストール

  インストールが終わったら、

  #yum -y update


 ・IPアドレスを固定化をする


 ・ホスト名がFQDNで解決できるか確認

  #hostname -f

  cloudstack.comなど、自分が設定したホスト名が返ってくればOK


 ・SELinuxの設定を変更する

  設定ファイルを開く
  #vi /etc/selinux/config

  ↓の項目の=以降をpermissiveに変更
  SELINUX=permissive

 ・NTPの設定を変更
  # vi /etc/ntp.conf

  ↓の項目のserver以降を適当なNTPサーバに変更
  server ntp1.jst.mfeed.ad.jp 
  server ntp2.jst.mfeed.ad.jp 
  server ntp3.jst.mfeed.ad.jp

/etc/selinux/config の中身


  #service ntpd restart

  #chkconfig ntpd on

 ・再起動する
  #reboot


 ・リポジトリの追加&パッケージのインストール
  # vi /etc/yum.repos.d/cloudstack.repo

  ↓の内容を書き込んで保存

  [cloudstack]
  name=cloudstack
  baseurl=http://cloudstack.apt-get.eu/rhel/4.2/
  enabled=1
  gpgcheck=0


  #yum -y install cloudstack-management

  #cd /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver
  #wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util


 ・MySQLのインストール
  #yum -y install mysql-server

  # vi /etc/my.cnf
  
  ↓[mysqld]の下に設定を追記
  [mysqld]
  innodb_rollback_on_timeout=1
  innodb_lock_wait_timeout=600
  max_connections=350
  log-bin=mysql-bin
  binlog-format='ROW'

  #service mysqld start
  #chkconfig mysqld on

  引き続き、MySQLの初期設定
  初回起動時はrootのパスワードを設定をするか聞いてくるので、
  適当に設定する。(ここら辺は、英語読めば分かるので、説明を割と省いてます)

  ここでは、分かりやすいように「123456」と設定したと仮定。

  #mysql_secure_installation

  実行すると、いくつかY/Nを聞かれるので、
  Disallow root login remotely?は"N"
  それ以外は"Y"を入力

MySQL 初期設定1

MySQL 初期設定2


  以上で、MySQLの初期設定は完了!

 ・CloudStackのセットアップ

  MySQLの設定が終わったので、今度はCloudStackのセットアップを行う。
  引数は、 cloud ユーザーに対してのパスワード(適当でいい)
  MySQLのrootパスワードを設定している。

  #cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456

  実行すると、cloud、cloud_usage、cloudbridgeというデータベースがMySQL内に作られる
  もし、処理の途中でエラーになるなら、SELinuxの設定などを見直す必要がある。

  処理が、正常に終了したなら次のような表示が出て終了するはず。
 

セットアップが正常に完了した場合

  最後に、このコマンドを叩いたらセットアップは完了

   #cloudstack-setup-management


  今回は、記事の量が長くなったので次回に続きます。
  ここまでの道のり、お疲れ様でした。