SRE エンジニアのためのツール入門

素晴らしいツールは素晴らしい仕事を作る


Posted on Sun, Jul 28, 2019
Tags sre, tmux, spectacle

SRE エンジニアのためのツール入門

SRE では開発と運用を両方行うことが望ましいですが、現実ではやはり運用作業がまだまだ多いです。

生産性を高めるツール のスライドでも共有したとおり、生産性というのは、(成果物 / かけた時間) です。 運用でいうと、成果物はいかに早く調査や申請、設定、確認を実施できたかが生産性に直結します。

もちろん、そもそも自動化してしまうことが一番良いのですが、非定型作業は往々にして自動化が難しく、またコストに見合わないことが多いです

このとき、優れたツールの使い方をマスターするだけで、生産性を向上することができ、その結果、早く仕事を終えることができます。

この記事のツールのインストールを簡単にするためのレポジトリ:go-zen-chu/simple-dotfiles: simple dotfiles for primer

考え方:マウスを極力使わない、キーボードやコマンドを駆使する

まず SRE で生産性を向上させるためには、マウスポインタでクリックする作業を疑いましょう。

マウスポインタでクリックするのは、

  1. 集中力を要する
  2. 自動化しづらい

という問題があります。そこで、キーボードで様々な操作が行えるツールをインストールします。

この記事では難易度順にどのようなツールをインストールして、役立てるかを列挙します。

【初級】Chrome

言わずとしれたウェブブラウザですが、キーボード操作でかなり簡単にいろいろなことが実施できます。

ブラウザ操作について、意外と多くのことをキーボードだけで行えるということを知らない人が多いです。

キーボードショートカット (MacOS)

まず普段おこなう作業をショートカットで実施するようにしましょう。

  • リンクを新しいタブで開く: cmd + リンククリック
  • リンクを新しいタブで開き、フォーカス: cmd + shift + リンククリック
  • ページのアップ/ダウン: space / shift + space
  • 閉じてしまったタブを戻す: cmd + shift + t
  • タブを左 / 右 に移動: cmd + { / cmd + }
  • タブの左から x 番目に移動: cmd + 1, 2, .. 8
  • タブの右端に移動: cmd + 9
  • 検索バーへ移動: cmd + l
  • ページを戻る / 進む: cmd + [ / cmd + ]
  • ページ内検索してからの、引っかかった単語へ移動: cmd + f → cmd + g

以上はピックアップしたショートカットですが、Chrome のキーボード ショートカット - Google Chrome ヘルプ に記載されています。

ブラウザ履歴

意外と利用されていないのですが、chrome の履歴検索はかなり強力です。 ブラウザバーに入力したり、あるいは mac だと cmd + y ですぐに飛ぶことが出来るのでぜひ活用しましょう。

カスタム検索

ウェブページでの検索について、逐一ページに飛んで検索バーへ入力してませんか?

Chrome のカスタム検索から簡単に検索できるように変更が可能です。

File Viewer

Chrome を file viewer として使うことができます。

例えば、 file:///Users/your_account にアクセスします。ディレクトリを移動し、よくアクセスするファイルについて、お気に入りに登録しておくと、すぐにそのファイルを確認することが可能です。

【初級】Chrome plugin

Chrome には様々なプラグインが無料で提供されており、それを使うことで生産性に役立てることができます。

Vimium plugin

Vimium - Chrome Web Store はブラウザでのリンククリックなどをキーボードで実行できるプラグインです。

vim の binding でブラウザ操作が行えるので、ぜひ使いこなしましょう。

  • 今のページを新しいウィンドウで開く: W (後述の spectacle と組み合わせると便利)
  • 過去の検索履歴やブックマークからページを開く: o (chrome の omnibar よりも表示件数が多く便利)

Create Link - Chrome Web Store はリンクの作成を markdown や html 用に生成できるプラグインです。

これはマウス操作が基本的に必要(キーボードショートカットあり)ですが、リンクのコピペはかなり実施するのでおすすめです。

source graph plugin

github でのソースコードで、関数の定義ジャンプ、関数が利用されている他のファイルを検索する、というようなことが行えるツールです。

最近は GitHub 自体にも関数の定義ジャンプが beta 機能で入ったりしたため、今後の動向が気になりますが、コードリーディングではめちゃくちゃ便利です。

【初級】Mac defaults でデフォルト設定

Mac のポップアップをマウスで行っていませんか? 実はこれ、tab でフォーカスを移動して、space で決定を押すことができます。

# tabなどでMacのボタンのフォーカスを変えられるフルコントロールを設定
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

