Ansible入門...?という発表をしました

この記事は Ansible Advent Calender 2013 の記事です。

Pyfesでの発表

11月30日に #pyfes というイベントで、Ansible入門...?という発表を行いま した。

slideshareにその時の資料を上げておきます。

http://www.slideshare.net/r_rudi/ansible-28755803

この発表で伝えたかったこと

今回の発表で伝えたかったことは3つです。

  1. AnsibleはProvisioning Toolとしてだけではなく、Orchestrationまでカバー できること

  2. 豊富なモジュールがあること

  3. 簡単にモジュールが作成できること

1. Orchestration

Ansibleを最初に触った時から、「これはむしろFabric + Cuisineだ」と思って いたので、Chefやpuppetとの対比には少し違和感がありました。(ちなみに Ansibleの前はChefを使っていました)

ですので、今回の発表はshell moduleやRolling Updateなど、Orchestrationで の使用を想定されている機能を紹介しました。

2. 豊富なモジュールがあること

発表では意図して多くのモジュールに触れました。homebrewモジュールもある んですよ(ちなみにmacportsもあります)

Ansibleのポリシーとして、ちょっとでもみんなの役に立つならモジュールに入 れよう、というのがあるようです。ChefでいうCommunity Cookbookの代わりに モジュールがある、という感じの位置づけです。

ですから、たくさんのモジュールがあるし、どんどん増えていっています。そ して、なにか有用なモジュールを作ったのならばどんどんPull Requestしてく れ、だそうです。

Aristaモジュールとか、ChefやPuppetではあんまり対象に入っていないことだ と思うので、そのあたりも差別化要因になるかと思います。

3. モジュールが簡単に書けること

AnsibleはYAMLだから記述力が低いんじゃないか、という話があります。そもそ もYAMLが嫌い、ということは別途ありますが、AnsibleはYAMLで書きにくいもの はモジュールを作成してくれ、というスタンスです。

そのために、モジュールは非常に簡単に、しかもいろいろな言語で書けるよう になっています。その例がShell Script、というより単にcurlを呼び出してい るだけのデモです。

まあ、「電話での通知」をやってみたかっただけ、ですけどね!

TwilioはSMSも送れたり、電話会議もできるので、

  • Provisioningが終わったらSMSで通知

  • エラーになったら関係者で対応策を会議

とかいろいろ応用が聞くと思うので、ぜひみなさんも作ってみてください。

補足

発表で時間の都合上端折った点がありますので、ここで補足させてください。

1. タグ機能について

Ansibleの各taskにはtagを付けることができます。

- name: タグ付きタスク
  debug: msg=タグ
  tags:
    - test
    - debug

こうしておいて、

% ansible-playbook test.yml -t test

とすると、testというタグが付けられたtaskだけが実行されます。

これをうまく使うと、ProvisioningとOrchestrationの二つを使い分けること ができます。

また、Playbookを作成しているときはいろいろと試行錯誤しますがその時にこ のtaskだけ実行したい、ということがよくあります。ぼくはそういうときに debugタグをよく使っています。

2. pull-mode

Ansibleはsshを通じてコマンドを送るpush型ですが、ansible-pullという遠隔 サーバー上で実行するpull modeもあります。

pull-modeをcronで定期的に実行する、あるいはリポジトリが変化した時などに 実行する、などと設定しておくと完全に自動で更新が行われます。

Accerated Modeを使うことでAnsibleの実行速度は遅くはないですが、 Pull-modeを使うことによりそもそも手動で実行する必要がなくなります。

ぜひご検討ください。

まとめ

スライドにもありますが、

  1. Ansibleは遠隔実行ツールとしても使える

  2. モジュールが豊富

  3. モジュールは簡単に作成できる

の3つが伝えたいことでした。

ということで、発表もしてAdvent Calendarも書く、というひと粒で二度美味しい、ということ を目指したエントリーでした。

おしまい

Comments

comments powered by Disqus