LoginSignup
11
10

More than 5 years have passed since last update.

Ansibleを使ってみた

Posted at

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 年初旬編)

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10