前々回書いたAnbileのPlaybookをベストプラクティスに習って、
再構成した。
昔作ったsetup.ymlをroleに分割し、commonに共通系のtaskを持ってみた。
Role
Roleは各機能ごとにわけて作るのがいいらしい。たとえば、macの初期設定とかrbenvの設定、
calabash-iosの設定とか、fastlaneの設定とかそういう単位でだ。
ベストプラクティスに習うと、default、files、handlers、meta、tasks、templates、varsの構成で、特殊なことをしなくても基本的にはそれぞれのディレクトリのmain.ymlを読みに行くようだ。
具体的な構成
共通系のtaskは呼び出しタイミングは様々なので、別途rootpathにbaseSetting.ymlをおいて、commonのそれぞれのpathを変数定義しやることで、各role内から呼び出せるようにしている。
tree
├── README.md
├── baseSetting.yml
├── common.yml
├── hosts.list
├── macSetting.yml
├── main.yml
├── rbenv.yml
├── roles
│ ├── common
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── main.yml
│ │ ├── handlers
│ │ │ ├── fontCache.yml
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ ├── brewPakcagesInstaller.yml
│ │ │ ├── caskPackagesInstaller.yml
│ │ │ ├── gemPackagesInstaller.yml
│ │ │ ├── homebrewDepends.yml
│ │ │ └── main.yml
│ │ └── vars
│ │ └── main.yml
│ ├── fastlane
│ │ └── vars
│ │ └── gem_packages
│ ├── mac_setting
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── main.yml
│ │ ├── handlers
│ │ │ ├── fontCache.yml
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ │ └── main.yml
│ │ └── vars
│ │ ├── brewCaskPackages.yml
│ │ ├── brewPackages.yml
│ │ ├── brewTapList.yml
│ │ ├── gemPackages.yml
│ │ └── main.yml
│ ├── rbenv
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── main.yml
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ ├── main.yml
│ │ │ └── setBashProfile.yml
│ │ ├── templates
│ │ │ └── main.yml
│ │ └── vars
│ │ ├── brewTapList.yml
│ │ ├── devEnvBrewPackages.yml
│ │ ├── main.yml
│ │ └── rbEnvBrewPackages.yml
│ └── sample
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ │ └── main.yml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── main.yml
│ └── vars
│ └── main.yml
├── setup.yml
└── site.yml
ソースはgithubにおいてるので参考までに。