読者です 読者をやめる 読者になる 読者になる

bekkou68の日記

開発しているサービス, IT技術, 英語など。

パスワード入力とかの手間を省いてくれる pit を使ってみた - I Used pit Which Emits Troublesome to Input Password, and So on

Ruby RubyGems

導入 - Introduction

pit は、パスワードをエディタで一度だけ入力し、それをファイルに取っておき、次回以降はそのファイルを使って入力の手間を省いてくれる。 - pit emits troublesome to input. User inputs password only first by their editor then pit stores the password as a file and it uses the file from the next time.
例えば、Capistrano で DB 接続する際にパスワード入力が求められる。パスワードをソースコードにベタ書きはセキュリティ的にダメだ。かといって、毎回コンソールから叩くのも面倒。それを助けてくれるのが pit! - For example, you will be required when you connect to DB by Capistrano. Writing password on the source code is bad, because of security. But typing every time is troublesome. pit helps it!

インストール - Install

$ gem install pit

使い方 - Usage

pit_test.rb

require 'rubygems'
require 'pit'

ENV["EDITOR"] ||= "vim" # デフォルトのエディタ - Default editor.
config = Pit.get("db", :require => { "password" => "FILL_IN_HERE" }) # パスワード設定 - Configure password.
puts "Password: " + config["password"] # テスト出力 - Test output.

実行。 - Execution.

$ ruby pit_test.rb

すると、環境変数 EDITOR のエディタが起動する(EDITOR を設定し忘れると、動作しないので注意)。 - Now editor, which is defined as environment variable EDITOR, boots (Attention: if you forget to configure EDITOR, pit won't work).

--- 
password: FILL_IN_HERE

を、 - Change FILL_IN_HERE ...

--- 
password: hoge

のように変更して閉じる。 - to your password.

# Password: HOGE

お、ちゃんと設定されてる。二回目以降実行すると、 - Ok, it's set. From next time, ...

$ ruby pit_test.rb 
# Password: HOGE

もう二度と聞かれない! 便利! ちなみに、詳しく書かないが、コンソールでも設定できる(参考文献を参照)。 - You don't be asked again! FYI, you can use pit from console (please see the references).

プロファイル - Profile

デフォルトのプロファイルは default だ。$HOME/.pit 配下にある default.yaml に管理されている。プロファイルを複数作って本番用, テスト用とか切り替えで便利そう。プロファイルの切り替えは、 - The default profile is default. It is administrated by default.yaml which is located $HOME/.pit. Maybe it is useful: you can create several profiles and switch for release or for test. To switch profile, type ...

$ pit switch [profile]

でできる。同じように [profile].yaml が作られる。 - and [profile].yaml will be created.