[僕] プログラミング アーカイブ

僕ト云フ事

たろマークはてなブックマーク

トップ > プログラミング

2011年03月22日

[google][oauth]google.com で OAuth の Consumer Key と Consumer Secret を取得する

OAuth を使用するドメインを登録すると取得できる。
ドメインの登録は以下から。

https://www.google.com/accounts/ManageDomains

"Add a New Domain" セクションで登録したいドメインを追加し、"Manage registration" セクションに出てくるリンクをたどる。

すると、そのドメインの所有うしゃかどうかを確認するための方法がいくつかの選択肢が出てくるので、自分がやりやすい方法で確認する。(自分は txt レコードに追加する方法でやった。)

確認出来たら、そのドメインの管理画面がでるので、"Target URL path prefix" の項目を入力すると、OAuth Consumer Key と OAuth Consumer Secret が表示される。

2008年11月10日

[amazon][aws][ec2]Amazon EC2 用に自分で CentOS 5 のイメージを用意する

Amazon EC2 では、Amazon 公式で用意されたイメージの他にいろんなひとがイメージを登録して share してるんですが、やっぱり見ず知らずの人が用意したイメージはあまり使いたくないなぁということで、自分で用意してみたのでその手順です。

EC2 のマニュアルでは、"Using Amazon EC2" -> "Creating and Preparing AMIs" あたりです。(マニュアルは Fedora ベースです)

作業は CentOS5 上で行いました。

追記 (2009-11-05T21:50:56+09:00)

S3 上へのイメージのアップロードとかは、試行錯誤には時間かかります。
nokoya さんの EC2 上で新規 AMI を作るのは良い手段だと思いました。

AMI tools をインストールする

AMI tools は ruby が必要なので、install されていない場合は入れてください。

# yum install ruby

ec2-ami-tools.noarch.rpm をインストールします。

# rpm -i ec2-ami-tools.noarch.rpm

まず空のイメージを作る

# dd if=/dev/zero of=centos5.img bs=1M count=2024

マニュアルだと例示されてるのが 1GB なんですが、CentOS 5 入れてて足りなくなったので 2GB にしました。(やっぱりこころもとなかったので 3GB 作り中。後で CPAN とかインストールしたイメージ作りたいから。ちなみに /mnt に 残りの領域がマウントされるので、/home とかはそっち使えばいいと思う。)

ext3 ファイルシステムを作成する

# mke2fs -F -j centos5.img

マウントする

# mkdir /mnt/ec2-fs
# mount -o loop centos5.img /mnt/ec2-fs

イメージ上にディレクトリ作ったりしていろいろ準備

/dev を用意する。

# mkdir /mnt/ec2-fs/dev
# for i in console null zero ; do /sbin/MAKEDEV -d /mnt/ec2-fs/dev -x $i; done

/mnt/ec2-fs/etc/fstab を作る。

/dev/sda1  /         ext3    defaults        1 1
none       /dev/pts  devpts  gid=5,mode=620  0 0
none       /dev/shm  tmpfs   defaults        0 0
none       /proc     proc    defaults        0 0
none       /sys      sysfs   defaults        0 0

yum-xen.conf をつくる

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null
 
[base]
name=CentOS-5.2 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=os
enabled=1
 
[updates-released]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=updates
enabled=1

proc ディレクトリ作って mount する

# mkdir /mnt/ec2-fs/proc
# mount -t proc none /mnt/ec2-fs/proc

yum で 作ったイメージに CentOS 5 をインストールする

yum -c yum-xen.conf --installroot=/mnt/ec2-fs -y groupinstall Core
yum -c yum-xen.conf --installroot=/mnt/ec2-fs -y groupinstall Base

/mnt/ec2-fs/etc/sysconfig/network-scripts/ifcfg-eth0 を作る

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no

/mnt/ec2-fs/etc/sysconfig/network を作る

NETWORKING=yes

