2012年3月29日木曜日

iptables 複数の--dport, --sport を指定する


このエントリーをはてなブックマークに追加


メモ

■ルールの詳細を表示
iptables -nvL --line-numbers


■複数ポートを指定
iptables -I INPUT -p tcp -m multiport --dport 80,443,8080 -j ACCEPT
iptables -I INPUT -p udp -m multiport --sport 1000,1100,1200 -j DENY


■ポートの範囲を指定
iptables -I INPUT -p tcp --dport 1000:1100 -j ACCEPT

* --dport と --sport は同時に指定できない。


GuestOS on KVM on CloudCore


このエントリーをはてなブックマークに追加


CloudCoreはホスト側で仮想化支援機能をNestしてくれているようで、仮想サーバ上で更に仮想サーバを起動できる。

# cat /proc/cpuinfo |grep svm
flags  : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb lm up rep_good extd_apicid unfair_spinlock pni cx16 popcnt hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch npt

KVM関連をインストールする。
# yum install qemu-kvm libvirt python-virtinst

イメージファイルを作成
# qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 10G

コマンドラインからインストーラーを起動
virt-install --connect qemu:///system \
             --name testvm \
             --ram=512 \
             --hvm \
             --location http://ftp.riken.jp/Linux/centos/6.2/os/x86_64/ \
             --os-type=Linux \
             --os-variant=virtio26 \
             --disk=/var/lib/libvirt/images/test.qcow2,format=qcow2 \
             --network network=default \
             --nographics \
             --keymap ja \
             --extra-args='console=tty0 console=ttyS0,115200n8'

インストーラーが起動したところ。



CloudCore VPS に CentOS6を導入


このエントリーをはてなブックマークに追加


前回試したときは、まだコンソール機能が提供されていなかったのでできなかったけど、今はOK。

参考>> CloudCore VPS に CentOS 6.2 をクリーンインストールする方法

ようは、PXEブートからのネットワークインストールの要領でCentOS6を新規インストールしてやる。この手順は他のOSにも使える。

1. PXEブート用のvmlinuzとinitrdを現在インストールされているCentOS6のGrubから読み込ませる。
2. インストール媒体の指定に公開されているCentOSのツリーを指定する。

これだけ。実際の手順は以下。



2012年3月26日月曜日

RHEL6/SL6/CentOS6系のOpenStack Nova をインストールするときの注意


このエントリーをはてなブックマークに追加


いくつかハマった内容のメモ

1. nova-networkが起動しない

起動しようとするとこのエラー
(nova): TRACE:   File "/usr/lib64/python2.6/subprocess.py", line 725,
in communicate
(nova): TRACE:     stdout, stderr = self._communicate(input, endtime)
(nova): TRACE:   File "/usr/lib64/python2.6/subprocess.py", line 1322,
in _communicate
(nova): TRACE:     self.wait(timeout=self._remaining_time(endtime))
(nova): TRACE: TypeError: wait() got an unexpected keyword argument 'timeout'

以下のパッチをeventletに当てる。
--- /usr/lib/python2.6/site-packages/eventlet/green/subprocess.py.orig  
2011-05-25
23:31:34.597271402 +0000
+++ /usr/lib/python2.6/site-packages/eventlet/green/subprocess.py       
2011-05-25
23:33:24.055602468 +0000
@@ -32,7 +32,7 @@
                     setattr(self, attr, wrapped_pipe)
         __init__.__doc__ = subprocess_orig.Popen.__init__.__doc__

-    def wait(self, check_interval=0.01):
+    def wait(self, check_interval=0.01, timeout=None):
         # Instead of a blocking OS call, this version of wait() uses logic
         # borrowed from the eventlet 0.2 processes.Process.wait() method.
         try:
--

参考:https://lists.launchpad.net/openstack/msg02565.html


2. nova-computeがユーザ権限で起動できない

以下のファイルを作成して、特権機能へのアクセスを許可する必要がある。
/etc/polkit-1/localauthority/50-local.d/50-nova.pkla
[Allow nova libvirt management permissions]
Identity=unix-user:nova
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes


2012年3月24日土曜日

EmacsからDBを確認(Emacs DBI)


このエントリーをはてなブックマークに追加


これはすごい便利。

DB操作ツール Emacs DBI を作ってみた

コードをEmacsで確認しつつ、テーブルを直感的&簡単に除くことができる。

主にOpenStackのMySQLスキーマを確認しつつ使ってる。

Fedora16への導入
root# yum install perl-DBD-MySQL
root# yum install perl-CPAN
root# cpan install Module::Build::Compat
root# cpan install RPC::EPC::Service

これらをload-pathの通った場所に配置。
https://github.com/kiwanami/emacs-deferred/raw/master/deferred.el
https://github.com/kiwanami/emacs-deferred/raw/master/concurrent.el
https://github.com/kiwanami/emacs-ctable/raw/master/ctable.el
https://github.com/kiwanami/emacs-epc/raw/master/epc.el
https://github.com/kiwanami/emacs-edbi/raw/master/edbi.el
https://github.com/kiwanami/emacs-edbi/raw/master/edbi-bridge.pl

