macのクリーンインストール @ansibleで自動インスコ付き【2018/01版】

雑なメモ書きですが

OSのクリーンアップ

  • 必要なファイル等は外付けHDDなどに退避する。

今回は新規のMBPにインストールしたのでディスク消去はしていない

  • 電源起動時に、command + Rを押しっぱなしにする
  • OS X ユーティリティからディスクユーティリティを選択
  • ディスクを消去する
  • OS X ユーティリティからOS Xを再インストールするを選択
  • ソフトウェア使用許諾契約に同意する
  • インストール先のディスクを選択してインストール
  • AppleIDとパスワードを入力
  • OSダウンロードが始まり、その後インストールが開始されるので放置

  • 今は情報の転送はしないを選択
  • Macを探すは許可する
  • コンピュータアカウントを作成(iCloudアカウントは使わなかった)
  • FileVaultディスク暗号化を有効にする
  • 診断と使用状況はチェックした
  • クリーンインストールが終わったらApp storeからシステムアップデートをかける。

最新のOSをインストール

  • 新規で購入したMBPなのにHighSierraが入っていなかったのでインストール

Xcodeをインストール

  • 時間がかかるので最初にやる。App storeからXcodeをインストール。
  • インストールが終わったらXcodeを起動して規約に同意する
  • Xcodeのライセンス認証。
  • sudo xcodebuild -license

Dock

  • サイズを小さくする
  • 拡大にチェック。1/4ぐらい
  • 画面上の位置を左に変える
  • 以下をDockから消去
    Siri、Safari、連作先、カレンダー、メモ、リマインダー、マップ、写真、メッセージ、FaceTime
    Pages、Numbers

セキュリティとプライバシー

  • スリープとスクリーンセーバの解除を15分後に
  • Apple WatchでこのMacのロックを解除できるようにする → チェック入れても動かなかったので未設定

キーボード

  • キーのリピートを速く(最速)
  • リピート入力時間を短く(最短)

トラックパッド

  • タップでクリックにチェック
  • 軌跡の速さを速くする(最速)

サウンド

  • メニューバーに音量を表示にチェック

iCloud

  • iCloud、キーチェーン、Macを探すにチェックのみ

共有

  • コンピュータ名をかわいいのに変える

日付のオプション

  • 曜日を表示
  • 日付を表示

表示オプション

  • デスクトップを右クリック → 表示オプションを表示
  • アイコンサイズ 16x16
  • ラベルの位置 右側
  • 表示順序 名前

Homebrewをインストールする

Homebrewのインストール

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta

参考サイトの情報のままだと上手く行かないのでanacondaインストールする

brew install python ---> 2.7系が入るので嫌。3系のanaconda入れたい
brew install ansible ---> pythonのフォルダにインストールしようとする
brew install caskroom/cask/brew-cask ---> エラー出る

anacondaは以下からダウンロード
https://www.anaconda.com/download/#macos

chmod 755 ./Anaconda3-5.0.1-MacOSX-x86_64.sh
./Anaconda3-5.0.1-MacOSX-x86_64.sh

確認

Python -V
Python 3.6.3 :: Anaconda, Inc.

ansibleインストール

brew install ansible

どうもこれ↓は入れなくて良い様子

brew install caskroom/cask/brew-cask ---> エラー出る

試しにbrew install cask atomと打ってみたところ行けた

Ansibleの実行

プロビジョニング用のディレクトリ作成。

mkdir .macbook-provisioning
cd .macbook-provisioning/

ansible用のinventoryファイル作成

echo 'localhost' > hosts

テキストを開き、以下をlocalhost.ymlとして保存

- hosts: localhost
  connection: local
  gather_facts: no
  sudo: no
  vars:
    homebrew_taps:
      - homebrew/binary
      - homebrew/dupes
      - caskroom/cask
      - homebrew/services
    homebrew_packages:
      - { name: readline }
      - { name: openssl }
      - { name: openssl, state: linked, install_options: force }
      - { name: git }
      - { name: wget }
      - { name: curl }
      - { name: go }
      - { name: rbenv }
      - { name: ruby-build }
      - { name: vim }
      - { name: mysql }
      - { name: redis }
    homebrew_enabled_services:
      - mysql
      - redis
    homebrew_cask_packages:
      - { name: iterm2 }
      - { name: firefox }
      - { name: google-chrome }
      - { name: google-japanese-ime }
      - { name: atom }
      - { name: skype }
      - { name: slack }
      - { name: vagrant }
      - { name: virtualbox }
      - { name: phpstorm }
      - { name: pycharm }
      - { name: datagrip }
      - { name: sequel-pro }
      - { name: postman }
      - { name: cyberduck }
      - { name: gimp }
      - { name: marp }
      - { name: vmware-fusion }
      - { name: sourcetree }

  tasks:
    - name: homebrew の tap リポジトリを追加
      homebrew_tap: tap={{ item }} state=present
      with_items: "{{ homebrew_taps }}"

    - name: homebrew update確認
      homebrew: update_homebrew=yes

    # brew
    - name: brew packageのインストール
      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: brew パッケージの情報保存先ディレクトリを作成
      file: path=brew_info state=directory
    - name: brew パッケージの情報を保存
      shell: brew info {{ item }} > brew_info/{{ item }}
      with_items: "{{ brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}"

    # brew services
    - name: Get currently available brew services.
      shell: "brew services list | sed '1 d' | cut -d ' ' -f 1"
      register: brew_services

    - name: Enable brew services.
      command: "brew services start {{ item }}"
      with_items: "{{ homebrew_enabled_services }}"
      when: "'{{ item }}' in brew_services.stdout_lines"

    # - name: Install bundler(インストールは成功するが、Projectによってはうまく動作しなかった)
    #   gem:
    #     name: bundler
    #     user_install: no
    #     executable: /usr/local/bin/gem

  handlers:
    - name: run fc-cache
      shell: fc-cache -vf

Homebrew Caskオプションを設定

echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.bash_profile
source ~/.bash_profile

作成したPlaybookを実行する

ansible-playbook -i hosts -vv localhost.yml

※MacBookPro 2017 Mid 15インチ (High Sierra)で動作確認済み