/mnt/ec2-fs/etc/fstab に追記

EC2 のサービスでは /mnt 以下に今回作ったイメージ以外の領域がマウントされるので、それを追記しておきます。

/dev/sda2  /mnt      ext3    defaults        0 0
/dev/sda3  swap      swap    defaults        0 0

キー受け取り用のスクリプトを仕込んでおく

これをやっておかないと ec2-add-keypair で作った公開鍵が、起動時に受け取れません。このあたり意味がわからなくて少しハマった。

/mnt/ec2-fs/etc/rc.d/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
 
touch /var/lock/subsys/local
/usr/local/sbin/get-credentials.sh

/usr/local/sbin/get-credentials.sh
このファイルは、実行権限付けておくのも忘れないように!

#!/bin/bash
 
# Retreive the credentials from relevant sources.
 
# Fetch any credentials presented at launch time and add them to
# root's public keys
 
PUB_KEY_URI=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
PUB_KEY_FROM_HTTP=/tmp/openssh_id.pub
PUB_KEY_FROM_EPHEMERAL=/mnt/openssh_id.pub
ROOT_AUTHORIZED_KEYS=/root/.ssh/authorized_keys
 
 
 
# We need somewhere to put the keys.
if [ ! -d /root/.ssh ] ; then
        mkdir -p /root/.ssh
        chmod 700 /root/.ssh
fi
 
# Fetch credentials...
 
# First try http
curl --retry 3 --retry-delay 0 --silent --fail -o $PUB_KEY_FROM_HTTP $PUB_KEY_URI
if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then
    if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS
    then
            cat $PUB_KEY_FROM_HTTP >> $ROOT_AUTHORIZED_KEYS
            echo "New key added to authrozied keys file from parameters"|logger -t "ec2"
    fi
    chmod 600 $ROOT_AUTHORIZED_KEYS
    rm -f $PUB_KEY_FROM_HTTP
 
elif [ -e $PUB_KEY_FROM_EPHEMERAL ] ; then
    # Try back to ephemeral store if http failed.
    # NOTE: This usage is deprecated and will be removed in the future
    if ! grep -q -f $PUB_KEY_FROM_EPHEMERAL $ROOT_AUTHORIZED_KEYS
    then
            cat $PUB_KEY_FROM_EPHEMERAL >> $ROOT_AUTHORIZED_KEYS
            echo "New key added to authrozied keys file from ephemeral store"|logger -t "ec2"
 
    fi
    chmod 600 $ROOT_AUTHORIZED_KEYS
    chmod 600 $PUB_KEY_FROM_EPHEMERAL
 
fi
 
if [ -e /mnt/openssh_id.pub ] ; then
        if ! grep -q -f /mnt/openssh_id.pub /root/.ssh/authorized_keys
        then
                cat /mnt/openssh_id.pub >> /root/.ssh/authorized_keys
                echo "New key added to authrozied keys file from ephemeral store"|logger -t "ec2"
 
        fi
        chmod 600 /root/.ssh/authorized_keys
fi

unmount する

# umount /mnt/ec2-fs/proc
# umount -d /mnt/ec2-fs

登録用イメージ作成

aws user は、aws.amazon.com にログインしてアカウント情報見たときの右上に表示されてるやつ。ハイフンはいらない。

# ec2-bundle-image -i centos5.img -k <secret key file> -c <cert file> -u <aws user>

アップロード

S3 の backets は、無い名前を作ってくれます。S3 全体でユニークな名前にする必要があります。

# ec2-upload-bundle -b <s3 backets> -m /tmp/centos5.img.manifest.xml -a <access id>  -s <secret key>

登録

ここから先は ec2 コマンド群をインストール済みの mac で作業を行いました。

$ ec2-register <s3 backets>/centos5.img.manifest.xml

自分のイメージ確認

$ ec2-describe-images -o self 

秘密鍵生成

