今年1年間でAnsible界隈ではどのような変化が起こったのか。


タイトルの通り、去年のAdventCalendar1日目(2013/12/1)から今日までの開発状況や採用実績・イベント・参考書について調べてみました。
技術的なTipsは一切ありません。。

# Ansibleについて
## そもそもAnsibleって何？
AnsibleはPython製の構成管理ソフトウェアです。
サーバのミドルウェアやアプリケーションのインストール/設定を自動かつ高速に実現できます。
v1.8でWindowsにも対応しました。

ThoughtWorks社が公表するTechnologyRader2014/07版では、「導入を推奨」となりました。
ThoughtWorks社内でも実際に採用された実績があり、推奨となりました。
http://www.thoughtworks.com/radar/tools
http://www.thoughtworks.com/radar/tools/ansible


次の特長があります。

+ マシンを素早く並行に管理できる。
+ 実行対象のサーバはエージェントレス。sshdだけあれば良い。  
追加エージェントやポートの開放は不要。
+ root以外でも使える。
+ 冪等性があり、何度実行しても同じ結果になる(注)
+ 高いセキュリティ
+ セットアップが簡単で、学習コストが低い。
+ 人もソフトウェアも読みやすい方法(YAML)で構成を記述する。
+ 読みやすい方法にすることで、監査/レビュー/修正が簡単。
+ AWS EC2の作成など多くの機能が標準でモジュール化されている。
+ モジュールはPython以外のどんな言語でも開発できる。
+ GUI(Ansible Tower)あり

注...shellモジュールなど冪等性がないモジュールも一部あります。




## バージョンアップ
Ansibleのマイナーアップデートは4回ありました。

| date | 2013/12/1 | 2014/12/1 |
|:--------|-------:|-------:|
| version | 1.4.1 <br>"Could This Be Magic"<br>Nov 27, 2013| 1.8.1 <br>"You Really Got Me" <br>Nov 26, 2014 |
| Total Commit | 7835| 12652 |


v1.4.1とv1.8.1時点のコミットログからコミッターのメールドメイン別に集計・グラフにしてみました。
gmail.comとOthers(Top10圏外)が多く、Ansible社が開発するよりも、コミュニティベースで開発されている傾向は1年前からあまり変わりません。(Ansible社の方がgmail.comを使っている可能性があるので何とも言えないところもありますが。。)
なお、sngx.netは伸び率が大きいですが、Ansible社のJames Cammarataさんです。

