2012年1月25日水曜日

tortoiseSVNでつなぐ

サーバーにリポジトリができたところで、やっとWindowsからTortoisSVNでチェックアウトする準備ができました。
SSH経由でSVNサーバーにつなぐ、というのをやってみましょう。

このサイトとかを参考にします。

普通にhttpとかでリポジトリにつなぐよりも一手間多い感じですね。

■PuTTYの接続設定を保存


以前PuTTYでサーバーに接続した設定を「ユーザー名@サーバーのIPアドレス」という名前で保存します。
motoaki.sasaki@56.244.56.101 みたいな感じで保存。
(これ自体になんの意味があるかはわかっていませんが…)

■Pageantの設定

PuTTYに付属しているPageant.exeを設定します。
このアプリはなんといえばいいのか、いわゆるトンネルというやつです。
TortoiseSVN単体ではサーバーにSSH接続することはできないのですが、このPageantというのを起動しておくとTortoiseSVNでのSSH接続できるようになるのです。

まずは、pageant.exeのショートカットを適当なところに作成します。
作成したショートカットを右クリックして「プロパティ」を開きます。
「リンク先」を編集して、秘密鍵のパスを引数に指定します。
「"C:\Program Files\PuTTY\pageant.exe" "秘密鍵のファイルパス"」という感じです。

秘密鍵は先につくった.ppkファイルですね。

これで設定はおしまい。
ショートカットをクリックして起動しておきましょう。
SSH経由でTortoiseSVNを使う際は起動しておく必要があるので、頻繁に使う場合はスタートアップ登録しておくといいですね。

■TortoiseSVNの設定

入っていない人はインストールしといてください。
日本語化も。

エクスプローラの適当ば場所で右クリックして、「TortoiseSVN→設定→ネットワーク」を開きます。
SSHクライアントの欄にPuTTYの指定をします。
「C:\Program Files\PuTTY\plinkw.exe」こんな感じで、plinkw.exeというのを指定してください。
これで準備完了です。

■テスト

それではチェックアウトできるかテストしてみます。
適当なフォルダを作成してチェックアウトします。
チェックアウト先は「svn+ssh://ユーザー名@IPアドレス/svn/Prj_hoge」といった感じで指定します。
これは前回作ったサーバーのリポジトリを想定したかたちになっています。
「svn+ssh://」の後にユーザー名とリポジトリのアドレスを指定するかたちになります。
これでチェックアウトできるはず。

チェックアウトができたら、コミットや更新を一通り試してみましょう。

2012年1月24日火曜日

テストリポジトリの作成

それではいよいよリポジトリの作成です。
まずはリポジトリを置くためのディレクトリをつくっておきましょう。

目立つところにあるのがいいので、ルートの直下にsvnディレクトリをつくります。

# su
# cd /
# mkdir svn

ここでちょっとユーザー管理の話。
グループを作って、権限管理を楽にしましょう。
subversionにアクセスするユーザーがひとつのグループに属するように設定しておくと
アクセス権限の設定が楽になるので。
develというグループを作ります。


# groupadd devel
# usermod -G devel motoaki.sasaki

develグループをつくって、motoaki.sasakiを所属させました。
さっきつくったsvnディレクトリにグループ権限を付加します。

# chgrp devel svn
# chmod 770 svn


これでOK。


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

それではいよいよリポジトリを作ります。
リポジトリ名は「Prj_hoge」としておきます。

# mkdir /svn/Prj_hoge
# chmod -R 770 /svn/Prj_hoge
# chmod -R g+d /svn/Prj_hoge
# svnadmin create /svn/Prj_hoge

ディレクトリを作成して、パーミッションを設定した後にsvnadminコマンドでリポジトリの作成、という段取りです。
svnadminがSubversionのコマンドです。
svnadmin なんちゃら、というのがSubversion制御的なコマンドになります。
このへんはSubversion本とかサイトに載っているので、使うときにいろいろ調べるといいでしょう。


