Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

リブセンスのインフラで使ってるAnsibleのお話

1,683 views

Published on

20151007 構成管理ツール 【 Ansible 】 勉強会 on Zusaarで発表したもの

Published in: Engineering
  • Be the first to comment

リブセンスのインフラで使ってるAnsibleのお話

  1. 1. リブセンスのインフラで使ってる ansibleのお話 湖山 翔平 / Shohei.koyama @sion_cojp
  2. 2. 湖山 翔平 / @sion_cojp 元FPSプロゲーマーでアジアチャンピオン perl/ruby/golang/openstack こんな記事書いてます qiita : インフラエンジニアとしてよく使うコマンド集 slideshare : インフラエンジニアの綺麗で優しい手順書の書き方 インフラエンジニア 株式会社リブセンス 自己紹介
  3. 3. みなさん ansibleのベストプラクティスってご存知ですよね! 今日のお話
  4. 4. リブセンスではこんな感じで使ってますよ∼ というお話。 変わったことはしてないです。 今日のお話
  5. 5. リブセンスのディレクトリ構造はこんな感じです サービス毎にディレクトリを作って、 その配下にあるrolesを読みに行かせてます。 未だにこれがベストプラクティスじゃないと 思って構成を悩み中。
  6. 6. 「どのディレクトリ構造、運用がベストか。」 と悩んでました。今も悩んでます。 ネットに載ってるベストプラクティスをそのまま適用しちゃえ∼っ て思ったら、 ディレクトリ構造がカオスになります。 (よいディレクトリ構成あったら是非教えてください!)
  7. 7. inventory inventoryは ansible-playbookを使う前に、rubyのプログラムを叩いてます。 独自サーバ管理ツール + openstackのAPI経由で 最新のホスト情報、role情報をゲットして inventoryに書き込んでます inventoryはシンボリックリンクを貼って etckeepeerに管理させてます
  8. 8. openstackのIPをgetするrubyはこんな感じ
  9. 9. ちなみに今日作ったplaybookのpull reqがこちら。
  10. 10. 発射(dry run) $ ansible-playbook -i inventory/test spot/hogehoge.yml --check
  11. 11. rolesを使うときに、 tasks/main.ymlを読み込ませずに出来ないかなぁと 思いまいした。 今日久々にansible触って思ったこと
  12. 12. こんな感じが理想 before after 毎回フルパスかくの面倒くさい handlerかくの面倒くさい roles/handlers/main.yml に書いてるものを読みに行っ てくれる! 勝手にroles/php/files/配下 を読みに行くので、 フルパス書かなくてよい! roles/phpを指定!
  13. 13. chef: サーバ構築、packerで社内用vagrant box作成 ansible: 脆弱性対応、スポット作業、mackerelの監視追加 実はリブセンスのインフラではchefとansibleを併用してます。
  14. 14. なぜ併用?
  15. 15. 個人的chefの所感 メリット: 可読性高い 用意されてるリソースが便利 構成がシンプル ohai連携でサーバのデータが取ってこれる 多様なサーバがあったら分岐しやすい、ちょっと複雑なことをしやすい ruby実装 デメリット: 初回導入に時間かかる chef-solo? chef-server? knife-solo? 覚えること多い。 client側にchef-dkのインストールが必要なので、初回のbootstrapに時間かかる 複雑なディレクトリ構造(environmentsやら、site-cookbooks) ターミナル2つ開かないと並列処理できない(roundsmanで出来るという話)
  16. 16. 個人的ansibleの所感 メリット: シンプルな構造 (sshして・・・を叩くって形。ansible, ansible-playbookさえ覚えれば良い) 自由度が高い(ディレクトリ構成を自分で決めれたり) playbookに格納されてるスクリプトを遠隔で打てる 並列処理 デメリット: 用意されてるリソース(モジュール)が少ない分、shellモジュールでガリガリ書くことが多 くなり、可読性が低くなる 自由度が高い分、ルールを設けないとカオスになる。 オプションが多くてすぐ忘れる yaml python実装
  17. 17. こういう住み分けになりました
  18. 18. ツールは会社にあった使い方をするのがベスト。 最後に言いたいことは
  19. 19. ご静聴ありがとうございました!

×