k2wankoの技術的なanything

プログラミングとか技術系の情報とか書いてます。

AnsibleでMacの環境を整えたついでによく使うツールの紹介

気づけばゴールデンウィーク前です。

本を買ったのでゴールデンウィーク中にSwiftの勉強をしてiPhoneアプリを作れるようになろうかなと画策中です。

さて最近MacBookProを新調しましたので環境構築をAnsibleでやります。

なぜAnsibleでやるのかというとYAMLで簡単に記述でき いろいろ細かいことができるからです。

環境

OS: Mac OS X 10.10.3 Shell: zsh

GitHubemacs.dとかzshのコンフィグを置いている。

github.com

github.com

GitHubにコンフィグ置くときはパスワードとかAccessTokenとかを公開してしまわないように注意してください。

ざっくりAnsibleのインストールと使い方

github.com

AnsibleはPlaybookというYAMLで記述されたコンフィグを元に環境構築をしてくれます。 Roleとかいろいろ用語があるのですが 今度きちんと勉強した時に詳しく書ければ書きます。

インストールはHomeBrewでやります。

# Install HomeBrew
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

# Install python and ansible
$ brew install python
$ brew install ansible

ちなみにこのコマンドはシェルスクリプトにまとめておくと楽です。

実行は以下のコマンドで

$ ansible-playbook development.yml -i hosts

ちなみにdevelopment.ymlって書いてますがよく使われる名前はsite.ymlだそうです。 別に決まりがある感じはしなかったので参考サイトを真似させてもらいました。

HomeBrew caskについて

HomeBrew caskはHomeBrewのプラグインです。

Google ChromeGoogle 日本語入力、iTermやAndroid Studioなどはここからインストールができます。

Macを買ったらSafariを開いてChromeをダウンロードしてきていたのですが

caskを使えばターミナルだけでインストールできてしまいます。

Playbookに含まれているパッケージについて

僕が環境構築に作ったPlaybookに含まれている中から 適当にざっくり説明していきます。

iterm2

標準のターミナルよりも高機能だったり 画面分割できたり細かくカスタマイズがいろいろできるので便利です。

zsh

シェルプログラムです。

コマンドの補完機能が優れているのでオススメです。

oh-my-zshを合わせることでCUIを綺麗にしたり様々な補完機能を簡単に設定できるので一緒に入れておくと便利です。

hub

GitHubCUIクライアントです。

aliasでgitにhubを指定させることでgitを拡張する感じで使うことができます。

forkやpull-request、CI statusの確認をコマンドラインからできます。

よく使うのはbrowseでリポジトリのページをブラウザでさっと開けるので便利です。

tig

CUI内でグラフィカルにGitのログを確認できるツールです。

慣れてしまうとtig以外ではログを見返すのが辛くなります。

tigの設定方法は以下の記事を参考にするといいと思います。

qiita.com

rbenv

Rubyのバージョンマネージャーです。

バージョンの切り替えが楽なのでオススメです。

nodebrew

Node.jsのバージョンマネージャーです。

io.jsも使えるしバイナリーをダウンロードして設置できるのでインストールも早いです。

dockerファミリー(docker-machine, docker-compose)

dockerを使うことでクリーンなコンテナ環境で開発ができます。

docker-machineでDockerのホストを作って

docker-composeでコンテナ間の連携とか記述します。

virtualboxを入れていれば以下のコマンドでboot2dockerがすぐに入るのでオススメです。

$ docker-machine create -d virtualbox dev

httpie

RESTなどのコマンドラインツールです。

curlに比べ 簡素な記述方法とレスポンスの色付けをしてくれるので

API Serverの開発の時にとても便利です。

jq

JSONの解析をしてくれるCUIツールです。

curlなどからパイプで渡せば簡単にJSONを解析できます。

emacs

ショートカットでサクサク書けるエディターです。

漢のプログラミング言語Lispを使ってカスタマイズができます。

マスターするとプログラム仙人になれるとかなれないとか...

vimはよく知りません。

atom

GitHub製のEditorです。

Chromeベースで最近使い始めたのですがMarkdownを見ながら書くのに使っています。

まとめ

GitHubemacszshのコンフィグを置いておくことで無くす可能性も低くなりますし

Ansibleを使えばMacが増えてもすぐに環境構築ができるようになりました。

サーバーだけじゃなくクライアントもコード化しとくと便利ですね。

Ansibleの参考

HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp

AnsibleでHomebrew, Cask, Atomエディターのパッケージを管理する - Qiita