Ansibleは仕事ではあまり使っておらず、どちらかと言えば趣味の領域です。
いまでは、Ansibleを関心のあるソフトウェアのインストールと起動確認に使用しています。
私のような趣味プログラマーがソフトウェアを構築していると次のような問題に直面します。
- 週末や月一などでやっていると前回どこまで構築したか忘れていることがある。
- 設定で躓いたところをEvernoteなどにメモしても、同じところで躓きがちになる。
- よって、バージョンアップへの追随が段々と億劫になって一度作って終わりになりがちになる。
Ansibleに限った話ではありませんが、コード化しておくとこれらの点が解消されます。
- 前回どこまで構築出来ていたかはコードやDiffを見れば分かる。
- 設定で躓いたところはコード化されている。
- バージョンアップに追随しやすい。
さらに、GithubやCircleCI/Werckerを連携させることで、インストールと起動確認を自動化できます。
個人的にこれらがうまく行っているのはansible-Redmineです。
Redmineのバージョンはplaybook内に変数として書いています。
変数を変更してGithubへpushすると、数分後にはCircleCI/Wercker上でインストール確認までできているので、追随確認も簡単です。
なお、ansible-Redmineでは次の順序で進んでいきます。
- AnsibleのPlaybookはGithubで管理
- Githubにpushすると、Wecker/CircleCI上でDockerを起動
- Dockerに対してAnsibleのPlaybookを実行して構築
- Dockerに対してServerspecを実行して構築できたことを確認
- (Webアプリなので)Dockerに対してInfratasterを実行してWeb画面が表示されることを確認
特別Ansibleの話でなくとも良かった気がしますが、趣味でもこのような形でAnsibleが活用ができるというお話でした。