Jan 17, 2012

スキーの検定受けてきました。

IMG_0421


が…。不合格でした。><
SAJ2級(苗場) - 5名検定受けて2名合格。

今季初スキーで、検定受けるのもどうかと思うけど…。

同時にやってたSAJ1級は、5人中1名合格でした。(あの腕で1級受からないんじゃ、私じゃ1級無理ですわーwww)

基礎系の滑りをしないとダメらしい。(以下言い訳)
検定後の寸評で『不合格だった人!もう少し!おしい!』って言われました。
板が基礎系の板じゃないしなぁ。
カービングスキーになって技術が変わったって話も聞きました。
事前に1回くらいスキースクール入っときゃよかった!

今期中に受かるようにがんばろう。。
次回のスキーはたぶんニセコだけど、スクール入りたい。。
地味に悔しくて、板買ってしまいそうです!!

IMG_0426
とりあえずスキージャーナル初めて買ったよ…。(ちょうどバッジテストの特集でした)

Dec 02, 2011

自転車買いました。

ポスト @ 0:59:39 , 修正 @ Dec 02, 2011 9:59:39 | ひとりごと

三郷の排水機場あたり

ので自宅から片道1時間漕いで、三郷の排水機場まで行ってきた。(往復40kmくらい)

大学時代の友人も茨城で自転車やってるらしいけど、一緒に走ったら体力なくてついていけなそうだなぁ。。(長距離走早そうなスタイルだし。)

足がサムイーのでシューズカバー買おう。(自転車シューズってスカスカスースーで夏向きなのです)
あと、怖いほどスピード出る割にブレーキ効かないんだけど、ブレーキいいやつにしないとダメかしら。

Oct 18, 2011

ルータに対して ping ができないのに traceroute できる。

ポスト @ 10:51:23 , 修正 @ Oct 18, 2011 19:51:23 | 備忘録

もつ鍋(醤油味)来た
※写真と本文は関係ありません。


traceroute は ping と同じパケット(ICMP Echo Requestパケット)を送ってるんだと思ったてたけど Linux のtraceroute は UDP パケット送ってるそうな。

traceroute - ネットワークの経路を調査する - atmarkit
*1LinuxではUDPパケットを、WindowsではICMP Echo Requestパケットをデフォルトで用いる。Linuxでは-IオプションでICMPに変更することもできる

今回は --icmp-type echo-request を Drop しているルータに対して ping ができないのに traceroute ができて『???』と思ったのでした。

Oct 06, 2011

EC2 の EBS Volume を自動マウントするコマンドをちょっと改造。

ポスト @ 23:10:24 , 修正 @ Oct 07, 2011 8:10:24 | EC2,EBS,python

IMG_0026
※写真と本文は関係ありません。


Amazon EBSのボリュームを自動でattachしてマウントしたい - cyberarchitect
を参考にさせて頂き試してみましたがエラーが…。><
『Client.InvalidVolume.NotFound: The volume 'vol-XXXXXXXX' does not exist.』

リージョンの設定が足りないようだったので。

Scripts to automatically attach and mount an EBS Volume at Boot Time のスクリプトを改造して、ec2-attach-volume コマンドに --region のオプションを追加した。

# diff -Nur mount_ebs_volume.py_org mount_ebs_volume.py > mount_ebs_volume_add_region.patch
# cat mount_ebs_volume_add_region.patch


--- mount_ebs_volume.py_org 2011-09-27 16:04:22.028387625 +0900
+++ mount_ebs_volume.py 2011-09-28 13:14:12.100673654 +0900
@@ -31,7 +31,7 @@
 
 def mount():
    logging.info('Attempting to attach volume [%s] to instance [%s] as [%s]' % (volume_name, instance_id, device_name))
-   cmd = 'ec2-attach-volume -C %s -K %s %s -i %s -d %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'], volume_name, instance_id, device_name)
+   cmd = 'ec2-attach-volume -C %s -K %s %s -i %s -d %s --region %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'], volume_name, instance_id, device_name, ec2conf['REGION'])
 
    for i in range(0, 20):
        p = Popen(cmd, shell=True,stdout=PIPE);
@@ -49,7 +49,7 @@
            logging.info('Volume [%s] attaching to device [%s] in attempt #%d' % (_volume_id, _device_id, i))
 
            # wait for fully attached
-           cmd = 'ec2-describe-volumes -C %s -K %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'])
+           cmd = 'ec2-describe-volumes -C %s -K %s --region %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'], ec2conf['REGION'])
            for n in range(0, 20):
                logging.debug('Running ec2-describe-volumes for the %dth time' % n)
                p = Popen(cmd, shell=True,stdout=PIPE);
@@ -79,13 +79,21 @@
 def unmount():
    logging.info('Attempting to detach volume [%s] from instance [%s] as [%s]' % (volume_name, instance_id, device_name))
 
-   cmd = 'ec2-detach-volume -C %s -K %s %s -i %s -d %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'], volume_name, instance_id, device_name)
+   cmd = 'umount %s ' % (device_name)
+   p = Popen(cmd, shell=True,stdout=PIPE);
+   exitcode = p.wait() & 0xff;    # exit code is in the high byte
+   logging.debug('umount returned status code %d' % exitcode)
+   if exitcode == 0:
+       logging.info('Successfully unmount volume [%s] as [%s]' % (volume_name, device_name))
+
+   cmd = 'ec2-detach-volume -C %s -K %s %s -i %s -d %s --region %s' % (ec2conf['CERT'], ec2conf['PRIVKEY'], volume_name, instance_id, device_name, ec2conf['REGION'])
    p = Popen(cmd, shell=True,stdout=PIPE);
    exitcode = p.wait() & 0xff;    # exit code is in the high byte
    logging.debug('ec2-detach-volume returned status code %d' % exitcode)
    if exitcode == 0:
        logging.info('Successfully detached volume [%s] from instance [%s] as [%s]' % (volume_name, instance_id, device_name))
 