$ ec2-add-keypair vkgtest | sed -e "1d" > vkgtest.id
$ chmod 400 vkgtest.id

このコマンドで、公開鍵が AWS 側に登録される。
秘密鍵は他の ssh 秘密鍵と同様に保管します。

ec2-describe-keypair で登録した鍵の一覧が見られます。

インスタンス起動

$ ec2-run-instances <image id> -k vkgtest

image id は ami で始まる文字列です。
-k オプションには使用する鍵名を渡します。
すると起動時に指定された公開鍵をセットして起動してくれます。

Firewall の port 22 を開ける

$ ec2-authorize default -p 22

これで 22 番が開きます。
もう少し細かく接続もととか指定できるみたいだけどマニュアル参照で。

ちなみに ec2-describe-group で設定した内容が見えて、ec2-revoke で削除できます。
default ってのは iptables のチェーンみたいなものかなぁ。

インスタンス状態確認

$ ec2-describe-instances

正常に起動できていたら、ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com のようなサブドメインが割り当てられていると思います。
こんな感じでログインできます。

$ ssh -i .ssh/vkgtest.id root@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com

起動できていてログイン出来なかったら、/usr/local/sbin/get-credentials.sh のセットアップに失敗しているかも。

インスタンスシャットダウン

$ ec2-terminate-instances <instance id>

参考にさせていただきました

2007年04月22日

[mac]最近、Mac でやったこととか