リポジトリの作成手順はこんな感じで定型化できるので、いちいちうつのがめんどくさいときはシェルスクリプト化しておくとよいです。
シェルスクリプトはbatみたいなもんです。


今回はここらへんで。
次回はこのリポジトリにクライアントかrあつなぎます。

2012年1月23日月曜日

Subversionのインストール

それではsubversionをサーバーにインストールします。
サーバーにログイン。


# sudo yum install subversion

これだけであっさりインストール完了。
root権限になっている人はsudoは要らないです。

ちなみにsudoはroot権限でのコマンド実行するコマンドです。
パスワードの入力が必要。

yumというのはLinuxのインストールコマンドのようなものですね。
かつてはconfigureしてからmakeするという手順で苦労しながらインストールしてた記憶がありますが、今はこれだけでいけてちょう便利です。

これでSubversionが入ったので確認しましょう。

# svn --version

これでバージョン番号が表示されればOK。

あっさりsubverisonのインストール完了です。

2012年1月22日日曜日

UNIXコマンド

さて、これからサーバーをいろいろ触っていくわけですが、ここでサーバーを操作するのによく使うコマンドをあげておくことにします。
自分が個人的に使っているやつメインです。

# su

今までも何回かでましたが、ユーザーを変更するコマンドです。
rootになる場合はsu、特定のユーザーになる場合は su hogeって感じです。(hoge=ユーザー名)
ちなみにrootから特定のユーザーにsuするときはパスワード要りません。

# ls

ディレクトリ内の一覧を確認します。
MS-DOSでいうところのdirコマンド。
Linuxではパーミッションの設定を確認することが多いので ls -al というコマンドを使います。
aで隠しファイルを表示、lでリスト表示します。

# cd

change directoryです。
これはMS-DOSと一緒ですね。
cd / で一番上の階層にいきます。

# vi

Unixの標準エディタ「vi」を起動します。
vi hoge.txt という感じで使います。
コマンドに慣れが必要なのが嫌なところです。
うっかり起動してしまったら、
[Esc]→「:」→「q」→「!」とタイプしてリターンしましょう。

# cp

コピーコマンドです。

# mv

ファイルの移動コマンドです。

# rm

ファイルの削除コマンドです。

# pwd

カレントディレクトリのパスを表示します。


# chmod

ファイルのパーミッションを変更します。

これらのunixコマンドの詳しい使い方はそれぞれのヘルプ表示で確認できます。
コマンドの後に --help をつけるとだいたUsage表示されるので確認してください。
rm の詳細を確認したいときは、rm --help という感じです。

他にもたくさんあるのですがよく使うのはこんなところですね。
わかんないのがあったらwebで検索するのがよいでしょう、

2012年1月21日土曜日

一般ユーザーの作成

前回で「ec2-user」というユーザーでサーバーにアクセスできるようになりました。
しかしこの「ec2-user」で作業するのもちょっと抵抗があります…。
やはり自分のアカウントというのは自分の名前でありたいものですし。

ということで新しいユーザーをつくって、それで作業していけるようにしましょう。
まずはPuTTYを起動してec2-userでログインします。
ログインしたらrootになりましょう。
(ユーザーはroot権限じゃないと作成できないので)


$ su
Password:**********

これでrootになりました。
次はユーザーの作成です。

# useradd motoaki.sasaki

これで「motoaki.sasaki」というユーザーが作成されます。
この「motoaki.sasaki」にパスワードを設定しましょう。

# passwd motoaki.sasaki

Changing password for user motoaki.sasaki.
New password:password1
Retype new password:password1
passwd: all authentication tokens updated successfully.

これで"password1"というパスワードが設定されました。
このユーザーがほんとに存在するか試してみましょう。
まずはrootからec2-userに戻ります。

# exit

そんでmotoaki.sasakiにswitch userします。

