2011年からお世話になっているmacbookproのHDDがお亡くなりになったので、SSDに換装した。
でも今までの開発環境が微妙だったので、クリーンインストール後、タイムマシンからのバックアップ復元をせず、新規に構築していこうと思った。
でも。。。。新しく構築するのめんどくさいなぁ。。。。ということで、せっかく他の人もやってるようなので、chefではなくansible使って環境設定していこうって思ってやってみた。
homebrewの導入
yosemite
xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
anbileの導入
yosemite
brew install python
brew install ansible
環境構築
yosemite
mkdir initialSetup
cd initialSetup
vi hosts.list
vi setup.yml
自分しか使わないので、
hosts.list
localhost
setup.yml
- hosts: localhost
connection: local
gather_facts: no
sudo: no
vars:
homebrew_taps:
- caskroom/cask
homebrew_packages:
- { name: python }
- { name: ansible }
- { name: git }
- { name: wget }
- { name: curl }
- { name: tree }
- { name: nkf }
- { name: go }
- { name: ruby-build }
homebrew_cask_packages:
- { name: cocoapods }
- { name: firefox }
- { name: google-chrome }
- { name: adobe-reader }
- { name: sourcetree }
- { name: atom }
- { name: intellij-idea }
- { name: vagrant }
tasks:
- name: リポジトリを追加
homebrew_tap: tap={{ item }} state=present
with_items: homebrew_taps
- name: homebrew をアップデート
homebrew: update_homebrew=yes
# brew
- name: パッケージをインストール
homebrew: >
name={{ item.name }}
state={{ item.state | default('latest') }}
install_options={{
item.install_options | default() | join(',')
if item.install_options is not string
else item.install_options
}}
with_items: homebrew_packages
register: brew_result
- name: パッケージの情報保存先ディレクトリを作成
file: path=brew_info state=directory
- name: パッケージの情報を保存
shell: brew info {{ item }} > brew_info/{{ item }}
with_items: brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list
# cask
- name: homebrew-cask のインストール
homebrew: name=brew-cask state=latest
- name: cask パッケージをインストール
homebrew_cask: name={{ item.name }} state={{ item.state|default('installed') }}
with_items: homebrew_cask_packages
register: cask_result
- name: cask パッケージの情報保存先ディレクトリを作成
file: path=cask_info state=directory
- name: cask パッケージの情報を保存
shell: brew cask info {{ item }} > cask_info/{{ item }}
with_items: cask_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list
handlers:
- name: run fc-cache
shell: fc-cache -vf
yosemite
HOMEBREW_CASK_OPTS="--appdir=/Applications" ansible-playbook -i hosts -vv setup.yml
なんか上手くいったくさい。
確認してみる。
yosemite
ls -l brew_info
ls -l cask_info
ls -l /opt/homebrew-cask/Caskroom/
ls -l /opt/vagrant
ls -l /Applications
思ったこと
開発環境はvargrant上で構築したほうがいいかと思うので、caskだけホストで実施し、それ以外の環境構築はvargrant上で構築できるように修正していこうかなと思う。
こちら参考にさせていただきました。
Mac の開発環境構築を自動化する (2015 年初旬編)