下書きのママにしててわりと最近の話じゃないけど(;´Д`)

samba につなぐ

CentOS 上で動いてる Samba に Mac OSX で接続すること自体は難なく出来るんだけど、netfilter の設定を施したとたんに Finder のネットワークから見えなくなるのでちょっと困惑する。(ブラウズ出来なくなる。)

でも、見えなくなるだけなので、移動→サーバへ接続で、そのサーバのアドレスとか打ってあげると samba 越しにアクセスできるようになる。

070422mac2samba1.png

070422mac2samba2.png


設定した netfilter はこんな感じ。
netfilter の設定の参考にしたのは Software Design 2006年9月号の 4章:CentOS活用テクニック[セキュリティ編]です。
(LAN 内なのでグローバル IP アドレス云々のところを適宜変えてます。)


$ sudo cat /etc/sysconfig/iptables
# Generated by iptables-save v1.2.11 on Tue Mar 13 17:27:09 2007
*filter
:INPUT DROP [121:11645]
:FORWARD DROP [0:0]
:OUTPUT DROP [74:6660]
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT 
-A INPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 110 -m state --state NEW -j ACCEPT 
-A INPUT -p udp -m udp --dport 135 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 135 -m state --state NEW -j ACCEPT 
-A INPUT -p udp -m udp --dport 137 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 137 -m state --state NEW -j ACCEPT 
-A INPUT -p udp -m udp --dport 138 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 139 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT 
-A INPUT -p udp -m udp --dport 445 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 445 -m state --state NEW -j ACCEPT 
-A INPUT -j LOG --log-prefix "Dropped by default " 
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -o lo -j ACCEPT 
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 25 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 123 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 135 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 135 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 137 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 137 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 138 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 139 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p udp -m udp --dport 445 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -p tcp -m tcp --dport 445 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j LOG --log-prefix "Dropped by default " 
COMMIT
# Completed on Tue Mar 13 17:27:09 2007

KeyBinding を変える。

~/Library/KeyBindings/DefaultKeyBinding.dic に設定ファイルを置くことで、Cocoa アプリケーションの KeyBind が変更できる。

Cocoa アプリケーションのキーバインド -avoidnote-で公開されてる設定ファイルをちょこっといじって使わせてもらってます。

あと、この辺も参考にしたり。AppKit NSResponder class (Objective-C)


/* 
* File: DefaultKeyBinding.dict
* Author: atz
* Date: 2005-07-23 
* Location: ~/Library/Keybindings/DefaultKeyBinding.dict 
*/
 
{
   /* Ctr ======================================================= */
 
   "^ " = "setMark:";
   "^w" = "deleteToMark:";
   "^m" = "insertNewline:";
   "^i" = "insertTab:";
 
   /* Ctr-X ===================================================== */
 
   "^x" = {
     "["     = "moveToBeginningOfDocument:";
     "]"     = "moveToEndOfDocument:";
     "^x"    = "swapWithMark:";
     "^s"    = "save:";
   };
 
   /* ESC ======================================================= */
 
   "\033" = {
     "w"     = "copy:";
     "f"     = "moveWordForward:";
     "b"     = "moveWordBackward:"; 
     "v"     = "pageUp:";
     "^d"    = "deleteWordForward:";
     "c"     = "capitalizeWord:";
     "u"     = "uppercaseWord:";
     "l"     = "lowercaseWord:";
     "^h"    = "deleteWordBackward:";
     "\010"  = "deleteWordBackward:";
     "\177"  = "deleteWordBackward:";
     "<"     = "moveToBeginningOfDocument:";
     ">"     = "moveToEndOfDocument:";
     "\011"  = "complete:";        /* Tab */
   };
 
   /* OPTION ==================================================== */
 
   "~/" = "complete:";
   "~f" = "moveWordForward:";
   "~b" = "moveWordBackward:";
   "~v" = "pageUp:";
   "~n" = "pageDown:";
}

ESC と Option(Alt) は上手く動いてません(;'-')

2005年10月31日

Ctrl と CapsLock キー

ここ2週間くらい、Emacs を使い始めてるのであちこち検索しまくってたんですが、Ctrl と CapsLook を入れ替えてる人って多いのね。京都行った時は PIA 師匠も入れ替えてたよなぁ。週末にサフと秋葉原行ったときにキーボード見て回ったとき、すでに Ctrl キーがその位置にあるキーボードとかもあった。

何気に不都合しないと言うか、CapsLook の位置を Ctrl にすると C-x とか辛そうなんだけど、これはやっぱりブラインドタッチできてないからこそだろうかw
人差し指だけで打ってるわけではないですが、手の位置固定されてないってことだなぁ。でも、日本語は見ないでも打てる。手の位置は動いてるけど。多分キーボードが変わったら打てなくなる。無意識にキーボード見てるかも。うーむ。
# 意識しだしたらぼろぼろになってきたw

ちなみに、右にも Ctrl キーがあるキーボードなのでたまに使う。C-p とか C-n とか。Ctrl より、Esc キーの遠さが気になってたり。

2004年05月17日

[shibuya.pm]バッドノウハウカンファレンス 2004 行って来ました

今更ながら、バッコンレポです。
当日は、朝方(昼ごろ^^;)まで、作業したりなんだりしていたので、
思いっきり夕方起きでした^^;
寝ぼけて支度をして出たので、スーツ着てましたw
#会場で、びるずさんと合流~
びるずさんのbkcon感想

Shibuya Perl Mongers : バッドノウハウカンファレンス 2004 発表資料とレポート

Shibuya Perl Mongers Presents "バッドノウハウカンファレンス 2004" を2004年5月14日に開催します。

会場についたら既に、高林さんのバッドノウハウ講座が始まってました。
頭の10分くらい逃したのかな。
自分はあまりバッドノウハウを蓄積していない気もするんですが、
現実逃避とバッドノウハウ辺りが妙に実感した。

私は問題解決の際、邪魔される為にはどんな事だってする

今も何気に、たろうぇぶの設定方法とか書いてる最中に、FSWiki のプラグイン漁ってたり、
アクセス解析のプラグイン書こうとしてたりw

宮川さんの話しを聞いていて思ったのは、
やっぱり、自分はまだまだ浅いなーと。
#意外と自分でも気が付いてない蓄積はあるかもしれませんがw

BKは経験に比例して積まれるものですなぁ。
BK自体が良い悪いはともかく、それをたくさん持ってるってことは、
その人の経験をはかる目安になりそげ。

平林さんの招待講演: オッパイ星人とバッドノウハウは、笑った^^;
失礼ながらあまりよく知らなかったので、前もってサイトを多少見たりして予備知識を入れていったんだけど、
この話しだけ聞いてても問題なかっですわ^^;

やっぱりこういうことに着目して、"深追い"しちゃうのはそれが好きなんじゃないかなぁと勘ぐってしまいましたが、
ご本人は意外と貧乳な方が好きだそうです(違

AmetPerl の話しはなかなか興味深かった。
ほぇ~って感じです。

スライドの使い方が上手いなぁなんて、全然関係ないところで感心もしてたり^^;
粗本プレゼントとかw

んで、Lightning Talks Session。
全部感想つけると長いので、全体的な感想と気になった事のピックアップです。すんまそん。
山下さんの"グーアマ効果~消えたバッドノウハウ"から始まって、
全体的に、"バッドノウハウはいずれなくなる宿命"って印象が残った。
新し物好きになりすぎて、NewTypeになるのもどうかと思うけど、
古いものはやはり古いもので、OldTypeになるのもどうだろうて感じかな?^^;
何事も間を取るのが一番(違
#よくいろんな物の間に挟まってますがw

新部さんの"TeX and only TeX"は、熱い語りに圧倒されたw
とにかく熱かった。
好きなものは(・∀・)イイ!!
僕も Perl について熱く語れるようになろう(ぉ

鈴木さんの"「奥が深い症候群」の傾向"と対策で出てた単純接触の効果ってのはあるかなぁと。
Perl使いつづけてるのはまさにそれっぽい。

伊藤さんの"Perl でどうよ?"
というか、Perlで良いじゃんΣ(゚口゚;
PHPなんて、Verアップするたびに、マルチバイトおかしなことになってますよ?w
まぁ、Webに限って言えばそう大差ないというか、
言語にこだわるのは、実際に作る人だけでいいんです。
上の人間はおとなしくしたの人間の言う事を聞きやがれΣ(゚口゚;

〆が早川さんなのは、定型化してるようですね。
早川さん、戦闘力高すぎですw
#僕が低すぎるのかもしれません(ぉ
やり方は何通りもある。

2004年04月15日

[shibuya.pm]バッドノウハウカンファレンス@shibuya.pm

びるずさんの掲示板でハッケソ!

Shibuya Perl Mongers : バッドノウハウカンファレンス 2004

バッドノウハウカンファレンス 2004
Shibuya Perl Mongers Presents "バッドノウハウカンファレンス 2004" を2004年5月14日に開催します。
日時 - 2004年5月14日 金曜日 18:30?21:00
会場 - 国立オリンピック記念青少年総合センター (定員80人の部屋です。「コンピュータ利用にかかる非効率的作業改善についての会議」で予約してあります)
料金 - 無料
事前登録 - 4月末より開始します
プログラム 内容・順番・時間などは予告なく変更する場合があります。
キーノート: "バッドノウハウとの付き合い方" (仮) - 高林哲
"バッドノウハウと黒魔術(仮)" - 宮川達彦
Lightning Talks - 自慢のバッドノウハウ談義を披露しあおう

バッドノウハウカンファレンスキタ━━━(゚∀゚)━━━━!!
行きたい!!
5月中旬なら、GW休み無い代わりに何とかなるだろw

コンピュータ利用にかかる非効率的作業改善についての会議」で予約がツボでしたw

あぁあぁあぁ、中途半端なトラックバック打っちゃった○| ̄|_
というか、トラックバック打つつもり無かったんです、ゴメンナサイOTL
Enterキーに指引っ掛けちゃったんですorz

まるで、トラックバックspamと変わらんほど迷惑な事になってますが、
迷わず、削除してください・゚・(ノД`)・゚・。スイマセンスイマセン

トップ > プログラミング