ShellScript
Linux

github Publicリポジトリにあるスクリプトを実行し、Macの環境構築を自動化する

はじめに

Macを買い替える度に行う環境構築を自動化しました。

本来であれば、Ansibleを使う方が良いかと思うのですが、以下の点を考えシェルスクリプトで行うことにしました。

  • コマンドラインが苦手な人でも大丈夫な親切仕様
  • 出来るだけ手を動かさないで完結する

この点を考慮し、Ansibleをインストールすることも手間であるということで、bash scriptで動作させることにしました。

注意書き

まっさらなMacを対象としています

実行環境

  • Mac OS X 10.14
  • Github Publicリポジトリ

GithubのPublicリポジトリで行うのは、curlでshを実行する際にrawデータを読みやすかったので、publicで行うことにしました。

curlでshellscriptを実行

Screen Shot 2018-11-08 at 18.04.47.png

curlで指定するURLは、「RAW」「BLAME」「History」と並んでいるリンクの「RAW」をクリックし、開いてください。
そのページのURLを以下で指定します。

$ curl -sf https://raw.githubusercontent.com/ken-sayama/curl-sh/master/echo.sh | sh -s

上記を実行すると、hogeという文字列が帰ってくるかと思います。

環境構築用のシェルスクリプトを書く

CLIツールとGUIツールをインストールします。
ついでにRubyistのために、rbenvの設定はおまけで書いておきます。

#!/bin/bash

# install homebrew
eval '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"'

# homebrew install cli
CLIBREWS=(
git
rbenv
ruby-build
)

for CLIBREW in ${CLIBREWS[@]};
do
  brew install $CLIBREW -y
done

# homebrew cask install gui
GUIBREWS=(
iterm2
google-chrome
sequel-pro
alfred
)

for GUIBREW in ${GUIBREWS[@]};
do
  brew cask install $GUIBREW
done

# rbenv install latest
echo 'export PATH="$HOME/.rbenv/bin:$PATH"\nif which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
eval "source ~/.bash_profile"

LATEST_RUBY=$(rbenv install -l | grep -v - | tail -1)
eval "rbenv install $LATEST_RUBY"
eval "rbenv global $LATEST_RUBY && rbenv rehash"

以下で上記を実行することが出来ます。

$ curl -sf https://raw.githubusercontent.com/ken-sayama/curl-sh/master/install.sh | sh -s

おまけ

例えば、shellscriptで実行させたい工程のうち、変数を使用したい部分があった場合、以下のようにすると実現が可能です。

var.shファイルを作成
https://github.com/ken-sayama/curl-sh/blob/master/var.sh

#!/bin/bash

echo $1

上記が書かれたファイルを用意します。

$ curl -sf https://raw.githubusercontent.com/ken-sayama/curl-sh/master/var.sh | sh -s '変数の値'

とすると、var.sh$1部分に変数の値が展開されます。
この機能を利用して、環境変数のように扱うことで柔軟な環境構築に対応出来るかと思います。