後はdot.emacsへ
(require 'edbi)

を追記して、

M-x edbi:open-db-viewer

で起動。接続先を聞いてくるのでDBI形式で入力してやる。

素晴らしい!


2012年3月20日火曜日

rdesktop オプションメモ


このエントリーをはてなブックマークに追加


たまに使うとすぐ忘れてるrdesktopのオプション

# rdesktop xxx.xxx.xxx.xxx -u user -g 1600x1100 -a 24 -x lan -r sound:local -r clipboard &

-u ユーザ名を指定
-p パスワード
-D ドメイン/ワークグループ
-g 解像度を指定
-a 色数(ビット数)
-r sound:local or remote 音をどこで鳴らすか
-r clipboard クリップボードを同期する

参考>> http://d.hatena.ne.jp/dayflower/20080529/1212051846


OSC2012 Tokyo Spring 日本OpenStackユーザ会 発表まとめ


このエントリーをはてなブックマークに追加


3/17のまとめ



2012年3月17日土曜日

OSC2012 Tokyo Spring 日本OpenStackユーザ会で発表してきました


このエントリーをはてなブックマークに追加


発表スライドはこちら。

芸もなくまたSwiftネタ。SwiftはNovaに比べると話題が少ないので苦しくなってきた。次回OpenStackユーザ会ではOSC名古屋での発表を予定してますので、そこではGlance + Swiftあたりと、OpenStack全体のストレージ機構を話せればと思ってます。

雨の休日、かつやや都心から離れた場所が会場だったのですが、OpenStackユーザ会のブースには多数の人が訪れて、セミナーでは150人弱の方々に来ていただきました。ありがとうございます。

また発表者の皆様、ブースの皆様本日は本当にありがとうございます&お疲れ様でした。
引き続きよろしくお願い致します。

*追記
今回のOSC2012 Tokyo/Springでは萌系グッズの充実っぷりが半端じゃなかったです。


2012年3月13日火曜日

Xのキーイベントを拾う xev


このエントリーをはてなブックマークに追加


xmodmapなんかでキーマップを変える時にどのキーを押すとどのコードが発行されるか確認する必要がある。

そんな時に使うのが、「xev」コマンド。

実行するとウィンドが立ち上がるので、そのウィンドをアクティブにしておいてキーやマウス入力すると標準出力にコードが表示される。

結構便利

マイクロソフト レーザー マウス Arc Mouseのスライド上タッチ、下タッチのイベント。
KeyPress event, serial 34, synthetic NO, window 0x2e00001,
    root 0xac, subw 0x0, time 514588, (168,-14), root:(170,72),
    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2e00001,
    root 0xac, subw 0x0, time 514611, (168,-14), root:(170,72),
    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x2e00001,
    root 0xac, subw 0x0, time 516068, (168,-14), root:(170,72),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2e00001,
    root 0xac, subw 0x0, time 516099, (168,-14), root:(170,72),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False



2012年3月11日日曜日

Emacs で git blame


このエントリーをはてなブックマークに追加


ここを参考に設定。そのまんま。

ソースを開いた状態で C-cG で git blame を開けるようになる。

elispは以下から入手する。
https://github.com/voins/mo-git-blame

事前にgitコマンドが使えるようになっている必要がある。
# yum install git

load-libraryが通ったパスに配置し、バイトコンパイルする。
# emacs -q --no-site-file -batch -f batch-byte-compile mo-git-blame.el

dot.emacsへ以下を追記


2012年3月7日水曜日

RHEL6/CentOS6/SL6 on KVM時のシリアルコンソール設定


このエントリーをはてなブックマークに追加


すぐ忘れるのでメモ。これを設定しておくと virsh console virtnameでコンソールにログインできるようになる。

RHEL6.x, Scientific 6.x, CentOS 6.x 全部共通。5.x系はこちら

下線部分を追記。
# vim /etc/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
title Scientific Linux (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_openstack-lv_root rd_LVM_LV=vg_openstack/lv_root rd_NO_LUKS rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_LVM_LV=vg_openstack/lv_swap rd_NO_DM console=tty0 console=ttyS0,115200n
        initrd /initramfs-2.6.32-220.el6.x86_64.im

rhgb
quiet

この2つのオプションを削除すると起動メッセージが全部表示されるようになる。


2012年3月6日火曜日

便利コマンド virt-top (仮想マシンの状態を監視)


このエントリーをはてなブックマークに追加


仮想マシンの状態を簡単に把握するためのコマンド。

・仮想マシンの負荷状態
・物理CPUの利用状況
・仮想NICの利用状況
・BLOCKデバイスの利用状況

をそれぞれ監視できる。