$su motoaki.sasaki
Password:passwrod1

これでユーザーが切り替わればOK。
ユーザーをつくると、そのユーザーのホームディレクトリも作成されます。
ちょっと確認してみましょう。

$ cd /home/
$ ls

この結果の中にmotoaki.sasakiディレクトリがあればOK。
cdコマンドはディレクトリの移動、lsはファイルやディレクトリの情報表示コマンドになります。
(それぞれchange directory, listの略)
ユーザーごとに/home/ユーザー名/のディレクトリがつくられるというわけです。

これでLinuxのユーザーが追加できました
しかしこのmotoaki.sasakiユーザーはこのままではネットワークログインできません。
ネットワークログインできるようにSSHの認証キーを発行します。

motoaki.sasakiのユーザーのまま操作を続けます。

# ssh-keygen -t rsa

「Enter passphrase」というのが出ますが、ここれではとくにパスフレーズなしで作成しましょう。
何も入力せずにEnterキーを入力を2回。
何か暗号みたいなのや図形っぽいのが表示されて終了。
これでキーが発行できました。
キーはホームディレクトリの.sshディレクトリに作成されます。

/home/motoaki.sasaki/.ssh/id_rsa.pub
/home/motoaki.sasaki/.ssh/id_rsa
↑この似たような名前のファイルがキーとして作成されました。

id_rsa.pubは「公開鍵」、id_rsaは「秘密鍵」というものになります。

公開鍵id_rsa.pubをauthorized_keysに追加します。

# mv /home/motoaki.sasaki/.ssh/id_rsa.pub /home/motoaki.sasaki/.ssh/authorized_keys

追加というかファイル移動しただけですけど、これでOKだと思います。
(本来はcatコマンドで追加)

で、「秘密鍵」id_rsaは接続するPCにダウンロードして、ppkファイルに変換して使うことになります。
ダウンロードするには前回設定したFileZillaを使いましょう。
FileZillaではec2-userしか設定していないので、ec2-userのディレクトリに移動&ダウンロードできるようにパーミッションを設定します。
ここはrootになって作業します。
(motoaki.sasakiからはec2-userのディレクトリとかにアクセスできないので)

# su
$ cp /home/motoaki.sasaki/.ssh/id_rsa /home/ec2-user/motoaki.sasaki.id_rsa
$ chmod 777 /home/ec2-user/motoaki.sasaki.id_rsa

↑ここではわかりやすいようにid_rsaをmotoaki.sasaki.idとリネームしてコピーしてます。
chmod 777で誰でもアクセスできるようにパーミッション設定しました。(乱暴)


FileZillaでmotoaki.sasaki.id_rsaをダウンロードしましょう。
ダウンロードしたこの秘密鍵ファイルは以前にppkファイルを作成した要領でppkファイルにします。
そして再度PuTTY設定をして、motoaki.sasakiというユーザーでサーバー接続します。
この要領も前と一緒なのでそちらを参照してください。

→ ppkファイルの作成とPuTTY接続


これでユーザーの追加ができました。
他の人に接続してもらうときにもこの流れでユーザー作成しましょう。


2012年1月20日金曜日

SSHでリモート接続

■Puttyのインストール

サーバーを起動して確認するところまでやりました。
今の状態だとOSを入れて起動した、というさらの状態ですので、これからソフトを入れてちゃんとSubversionのサーバーとして動くようにセッティングしていきます。

それではサーバーにリモートログインしてみましょう。
SSHでログインします。

まずは必要なソフトをダウンロードしてきます。
Puttyごった煮版 をダウンロードしましょう。
変な名前ですが、SSHリモートログインするのに必要なものが全部まとめられているパッケージです。
インストーラー版をダウンロードしてさくっとインストールしてください。

■ppkファイルの作成

ppkファイルをつくります。
ppkファイルというのはSSH接続をするのに必要な「鍵ファイル」というやつです。

