Percolで便利にEC2に接続するやつ

勉強会で教わった便利アイテムを導入した際のメモ。

percol

https://github.com/mooz/percol
ざっくり言うと動的に絞込ができる便利なやつ。
pipでインストールした。

% pip install percol

$ percol
                                    __
        ____  ___  ______________  / /
       / __ \/ _ \/ ___/ ___/ __ \/ /
      / /_/ /  __/ /  / /__/ /_/ / /
     / .___/\___/_/   \___/\____/_/
    /_/
                                 0.0.7 

You did not give any inputs to percol. Check following typical usages and try again.

かっこいい画面が出てインストール完了。
たとえば、lsして出てきた任意のディレクトリを絞り込んで、選択したやつをxargsで更にlsする

% ls | percol | xargs ls

みたいなのができる。
pythonでできているらしく、「.pecol.d/rc.py」というファイル作って、そこにファンクションを作っておけるらしい。
このへんは未検証。

C/Migemo

なんて読むんだろう。しーみげも?
http://www.kaoriya.net/software/cmigemo/
ざっくり言うとローマ字入力から日本語を検索できるようになる。
pythonのバインディングであるpymigemoも追加する。
http://www.atzm.org/etc/pymigemo.html

% brew install cmigemo
% curl -O http://www.atzm.org/etc/files/pymigemo/pymigemo-0.4.tar.gz
% pip install pymigemo-0.4.tar.gz

AWS-CLI

入れてなかったもんだから。入れる。

% wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
% unzip awscli-bundle.zip
% awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws 

無事に入ったかを確認する。

% aws --version
% aws-cli/1.3.20 Python/2.7.5 Darwin/13.2.0

入ったのでconfファイルを作成する。
事前に適切な権限を持ったUserを作成して、Access keyとSecret keyを取得しておいた。
この.aws/conf内には複数の設定が記載できる。

[default]
region = ap-northeast-1
aws_access_key_id = hogehoge
aws_secret_access_key = hogehoge

[profile moge]
region = ap-northeast-1
aws_access_key_id = hogehoge
aws_secret_access_key = hogehoge  

profileを指定することで切り替えもできる。

% ec2list --profile moge

書き終わったら.zshrcに環境変数を追加(ずっとbashだったけどzshづいてる最近)

export AWS_CONFIG_FILE=~/.aws/conf

今動いてるインスタンスたちを取得してみてJSONぽいのが返ってくれば動いている。

% aws ec2 describe-instances

{
    "Reservations": [
        {
            "OwnerId": "xxxxx", 
            "ReservationId": "r-xxxxx", 
            "Groups": [], 
            "Instances": [
                {.....
(以下略)

ec2list

gemでインストールできる。

% gem install ec2list

無事に入ったっぽいんだけどrbenvを入れていると色々複雑らしく

zsh: command not found: ec2list

と言われるので、google先生に聞いて調べたrailtiesを入れてrehashしてみる。

% gem install railties && rbenv rehash

その後再びec2listのコマンドをたたく

% ec2list

hoge  xxx.xx.xx.xxx  zz.zzzz.zz.zz

ec2listで表示したインスタンスにsshで接続してみる

% ec2list | percol | cut -f 3 | xargs -o -n 1 ssh -i ~/.ssh/hoge.pem -l root

無事に接続できたので便利。