またプログラミング時には邪魔になりやすいスペルの訂正も下記で無効にできます。

# スペルの訂正を無効にする
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false

defaults の他の設定については、MacOS defaults コマンドをマスターする – Think Abstract に記載しています。

【初級】Spectacle (MacOS)

Spectacle は、ウィンドウサイズをキーボードショートカットで調整するツールです。

ウィンドウサイズの調整はマウスポインタで実施するのがデフォルトですが、ブラウザを見ながら設定を書くなどのときに、マウスでウィンドウサイズを調整していたら大変です。

インストール方法は下記の通り。

brew cask install spectacle

デフォルトのショートカットは下記のようなものがあります。これにより、ターミナルやブラウザを全画面ではなく、最大化で動かし切り替えるということが簡単になります。

eczarny/spectacle: shortcut にもあるとおり、

  • 画面を左半分へ移動: option + cmd + ←
  • 画面を右半分へ移動: option + cmd + →
  • 画面を上半分へ移動: option + cmd + ↑
  • 画面を下半分へ移動: option + cmd + ↓
  • ウィンドウを最大化: option + cmd + f

設定を見ながらターミナルで作業するなど複数ウィンドウ見て作業したい場合に重宝します。

備考:ライセンス MIT spectacle/LICENSE.md

【初級】Alfred (MacOS)

Mac では有名なアプリケーションロンチャー。

Spotlight もありますが、web 検索のカスタマイズ、workflow、様々なアプリケーションでの検索などできることが多く、非常に便利です。

spell コマンドで単語のスペルチェックも実施できたりします。

Alfred - Productivity App for macOS

ウェブカスタム検索

chrome でも設定できる機能ですが、例えば、英和辞書を en というコマンドで登録しておき、「en fragile」と打つと検索が行えるという感じです。

workflow

workflow をインストールすることで、onepassword 連携や、サードパーティによる Bear 連携など Mac にインストールしているアプリケーションとの連携も可能です。

【中級】zsh

有名なオープンソースの shell です。MacOS Catalina からはライセンスの都合で、zsh がデフォルトになります。

zsh は bash の設定やスクリプトを大体理解することができ、さらに antigen, zplugin などのパッケージマネージャーを利用することで、様々な便利なシェル体験が行なえます。

おすすめプラグイン

特に zsh を使い始めたときに便利なプラグインを記載します。

zsh-completions

zsh で様々なコマンドの補完をおこなってくれるプラグイン。

zsh-users/zsh-completions: Additional completion definitions for Zsh.

zsh-autosuggestions

過去のコマンドを自動的に補完してくれるプラグイン。インストールした人が感動する。

zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh

コマンド履歴の検索で部分文字列で検索できるプラグイン。

zsh-users/zsh-history-substring-search: 🐠 ZSH port of Fish history search (up arrow)

zsh-syntax-highlighting

有効なコマンドについては色付けを行ってくれるプラグイン。コマンドをタイポしていないかすぐに気づくことができる。

zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh.

【中級】tmux

ライセンス:ISC tmux/COPYING

tmux は言わずとしれたターミナルマルチプレクサです。ポイントは、「ターミナルの作業を残すことができる」ことです。

よくあるのが、

  • vim で編集していたが、ターミナルを消してしまった
  • ssh で画面を開いていたが、ターミナルを消してしまった

そのたびにまた開き直して、編集するというのは時間がかかります。また、pane の最大化や分割がショートカットで行えるため、ターミナルでの作業が非常にはかどります。

tmuxを必要最低限で入門して使う - Qiita にて詳しい説明があるため、ここでは DRY します。

tpm でプラグインをインストールする

tmux-plugins/tpm: Tmux Plugin Manager をインストールすることで、tmux での様々なプラグインを利用することができます。

注意点として、zplugin などと異なり、plugin のインストールは prefix + I を行う必要があります。自動ではないので注意しましょう

おすすめのプラグインを下記に列挙します。

tmux-resurrect, tmux-continuum

tmux のセッション情報はターミナルを落としても残り続けますが、PC の電源を消すと tmux プロセスがシャットダウンするため、消えてしまいます。

そこで、tmux-resurrect, tmux-continuum プラグインをインストールすることで再起動後、以前利用していたセッションを復旧することが可能です。

tmux-plugins/tmux-resurrect: Persists tmux environment across system restarts.

tmux-prefix-highlight

tmux の prefix が押下状態なのかどうか見れるプラグインです。地味ですが、あるだけでだいぶ操作がしやすいです。

tmux-plugins/tmux-prefix-highlight: Plugin that highlights when you press tmux prefix key