Glide Note

glidenote's blog

UT-VPNを導入(クライアント側設定編)

前回のサーバ編に続いて、今回はクライアント側の設定

クライアント側にもUT-VPNを導入

クライアント全台で同じ作業が必要です。 サーバ側と同じ手順なので省略。 導入が終わったらサービスを起動。

1
utvpnclient start

UT-VPNクライアントの設定

VPN Clientの設定なので2を選んで、接続先のホスト名または IP アドレスの部分は空のままEnter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
utvpncmd

utvpncmd コマンド - SoftEther UT-VPN コマンドライン管理ユーティリティ
SoftEther UT-VPN コマンドライン管理ユーティリティ (utvpncmd コマンド)
Version 1.01 Build 7101   (Japanese)
Compiled 2010/06/27 18:40:28 by yagi at pc25
Copyright (C) 2004-2010 SoftEther Corporation.
Copyright (C) 2004-2010 University of Tsukuba, Japan.
Copyright (C) 2003-2010 Daiyuu Nobori.
All Rights Reserved.

utvpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
なお、このコマンドでは SoftEther UT-VPN Client を管理できますが、PacketiX VPN Client は管理できませんのでご注意ください。
接続先のホスト名または IP アドレス:

VPN Client "localhost" に接続しました。

UP-VPNサーバへの接続設定

接続設定は下記のようにします。接続ユーザはServer側で作成したユーザです。

  • 接続UT-VPNサーバ: vpn001.hogemoge.com
  • 利用ポート: 5555
  • 接続仮想HUB: DEFAULT
  • 接続ユーザ: glidenote
  • 仮想NIC名: utvpn_vpn
  • 接続設定名: vpn001

AccountCreateで接続設定を作成。

1
2
3
VPN Client>AccountCreate vpn001 /SERVER:vpn001.hogemoge.com:5555 /HUB:DEFAULT /USERNAME:glidenote /NICNAME:utvpn_vpn
AccountCreate コマンド - 新しい接続設定の作成
コマンドは正常に終了しました。

AccountPasswordSetでパスワードの設定。このバスワードはServer側でユーザ作成した際に設定したものです。

1
2
3
4
5
6
7
8
9
10
11
VPN Client>AccountPasswordSet vpn001
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定
パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

パスワード: ********
確認入力  : ********


standard または radius の指定: standard

コマンドは正常に終了しました。

AccountConnectでUT-VPNサーバへの接続

1
2
3
VPN Client>AccountConnect vpn001
AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始
コマンドは正常に終了しました。

AccountStartupSetでUT-VPN Client起動時に自動で接続するように設定

1
2
3
VPN Client>AccountStartupSet vpn001
AccountStartupSet コマンド - 接続設定をスタートアップ接続に設定
コマンドは正常に終了しました。

接続状態の確認

1
2
3
4
5
6
7
8
9
10
VPN Client>AccountList
AccountList コマンド - 接続設定一覧の取得
項目               |値
-------------------+-------------------------------------------
接続設定名         |vpn001
状態               |オフライン
接続先 VPN サーバー|vpn001.hogemoge.com:5555 (直接 TCP/IP 接続)
仮想 HUB 名        |DEFAULT
仮想 LAN カード名  |VPN
コマンドは正常に終了しました。

Ctrl+Dで設定画面を抜けます。

仮想NICに固定IPを割り当て

UT-VPNの設定が終わったら、仮想NICが出来ているので、IPを割り当てます。 仮想NICのIPはクライアントサーバごとに設定します。

サーバA(192.168.100.60)の設定

1
ifconfig utvpn_vpn 192.168.100.60 netmask 255.255.255.0

サーバB(192.168.100.70)の設定

1
ifconfig utvpn_vpn 192.168.100.70 netmask 255.255.255.0

設定が終わったらサーバAからサーバBにpingが通るか疎通確認。

起動スクリプトの用意

私は下記のようなスクリプト/etc/rc.d/init.d/utvpnclientを用意しています。

上記スクリプトに/root/bin/add_route.shというのを実行させて、固定IPを設定(192.168.100.60サーバの例)

これで、UT-VPNクライアント同士が通信できるようになりました。

2012年のプレゼンはgithub pages+markdown2impressで決まり!!

今度MySQL Casual Talks Vol.3 : ATNDでLTをさせて頂くので そろそろ資料作りをしないとなーと思っていて、プレゼン作成で良い方法があったのでメモ。

プレゼン作成に使用する環境

拙作のhub-zsh-completionは無くても 作業は出来ますが、hubコマンドが補完されるので導入しておくと便利です。 markdown2impresshub-zsh-completionの導入方法は以前紹介しているので そちらを参照してください。

作業用ディレクトリの作成

1
2
mkdir -p ~/work/slide-test
cd ~/work/slide-test

プレゼン資料の下書き作成

markdown2impressを利用するので、プレゼン資料の下書きをmarkdownで記載。 ここではslide.markdownとでもします。vimやら好きなエディタで作成してください。