前の前の前の回で作成した「Key Pair」という.pemファイルがPCに保存されていると思いますので、それをコンバートしてつくります。
ここでは仮にhoge.pemファイルをコンバートしてhoge.ppkを作成するかたちで進めます。

必要なツールはさっきPuttyをインストールしたときに一緒にインストールされたputtygenというやつです。自分の場合だと"C:\Program Files (x86)\PuTTY\puttygen.exe"になります。これを起動しましょう。
Windowsのスタートメニューからだと、すべてのプログラム→Puttyごった煮版→PuTTYGenで起動。



「読み込み」ボタンを押して、hoge.pemファイルを読み込みます。
読み込んだら「秘密鍵の保存」をクリックしてhoge.ppkとして保存します。
パスフレーズは特に必要ないみたいなのでそのままやります。
(つけても問題ないらしい)


■PuttyでSSH接続

それではいよいよPuttyでサーバーにSSH接続します。
ログインユーザー名は「ec2-user」になります。

Puttyを起動しましょう。
スタートメニューから、すべてのプログラム→PuTTYごった煮版→PuTTyで起動。Putty設定ウィンドウが立ち上がります。





接続先の設定をしましょう。
左のメニューから、接続→SSH→認証を選択します。
「認証のためのプライベートキーファイル」という項目があるので、さっきのhoge.ppkを選択します。


次に一番上の「セッション」を選択します。
(起動したときの画面ですね)
ホスト名にユーザー名(ec2-user)とサーバーのIPアドレスを「ec2-user@xxx.xxx.xxx.xxx」のかたちで入力。
サーバーのIPアドレス確認方法は前回を参照してください。
前回と同じ場合だと"ec2-user@ec2-174-129-182-22.compute-1.amazonaws.com"になります。

そんで、このセッション設定を保存しておきます。
セッション一覧のリストの上にあるテキストボックスに設定名を入れて「保存」ボタンを押します。
ここでは"Tokyo(ec2-user)"としました。
これで次回接続時は設定抜きでできます。
(IPアドレスが変わる場合は設定しなおしですが…)

ここまでやったら「開く」ボタンをクリックします。
ターミナルにこんな感じで表示されてログイン成功です。



これでログイン完了です。
ここで忘れずにrootパスワードを変更しておきましょう。
ec2-userでログインしていますが、rootに切り替えてパスワードを変更します。

# sudo su
# passwd

のコマンド打って、新しいパスワードを入力して設定しておきましょう。
(このec2-userは特殊なユーザーでsudo権限というコマンドをパスワードなしで使うことができる、ほぼroot扱いのユーザーになります)

これでEC2に作ったサーバーにログインして、いろいろ操作できるようになりました。


■FileZillaで接続

これでサーバーが操作できるようになったわけですが、これだけだとなかなか面倒ですね。
クライアントとサーバーの間で楽にファイルのやりとりができるように、FileZillaを設定しておきましょう。
サーバー内で作成したファイルをローカルPCにダウンロード(またはアップロード)できるようになります。

FileZillaをインストールしましょう。→こちら

インストールしたらこっちにもhoge.ppkファイルを設定します。
メニューの「編集」→「設定」を開いて、「接続」→「SFTP」を選択します。
「鍵ファイルの追加」というボタンをあるので、それを押してhoge.ppkを追加してください。



「ファイル」→「サイトマネージャー」を選択して「新しいサイト」を選択。
「ホスト」にはIPアドレスを入れます。
「Protocol」はSFTPを選択。
「ユーザー」は"ec2-user"として保存しましょう。


接続すると、サーバー上の"/home/ec2-user/"ディレクトリが参照できるはずです。


これでSSHログインとFileZillaでの接続が完了しました。
これでOSをインストールしたサーバーマシンが「手元で」操作できる、という状況になりました。



2012年1月19日木曜日

起動の確認&セキュリティグループの設定