![ansible_graph.png](https://qiita-image-store.s3.amazonaws.com/0/29901/496cab0f-5ac2-683a-0813-50f3e466c5e0.png "ansible_graph.png")
(by http://volanja.github.io/git_analysis/)

## モジュールの追加・削除
`ansible-doc -l`で比較しました。
今年1年間でモジュールは75個も増え、7個のモジュールが削除されました。

| version | v1.4.1 | v1.8.1 |
|:--------|-------:|-------:|
| modules |   172  |    240 |

v1.8.1はCore,Extra,DEPRECATED含みます。

v1.8でCoreとExtraに分割されました。
Coreが優先的にメンテナンスされます。
新しいモジュールはExtraにまず登録され、使用頻度・必要性などによりCoreに昇格されます。


v1.8.1までの増減したモジュールです。
最大のトピックはWindowsサポートですが、クラウド/仮想基盤系モジュールの増強や、デプロイに役立つライブラリ管理ソフトウェアの追加、エンジニアフレンドリーな通知系モジュールの増強などが幅広く追加されています。

+ 増えたモジュール
	+ OS
		+ Windows
	+ クラウド/仮想基盤系  
		+ AWS EC2
		+ Azure対応
		+ rax(Rackspace Public Cloud)関連
		+ VMware vSphere対応
	+ ライブラリ管理ソフトウェア
		+ cpanm (for Perl)
		+ composer (for PHP)
	+ 通知系
		+ slack
		+ twilio
		+ typetalk
	+ テスト用モジュール
		+ assert

+ 削除されたモジュール
	+ arista関連  
	+ (accelerate,async_statusは`ansible-doc -l`から削除されましたが、実際には残っています。)

# Ansibleの人気
GoogleTrendによれば、人気度は去年の2倍です。

http://www.google.co.jp/trends/explore?q=ansible#q=ansible&date=1%2F2013%2024m&cmpt=q

# 利用実績
勝手にまとめてみました。

## 国内
### Hadoop基盤構築
[Slideshare: Dynamic Inventory: no more host lists! By SATOSHI TAGOMORI](http://www.slideshare.net/tagomoris/ansibleja?related=1)

LINE社内のHadoop基盤構築に採用されています。
ホスト管理ツール「Yabitz」と組み合わせて、Yabitzからホスト情報をDynamicInventoryで取得し、playbookを実行されています。

(後日、追加します)

## 海外
海外での利用実績は[Ansibleのトップページ](http://www.ansible.com/home)にあります。
主にAnsible Towerを使うケース(NASA,GoPro,EA)が多いようです。

+ Atlassian  
[Bamboo](https://www.atlassian.com/ja/software/bamboo)と組み合わせたDeployに採用。  
既にPuppetを使っていたのでPuppetはOSレベルの設定を行い、AnsibleはAWSでのクラスター構築やアプリケーションのデプロイとアップグレードを行う。  
[SlideShare: London Atlassian User Group - February 2014 By Steve Smith](http://www.slideshare.net/tarkasteve/london-atlassian-user-group-february-2014)  
[Blog: Practical continuous deployment](http://blogs.atlassian.com/2014/04/practical-continuous-deployment/)
+ Twitter  
以前はPuppetを使っていたが、Ansibleも使い始めた。社内にはPython開発者が多かったことが大きな理由。  
必要なモジュールがビルトインされていることや拡張性の高さが高評価だった。  
[How Twitter Uses Ansible](http://www.ansible.com/twitter)
+ Verising
+ EA  
Ansible Towerを採用
+ Evernote
+ Spotify
+ GoPro  
Ansible Towerを採用
+ NASA  
Ansible Towerを利用して、NASAのWebサーバのアップデートに使用。  
NASA公式サイトのアップデート作業時間を1時間から5分へ短縮した。  
アップデートパッチの適用に数日掛かっていたが、45分へ短縮した。  
[PDF: NASA Case Study](http://www.ansible.com/hs-fs/hub/330046/file-1649288715-pdf/Whitepapers__Case_Studies/nasa_ansible_case_study.pdf)
+ Care.com
+ Motolora
+ WeightWatchers
+ HP  
HP Moonshotサーバ(45カートリッジ)へのDockerのインストールに使用  
[Slideshare: HP Advanced Technology Group: Docker and Ansible](http://www.slideshare.net/PatrickGalbraith/docker-ansible-34909080)



(後日、追加します)

# イベント
## 国内
国内では勉強会が2回行われました。
その他、社内勉強会などでも取り上げられるケースが増えた...らしいです。

### [2014/6/10 Ansible勉強会 #1](http://ansible-users.connpass.com/event/5968/)

リモート会場まで出来るほど、盛況だったそうです。
(行きたかったけど、行ってませんorz...)

[Togetter: Ansible勉強会 #1 まとめ](http://togetter.com/li/678544)

### [2014/9/22 Ansible Meetup in Tokyo](http://ansible-users.connpass.com/event/7942/)
[Togetter: Ansible Meetup in Tokyo](http://togetter.com/li/722495)


## 海外
海外ではAnsible社主催のカンファレンスがありました。

### [AnsibleFest NYC 2014](https://www.eventbrite.com/e/ansiblefest-nyc-2014-tickets-10952628607)

[Qiita: AnsibleFest NYC 2014 スライドまとめ](http://qiita.com/volanja/items/6cb55bc9a1a086b1da53)

### [AnsibleFest San Francisco 2014](http://www.ansible.com/ansiblefest-san-francisco)


# 参考書
2013年時点では英語の参考書のみでしたが、2014年は日本語の書籍が2冊発売されました。

## 国内
+ [Kindle版:入門Ansible 若山史郎(著)](http://www.amazon.co.jp/dp/B00MALTGDY)  
[PDF/EPUB/MOBI同梱版はこちらです！](https://gumroad.com/l/TNHSc)  
　
+ [Software Design 2014年11月号](http://gihyo.jp/magazine/SD/archive/2014/201411)



## 海外
+ [ANSIBLE UP & RUNNING 2015年春](http://www.ansible.com/ansible-book)  
Ansible公式のオライリー本です。今なら冒頭の３章まで読むことが出来ます！
+ [Ansible Configuration Management Daniel Hall(著)](http://www.amazon.co.jp/dp/1783280816)  
2013/11/22発売
+ [Ansible for DevOps Jeff Geerling(著)](https://leanpub.com/ansible-for-devops)  
執筆中ですが購入可能です。Version 0.71 (2014-11-27)
+ [Ansible for AWS Yan Kurniawan(著)](https://leanpub.com/ansible-for-aws)  
執筆中ですが購入可能です。Version 0.85 (2014-11-12)

以上