ワタナベ書店

読んだ本の感想とか美味しかったお店の紹介とかLinuxの知見とか好きなことを好きなだけ書くブログです。

dotfilesと連携するMacの環境構築ブートストラップスクリプトをAnsibleで書いた。

転職とリモートワークの諸事情で、一時期、私物MacBook Airで業務をこなしていたのですが、業務ツールのインストールでMacの環境が汚れてしまい、再インストールの機運が高まった&Ansibleのお勉強も兼ねて自動構築スクリプトをAnsibleで書いてみることにしました。

インターネットに存在している環境構築スクリプトはだいたい環境構築するために必要なツールと構築内容が1つのスクリプト/レポジトリに混ぜられており流用性が低かったので分離することに。

成果物

  • Dash (環境構築するためのツールのインストール部分) github.com
  • dotfiles (構築内容を記載している部分) github.com dotfilesはよくある設定管理のレポジトリです。

使い方

Dash 単体で実行する場合

Dash単体で実行した場合、Macで環境構築するために必要なツールのみをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/senyoltw/dash/master/bin/bootstrap)"
  • インストールされるもの
    • git
    • Ansible
    • Homebrew
    • Homebrew-cask
    • Homebrew-bundle
    • mas-cli
    • Dashレポジトリを~/.dashにclone

シェルスクリプト部分、Ansible-Playbook部分ともに冪等性を意識して書いてあるので何度実行しても大丈夫。

環境構築をしたい場合は、dotfiles側に記述するようにします。

dotfilesと連携させてDashを実行する場合

dotfilesとは->ようこそdotfilesの世界へ - Qiita

dotfilesレポジトリと連携する場合はブートストラップスクリプトを叩く前に$DOTFILES_URL にレポジトリURLを代入、もしくは~/dotfiles にレポジトリをcloneすることで、Dashスクリプトが前述の環境構築ツールのインストール後に続けて環境構築をしてくれます。

# exportの代わりに git clone https://github.com/senyoltw/dotfiles ~/dotfiles でも良い

export DOTFILES_URL=https://github.com/senyoltw/dotfiles
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/senyoltw/dash/master/bin/bootstrap)"

インストールした環境をアップデートしたいとき

~/.dash/bin/update を実行してください。インストールの際に使用したplaybookを再度実行するシェルスクリプトです。
特にエイリアスなどは設定してないのでお好きなエイリアスを設定してください。
(ブートストラップスクリプトを最初から実行しても冪等性が保証されるよう書いてあるのでそっちでも良いです。が、無駄な部分もあるのでこちらをオススメ)

ということで、とりあえず環境構築を1から始めたいなという方でもこれを起点にして環境構築が作りやすい環境ができるようになっています。
まず、BrewfileだけでもdotfilesにおいておくとMacのセットアップが楽になるのでやってみると良いのではないでしょうか。

謝辞

ベースとなったレポジトリとして、IFTTT/dash というIFTTTがgithubにあげていた自動構築ツールが素となっています。

senyoltw.hatenablog.jp

dotfilesは以下の記事とgithubにある様々なdotfilesレポジトリを参考にしました。

qiita.com

f:id:iuyui:20200612185932p:plain