それでは起動したサーバー(=EC2インスタンス)の確認をしてみます。
AWS Management Console画面で「EC2」タブを選択して、左のナビゲーションバーのINSTANCES->Instancesを選択します。
My Instancesのエリアに作成したインスタンスがリスト表示されます。
いろいろ書いてありますが、Stateの欄が「runnning」となっていればサーバーが稼動しています。



さらにサーバーの詳細を確認してみましょう。
ここではIPアドレスを確認してみます。
インスタンスのリストで確認したいインスタンスをクリックします。
下に選択したインスタンスの情報が「Description」として表示されます。
ここをスクロールしていくと「Public DNS」というのがあり、これがIPアドレスになります。
この場合だと「ec2-174-129-182-22.compute-1.amazonaws.com」ですね。



ちなみにこのアドレスは起動するたびに変わります。
固定する場合はElastic IPというサービスを使いますが、それはまた後で。

ここまできて「なんとなく動いてそうだ」という感じになってきたと思いますが、具体的な反応がないのでまだ実感が足りません。
IPアドレスもわかったことですし、pingをうって反応を見たいと思います。
サーバーをpingに反応するように設定しましょう。

さっきのインスタンス情報のところで「Security Groups:」となっているところを確認します。
ここでは「quick-start-1」となっています。
このSecurity Groupという機能がサーバーでどの通信を有効にするかを設定しています。



名前を確認したらナビゲーションバーのNETWORK&SECURITY->Security Groupsをクリック。
quick-start-1を選択しましょう。
下に詳細が表示されます。




Inboundのタブをクリックすると設定の確認&変更ができるようになります。
この状態だとSSHしか許可してないのでpingも許可するようにしましょう。



pingはICMPというプロトコルで制御されているので、Custom ICMP ruleをリストから選んで、Add ruleボタンをクリックします。
これで右側のリストに追加されました。
これだけでは切り替わらないのでApply Rule Changesボタンをクリックして有効にします。


これで設定が完了しました。
DOSプロンプトを開いて、ping ec2-174-129-182-22.compute-1.amazonaws.com とうってみましょう。反応が返ってきます。


このセキュリティグループはいくつかつくることができ、サーバーごとに割り当てを変えることができます。
今回はpingを有効にしてみましたが、subversionではSSHのみ使用するのでSSHだけの設定に戻しておきましょう。






2012年1月18日水曜日

EC2インスタンスをつくって起動する


それではEC2インスタンスをつくって起動しましょう。

EC2インスタンスというのは簡単にいうとクラウド上のPCです。
仮想の「PC」を用意して起動するのが今回の内容です。

PCを購入するときはハードウェアスペックを選んで、好きなOSを入れるわけですが
これをManagement Console上で設定します。

前回同様Management Consoleを開いて「EC2」を選択します。
一番めだつ「Launch Instance」ボタンがあるのでそれをクリック。


そうすると「Create New Instance」というウィンドウがでてきます。
このウィンドウで前回のKey Pairを指定。
そんでインストールされるOSを選択します。
Windowsとかも選択できますが、とりあえずAmazon Linux 64bitでつくるのがよいかと思います。



このままContinueして、次の画面でLaunchするともう起動しちゃいます。
「Edit Details」するとハードウェアのスペックも選べます。
無料期間でできるのは「t1.micro」というスペックだけなので、それでやるといいです。
もっと協力なサーバーも選べますが、練習はこのくらいで十分。



2012年1月16日月曜日

AWSに登録してEC2インスタンスをつくる準備

まずはAmazon Web Serviceに登録してEC2インスタンスをつくる準備をします。

■Amazon Web Serviceに登録する



このページを参考にしました。→AWS入門 EC2のインスタンスを立ち上げてみる

まずはAWSに登録。
http://aws.amazon.com/jp/ にアクセスして「サインアップ」します。




次の画面ではEメールアドレスを入れて、「I am a new user」にチェックをいれてボタンを押します。


