Sooey

2011-10-07 14:08:32 +0900

herokuコマンドで複数アカウントを使いわける

herokuコマンドで複数のHerokuアカウントを使い分けられるようにするために、Herokuの人謹製のheroku-accountsプラグインをインストールしてみた。

インストール

herokuコマンドでheroku-accountsプラグインをインストールする。

$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git
heroku-accounts installed

アカウントの追加

アカウントの追加はaccounts:addサブコマンドで行う。

$ heroku accounts:add アカウント名

アカウント名は、herokuコマンドがアカウントを識別するための名前となる。

入力するメールアドレスとパスワードは、あらかじめHerokuに登録してあるアカウントのもの。

$ heroku accounts:add personal
Enter your Heroku credentials.
Email: junyaogura@gmail.com
Password:

Add the following to your ~/.ssh/config

Host heroku.personal
  HostName heroku.com
  IdentityFile /PATH/TO/PRIVATE/KEY
  IdentitiesOnly yes

認証情報は~/.heroku/accounts/アカウント名というYAMLファイルに格納される。

また、この時に表示される設定内容を~/.ssh/configに追記する必要がある(IdentityFileの値はHerokuアカウントと関連付ける秘密鍵ファイルのパスにすること)。

現在のアカウントを確認する

$ git config heroku.account
personal

アカウントの一覧

登録したアカウントの一覧はaccountsサブコマンドで表示できる。

$ heroku accounts
* personal
corporate

アスタリスクの付いたアカウントが現在アクティブ(herokuコマンドの操作対象)なアカウント。

アカウントの削除

$ heroku accounts:remove アカウント名

デフォルトアカウントの設定

herokuコマンドがデフォルトで使用するアカウントはaccounts:defaultサブコマンドで設定する。

$ heroku accounts:default アカウント名

これを実行すると~/.gitconfigに以下のようなエントリが追加される。

[heroku]
    account = アカウント名

秘密鍵の管理

アカウントで使用する秘密鍵を登録または削除するには、以下のようにする。

$ heroku keys
No keys for john@example.com

$ heroku keys:add ~/.ssh/john.pub
Uploading ssh public key /Users/juno/.ssh/john.pub

$ heroku keys
=== 1 key for john@example.com
ssh-rsa AAAAB3NzaC...yPq3uBNuvj john@example.com

$ heroku keys:remove
Key  removed.

プロジェクト毎にアカウントを設定する

各プロジェクト毎に利用するHerokuアカウントを設定するには、プロジェクトのディレクトリでaccounts:setサブコマンドを実行する。

$ heroku accounts:set アカウント名

これによって、プロジェクトの.git/configに以下のエントリが追加される。

[heroku]
        account = アカウント名