kidoOooOoooOOom

IT系で開発やってます

tmuxとtmuxinatorで開発環境別のコンソール環境整備

dev環境で作業やログ調査をする際に、webサーバをsshで開いてlogをtailして dbサーバをsshで開いてlogをtailしてmanagerサーバを(略)するのが面倒なので、tmuxとtmuxinatorを使ってコマンド一発でこの環境が開くようにする。

  • tmuxのインストール
$ brew install tmux
  • tmuxinatorのインストール
$ gem install tmuxinator
$ echo ' [[ -s $HOME/.tmuxinator/scripts/tmuxinator ]] && source $HOME/.tmuxinator/scripts/tmuxinator ' >> ${HOME}/.bashrc
$ source ${HOME}/.bashrc

$ echo 'export EDITOR=/usr/bin/vim' >> ${HOME}/.bashrc
$ echo 'export SHELL=/bin/bash' >> ${HOME}/.bashrc
$ source ${HOME}/.bashrc

// 動作確認
$ mux doctor


tmuxinatorのプロジェクトを作成する

mux new hogehoge

実行すると $EDITOR に設定したエディタで ~/.tmuxinator ディレクトリ以下に作成された yml ファイルが開くので、下記のような設定をした。

# ~/.tmuxinator/hoge.yml

name: hoge
root: ~/

windows:
  - web:
      layout: main-vertical
      panes:
        - ssh $SSH_USERNAME@hogeweb
        - ssh $SSH_USERNAME@hogeweb -t tailf /var/log/error.log
        - ssh $SSH_USERNAME@hogeweb -t tailf /var/log/api.log
  - db:
      layout: main-vertical
      panes:
        - ssh $SSH_USERNAME@hogedb
        - ssh $SSH_USERNAME@hogedb -t mongo
  - redis:
      layout: main-vertical
      panes:
        - ssh $SSH_USERNAME@hogeredis

layoutなどは適当なので、今後調節していく。
このconfファイルを社内のリポジトリに登録しておけば、チーム内でコンソール環境を共有できて良さげ。


ターミナルマルチプレクサ tmux 入門

ターミナルマルチプレクサ tmux 入門