次の画面は名前、メアド、パスワードを入力。



次は住所を入れたり。この後はクレジットカード情報とか入れますが割愛します。




登録の際に必要なのは
・メールアドレス
・住所(英語で)
・電話番号
・クレジットカード情報
ですね。
これを入力すると、すぐに電話がかかってきます。
登録中のPC画面には4桁の数字が表示されるので、その電話でプッシュ入力します。
この時点で「サブスクリプション認証待ち」という状態になります。
しばらくするとメールがきてサブスクリプション完了となります。
これでAWSのアカウントができました!

メールアドレスとパスワードでAWSのいろんなサービスにアクセスできるようになりました。
次はさっそくサーバーを立ち上げましょう。

■秘密鍵と証明書を作成する

Amazon Web Servicesページ http://aws.amazon.com/jp/ にアクセスして、右上の「アカウント/コンソール」から「セキュリティ証明書」を選択します。


次は「I am a returning user and my password is:」をチェックしてパスワードを入れてサインアップします。



「アクセス証明書」というところで「X.509証明書」を選択し「新しい証明書を作成する」をクリック。
証明書と秘密鍵をダウンロードしておきます。



とはいえ、これはすぐには使わないんですけどね。
いずれ必要になるので先につくっておきます。

■AWS Managment Consoleにアクセス

Amazon Web Servicesページ http://aws.amazon.com/jp/ にアクセスして、右上の「アカウント/コンソール」から「AWS Management Console」を選択します。



このManagement ConsoleというのはWeb上の操作でAWSのいろんなサービスをコントロールする機能です。
サーバーを追加したり、起動や停止を行ったりするなど、AWSを使う際には起点となるページになります。
日本語化されていないのが難点ですが、Web上の情報と慣れでカバーってところでしょうか。




■Key Pair を作成する

今回はEC2(Elastic Compute Cloud)というサービスを使ってクラウド上にサーバーを作成します。
これに必要なKey Pairを作成しましょう。
Management Consoleの「EC2」をクリックします。
左側にある「Navigation」の枠でRegionを選びましょう。
アメリカとかシンガポールとかありますけど、日本のがやっぱり速くてよいです。
なので「Asia Pacific(Tokyo)」を選んでください。

その下にいろんなメニューが並んでいます。
一番下の「NETWORK&SECURITY」グループの中のKey Pairを選びましょう。
右側のエリアが「Key Pair」の画面に更新されます。

ここで「Create Key」ボタンを押してKey Pairを作成します。



名前は適当につけて「Create」するとhogehoge.pemがPCにダウンロードできます。
このpemファイルを大事にとっておきましょう。
後々必要になります。

…ここでだいたいEC2インスタンスを立ち上げる準備完了。
次は実際にインスタンスを作って起動します。

2012年1月15日日曜日

amazon web service を使って subversionサーバーをつくろう

amazon web service(略称AWS)というやつを使ってsubversionサーバーを構築してみるログです。

AWSというのはamazonが提供しているいろんなクラウドサービス群の総称みたいなもんです。
Amazon EC2とかS3とかEBSとかいろんなサービスを使って、サーバーを構築できます。
ネットワーク上に一瞬でサーバーを用意することができてちょう便利。

で、このAWSのサービス群はサインアップしてから1年くらいはいろんなものを無料で使用できるので、それを使って勉強がてらサーバーを構築してみようと思います。
ここで作成したサーバーはいずれ仕事にも使うことを前提にしています。
ここで作った仮想サーバーをコピーして使えればなあといったところです。

習得するスキルについては
・AWSサービスを扱うスキル
・Linuxサーバーを扱うスキル
・SSHなどセキュリティを扱うスキル
・subversionサーバーを扱うスキル
・WindowsからtortoiseSVN等を使ってサーバーにアクセスするスキル
…など

このログではそのときそのときの作業をまとめてみようと思います。