+
    
 # arguments
 if len(sys.argv) < 5:
@@ -119,9 +127,9 @@
 logger.setLevel(logging.INFO)
 
 # setup environment
-os.putenv('PATH', '/root/ec2-api-tools/bin/:' + os.getenv('PATH'))
-os.putenv('EC2_HOME', '/root/ec2-api-tools/')
-os.putenv('JAVA_HOME', '/usr/lib/jvm/java-6-sun')
+os.putenv('PATH', '/opt/aws/bin/:' + os.getenv('PATH'))
+os.putenv('EC2_HOME', '/opt/aws/apitools/ec2/')
+os.putenv('JAVA_HOME', '/usr/lib/jvm/jre/')
 
 # EC2 conf
 ec2conf = shellVars2Dict('/root/.ec2cred')


※ ec2-detach-volume するときに unmount しないとうまくいかなかったのでそれも追加した。

.ec2cred に
REGION=ap-northeast-1
を追加した。

# diff -Nur .ec2cred_org .ec2cred


--- .ec2cred_org    2011-09-27 08:40:53.000000000 +0900
+++ .ec2cred    2011-09-27 16:17:53.789461128 +0900
@@ -1,4 +1,5 @@
-CERT=/root/cert-XXX.pem
-PRIVKEY=/root/pk-XXX.pem
-AWSACCOUNTID=XXXX-XXXX-XXXX
+CERT=/root/cert-XXXAAA.pem
+PRIVKEY=/root/pk-XXXAAA.pem
+AWSACCOUNTID=XXXX-XXXX-XXXX
+REGION=ap-northeast-1


これでOKになりました。

Jul 13, 2011

VNC Server の設定

ポスト @ 14:24:22 | linux,vnc

大垣城のとなりの公園
※写真と本文は関係ありません。


ポリシー

  1. デーモンで起動する。
  2. ssh でトンネリングするので localhost からのアクセスのみ。


VNC 用パスワードの設定。
# vncpasswd


gnome の画面が見られるように dot_file を編集。


[root@hosting634 ~]# vi ~/.vnc/xstartup 
#!/bin/sh
 
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER                          #コメント外す
exec /etc/X11/xinit/xinitrc                       #コメント外す
 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &


どのユーザと画面番号をひもづけるか設定。
/etc/sysconfig/vncservers の最後のほうに追加。


[root@hosting634 ~]# vi /etc/sysconfig/vncservers
…
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-nolisten tcp -nohttpd -localhost"


ssh でトンネリングして使うので『-localhost』オプションを付ける。


こんな感じでトンネリングしてから、VncViewerをつかう。

$ ssh 192.168.222.5 -L 5901:localhost:5901

Jun 24, 2011

nfs 経由のアクセスのグループ数には上限がある。

ポスト @ 18:17:14 | linux,nfs,samba

新しくなってた。
※写真と本文は関係ありません。


今週の初めから出張挟んで悩んでた件。
『NFS経由のグループによるアクセス制御は、補助グループが16を越えるとダメでした』というはなし。

samba(3.0.23d)のファイルサーバ。あるユーザがアクセス出来ないと連絡あり(このユーザ以外は問題なし)
認証には LDAP を使用していて統合されている。
計5台でファイルサーバ1台に見えるように、メインのサーバ1台に他の4台が nfs マウントされている。(過去にmsdfs proxy 形式から変更した経緯あり。Windows7ではうまく動かなかった。)そのnfsマウントされた領域をsambaで共有している。

このユーザの権限でファイルを作ろうとすると。


[root@fs kojin]# id furu-furu
uid=1222(furu-furu) gid=1000(samba-users) 所属グループ=1000(samba-users),1001(dantai),1002(kojin),…………………,1032(nittei)                           # 32 のグループに所属してる。
[root@fs kojin]# pwd
/mnt/samba/fs2/kojin                             # fs2 以下は nfs マウント
[root@fs kojin]# ls -ld
drwxrwsr-x 36 root kojin 4096  6月20日 15:59 ./
[root@fs kojin]# sudo -u furu-furu touch  test
touch: `test' に触れることができません: 許可がありません
[root@fs kojin]# LANG=C sudo -u furu-furu touch  test
touch: cannot touch `test': Permission denied


こんな感じで、パーミッションは問題なさそうなんだけど書けない。

fs2 に直接ログインしての書き込みは可能。nfs経由からの書き込みがダメっぽい。
autofs で経由で接続されてるので autofs,nfs の設定見直して再接続してみたけどダメ。


調べてみると、nfs 経由のアクセスはユーザが所属する補助グループが16以下しかアクセスコントロールできないとのことらしい。

結局ファイルサーバへのアクセス権限の範囲を厳選してもらい、所属グループ数を減らしてもらいました。他のユーザもダメだったかもしれないですな。

みんなどうしてるんだろう、iSCSI とかつかうのだろうか?実験しとかないとダメですなー。

2011.6.27追記
iSCSI だと iscsi-initiator 経由でファイルシステム作り直す感じになるので、元からある共有領域をマウントはできないですな。


こちらを参考にさせて頂きました。ありがとうございます。
NFSアクセスにおけるグループ数の制限とは - OpenGroove

以前のログ