1
vim ~/work/slide-test/slide.markdown

markdown2impressで下書きからindex.htmlの作成

1
~/bin/markdown2impress.pl ~/work/slide-test/slide.markdown

この状態で該当ディレクトリは下記のようなファイル構成になっています。

1
2
3
4
5
[akira@MacBookAir] $ ls -1 ~/work/slide-test
css
index.html
js
slide.markdown

hubコマンドでgithubにリポジトリを作成

githubでブラウザからリポジトリを作成してもいいんですが、 せっかくhubという便利なコマンドがあるので、 hubコマンドを用いて、リポジトリを作成します。

1
2
3
cd ~/work/slide-test/
git init
hub create

hub-zsh-completionを導入しているとhub createではなく、git createでも リポジトリの作成が出来ます。

プレゼンページの作成

github pagesを作成するにはgh-pagesというブランチを切ってpushするだけです。

1
2
3
4
5
cd ~/work/slide-test/
git add .
git commit -a -m "first commt"
git branch gh-pages
git push origin gh-pages

gh-pagesというブランチを作成してpushするとhttp://glidenote.github.com/slide-test という形でgithub pagesが作成されます。

下記にテスト用でスライドを上げてます。 (Octopress用に、CNAMEをあてているので、https://blog.glidenote.com/slide-test/ になっていますが)

プレゼンページの編集、更新方法

gh-pagesというブランチで下書きのmarkdownを編集、commit、pushでスライドは更新されます。 gh-pagesはキャッシュが利いているようで、pushしても即反映はされない場合があるので5分程度待ちましょう。

編集、更新作業の流れて気には下記のような感じです

1
2
3
4
5
git checkout gh-pages
vim ~/work/slide-test/slide.markdown
~/bin/markdown2impress.pl ~/work/slide-test/slide.markdown
git commit -a
git push origin gh-pages

スライドごとにリポジトリを作成するのは無駄なので、slidesとかでリポジトリを作成し、 その下に2012/hogeとかディレクトリを切って、管理していくと良いかと思います。

好きなエディタで資料作成出来るし、表示確認以外はコマンドラインで作業が完結するのでいろいろと捗ります。

さくらVPS 2G+Subsonic+Nginxで自分用ストリーミングサーバを構築

先日契約したさくらVPS 2Gのディスク容量がかなりあるので、自分用のストリーミングサーバを subsonicnginxで立ててみました。 subsonic単体でも良いんですが、同僚の天才@hiboma以前Mac+subsonic+nginxを組み合わせてたのを思い出してパクってみました。

導入環境はCentOS 6です。 あらかじめAレコードなどは設定している状態です。 またsubsonicのGUIでのセットアップ手順の説明などは省いてます。

javaのSDKのインストール

1
sudo yum install java-1.6.0-openjdk

subsonicのインストール

Subsonic » Free Music Streamer、からRPMを持ってくる。

1
2
3
4
5
mkdir ~/tmp
cd ~/tmp
wget http://downloads.sourceforge.net/project/subsonic/subsonic/4.6/subsonic-4.6.rpm
sudo rpm -ivh subsonic-4.6.rpm --test
sudo rpm -ivh subsonic-4.6.rpm

自動エンコーディング機能を利用するために必要ライブラリを導入

1
sudo yum -y install lame flac faad2 vorbis-tools ffmpeg

音楽ファイル用のディレクトリを用意。

1
2
3
4
sudo mkdir /var/music
sudo mkdir /var/playlists
sudo chmod 777 /var/music
sudo chmod 777 /var/playlists

ローカルPCからVPS上の/var/music/にrsyncでもかけて、音楽ファイルを配置。

nginxのインストール

1
sudo yum -y nginx

/etc/nginx/nginx.conf

nginxが80番で待ち受けて、subsonicの4040番に渡しています。 server_nameの部分はAレコードをあてている自分のドメインに書き換えてください。

subsonicとnginxの起動

1
2
sudo service subsonic start
sudo service nginx start

nginx.confで設定したhttp://foobar.com/にアクセス

おー、動いた。

参考URL

Octopressの記事管理用プラグイン、Octoeditor.vimを作った

memolist.vimが非常に使いやすくなり、 もともと利用していたカスタムしたjekyll.vimよりも 使いやすいのでmemolist.vimの機能を実装したOctopressの記事管理用 のvimプラグインを作成しました。Octopress-editorを略してOctoeditor[オクトエディタ]と読みます。

Octoeditor.vimの概要

  • 新規記事の作成。rake new_post[title]の実行(:OctopressNew)
  • 記事の管理。(:OctopressList)
  • 記事のGrep検索。(:OctopressGrep)
  • プレビューの生成。rake generateの実行(:OctopressGenerate)
  • 記事の投稿。rake gen_deployの実行(:OctopressDeploy)

Octopressでブログを更新する際に必要な機能を一通り実装しました。 プレビュー確認のrake previewはvimとは別で起動していないと いけないので、Octoeditorの機能としては省いています。

導入方法

導入にはvundleか、NeoBundle を利用すると楽です。

vundleの場合は、

1
Bundle 'glidenote/octoeditor.vim'

NeoBundleの場合は、

1
NeoBundle 'glidenote/octoeditor.vim'

を.vimrcに記載。

.vimrcの設定

octoeditor.vimを利用するには、.vimrcにOctopressのディレクトリのパスを 下記のように設定します。

1
let g:octopress_path = '~/octopress'

私はその他に下記マッピングを記載して利用しています。 \onと入力すると瞬時に新規ファイルの作成が出来、,ogと入力して 記事の確認をしています。 <Leader>はデフォルトだとキーボードの¥マークになっていると思います。

1
2
3
4
5
map <Leader>on  :OctopressNew<CR>
map <Leader>ol  :OctopressList<CR>
map <Leader>og  :OctopressGrep<CR>
nmap ,og  :OctopressGenerate<CR>
nmap ,od  :OctopressDeploy<CR>

その他に下記のようなオプションがあります。qfixgrepやvimfilerとの連携も出来ます。

1
2
3
4
5
6
7
8
9
10
11
let g:octopress_post_suffix = "markdown"
let g:octopress_post_date = "%Y-%m-%d %H:%M"
let g:octopress_post_date = "epoch"
let g:octopress_post_date = "%D %T"
let g:octopress_published = 0
let g:octopress_comments = 0
let g:octopress_prompt_tags = 1
let g:octopress_prompt_categories = 1
let g:octopress_qfixgrep = 1
let g:octopress_vimfiler = 1
let g:octopress_template_dir_path = "path/to/dir"

使い方

新規記事の作成(:OctopressNew)

1
:OctopressNew

Octopress用のフォーマットで記事が作成されます。

Octopressの仕様で日本語を含むファイル名が利用できないので、 [Post title]の部分ではアルファベットで入力し、 記事編集でタイトルを日本語に変更してください。

記事の管理(:OctopressList)

1
:OctopressList

デフォルトのnetrwを利用した場合

vimfiler連携を利用した場合

記事のGrep検索(:OctopressGrep)

1
:OctopressGrep

qfixgrep連携を利用した場合

プレビューの生成 rake generate(:OctopressGenerate)

1
:OctopressGenerate

vim上からrake generateを実行します。 rake previewを別途ターミナル上から実行しておけば、 プレビューを確認できます。

記事の投稿 rake gen_deploy(:OctopressDeploy)

1
:OctopressDeploy

vim上からrake gen_deployを実行し、記事を投稿できます。

Octopressの記事更新の流れ

  • :OctopressNewで新規記事を作成
  • :OctopressGenerateでプレビュー確認
  • :OctopressDeployで記事の投稿

私は下記のように設定をして、FuzzyFinderctrlp.vimなどと連携をして利用しています。

FuzzyFinerを利用したファイル検索

ctrlpを利用したファイル検索

バグや要望などありましたら@glidenoteかgithubのissueに連絡頂ければと思います。

blogを書く作業が、vim上で完結するようになり快適です。

OAuth2認証に対応して新しくなったGist.vimを導入した

OAuth2認証に対応したGist.vimがリリースされたので、早速導入してみました。

Gist.vimの導入

今回のリリースからwebapi-vimが必要になったので、 Vundleで一緒に導入。 .vimrcに下記を追記して:BundleInstall!

1
2
Bundle 'mattn/gist-vim'
Bundle 'mattn/webapi-vim'

OAuthアプリの登録

Register a new OAuth applicationでGist.vimを登録します。

  • Application Name: Gist.vim
  • Main URL: https://github.com/mattn/gist-vim
  • Callback URL: http://mattn.github.com/gist-vim

下記のようにClient IDSecretが生成されます。

Gist.vimの初期設定

vimを起動し:Gist -lを実行し、初期設定を行います。oauth2を利用するので2を選択し、 先ほど生成したClient IDSecretを入力。

ここでおそらくCallback URLが開かれるはずなんですが、私の環境の問題なのか g:gist_browser_commandを設定しても、ブラウザにURLが渡されず、

1
It seems that you don't have general web browser. Open URL below.

と表示され、URLも表示されずPINの取得が出来なかったので、ソースを確認。
下記のようにpostしていたので、ブラウザのアドレスバーに手動で入力。 xxxxxxxxxxxxxxxxxxxxは自分のClient IDです。

1
https://github.com/login/oauth/authorize?scope=gist&client_id=xxxxxxxxxxxxxxxxxxxx

上記URLにアクセスすると承認画面が出るのでAllowを選択

下記のようにPINが表示されるのでコピーして、vim上のGist.vimの初期設定に戻り入力

Gist.vimの動作確認

:Gistでpost出来るようになりました。

~/.gist-vimのパーミッションを600に変更

初期設定が終わったら、~/.gist-vimを適切なパーミッションに。

1
chmod 600 ~/.gist-vim

これでまた快適生活が送れるようになります。