2014.09.29

【勉強会レポート】Ansible Meetup in Tokyo 2014.09

最近オーケストレーションツールとして注目を浴びているansibleのMeetupに参加する事ができましたので、参加レポートをお届けいたします。

以下聴講者メモ

  • 日経デジタル編成局提供
    • インターン募集していた
  • Ansible日常的に使っている
    • 40%近い
  • 「Hi Japan! / What’s New In Ansible 1.8」 (Michael DeHaanさん ansible作者 )
    • Google Hangoutによるアメリカからの発表
    • イントロ
      • アメリカ、イギリス、ドイツに次いで 日本は4番目にansibleユーザが多い。 ansible.comのトラフィックの5.5%
      • 日本から新規でdocs.ansible.comを訪れている数、1700人/月
    • Ansible 1.7.1
      • RUN_ONCE
      • Windows Support (beta)
      • EXPANDED INVENTORY SUPPORT
        • Azure/VMware/SoftLayer
    • Anaible 1.8 (DEVEROPMENT)
      • FACT CACHING
        • redis使う
        • playbook/variables/factを実行中storeする
        • 早くなるかも。複数実行する時に恩恵があるかも
      • NO_LOG TWEAKS
        • syslogを抑止する。
      • Additonal Loadbalancer support (A10)
      • Docker Images
      • (PENDING) TRY/EXCEPTモジュール
    • 質問タイム
      • Q. 日本語翻訳どうします?
        • transifixでクラウドソーシングやろうかなと考えている
      • Q. マイナーバージョンアップのリリース間隔
        • 間隔は3ヶ月。新機能を使いたい人はdevelopブランチを使うとよい。全体の25%位の人がdevelopブランチを使っている。
      • Q. 1.3の頃から使っているが、ドキュメントしっかりしてる。チームでどういった取り組みをしているか?
        • sphinx 使っている。
        • 新しい機能をリリースしたときにドキュメントも一緒にリリースするようにしている。
        • ドキュメント自体にPullRequestが来る。
        • 何か間違いがあったらPRください。
      • Q. Windows正式対応は?
        • 1.8から
  • 「ちょっと便利な使い方 〜入門Ansibleに書ききれなかったことを中心に〜」 (@r_rudiさん)
    • roles_path
      • roleが散らばって困ったときansible.cfgなどに検索先を指定できる
      • roleの検索順序
        • 自分のディレクトリのroles以下
        • 自分のディレクトリ以下
        • roles_pathを前から探して行く
    • whenの複数条件
    • shellで環境変数
      • environment = どのモジュールでも使える
      • sourceは使えない。 “.”かbashで実行
    • 数字として比較
      when:logline.stdout | int > 300
    • バージョンを比較
      • version_compare
    • 正規表現で比較
      • 完全一致 match
      • 部分一致 search
    • cronモジュール
      • crontabの書き方は忘れがち
      • ansibleのDSLで書ける。ansibleのDSLを覚えておけばいい
    • local_fact
      • /etc/ansible/facts.d/ hosts .fact
      • 対象ホストにファイルを置くとfactとなる。jsonでも書ける。
      • 実行権限をつけると、動的に生成 できる。
    • local_path
      • /etc/ansible/facts.dじゃない場所を使いたい
      • setupモジュールを使う
    • chatops
      • slack + hubot
  • 「Influxdb cluster setup using Ansible(仮)」 (Influxdb CEO Paul Dixさん)
  • 「Ansible meets Windows」 (@myb1126さん)
    • 1.7.1 から使える
    • WinRM + Powershell 3.0
    • Windowsモジュール
      • だいたいwin_がprefixで付く
      • win_msiよりも良さそうなwin_packageがmergeされそう
      • script
      • raw 引数が使える
    • アーキテクチャ
      • Web Service Management プロトコルを経由して制御
      • メッセージ形式はSOAP
      • HTTPS
    • Chefはどうやってwindowsサポートしているか
      • Powershell + ruby + msys + gem
      • ansibleは Powershellだけ、エージェントレス!
    • windowsマシンの展開
      • windowsのイメージは単純なdiskコピーだと失敗する。(SID重複)
      • sysprepを使うとよい
    • Windows Bootstrapping
      • デモ
    • 適用の所感
      • 管理サーバをLinuxで立てられる
        • windowsサーバを減らせる
        • 開発環境の自動化
        • Powershell
    • その他

LT

  • 「ANSIBLE_KEEP_REMOTE_FILESをTrueにしてみよう!」 (@saito_hidekiさん)
    • 動機
      • ansibleのモジュールを自作したい
      • ansibleがモジュールから生成した実行プログラムはノードから削除されてしまう。
      • 実行プログラムを消さずに残しておく方法!
      • /root/.ansible/tmp/ansible-tmp/xxx/以下
      • 適切な引数を与えればそのまま実行できる。pdbでデバッグ可能
  • 「実用plugin」 (@choplinさん)
    • developping_plugins.html
    • Vars plugins
      • 使ってない
      • dynamic inventory使った方がよい
    • Filter Plugins
      • 使ってる
    • Callbacks
      • 任意の場所でhook入れる
      • 使ってる
    • pluginの開発
      • 指定の場所にpythonスクリプトを置くだけ
      • filter pluginが簡単かつ有用
    • 配置
      • pluginsの中に置く
    • 実例
      • hipchat
        • playbookが実行されるとメッセージが飛ぶ
      • commit check
        • pullするの忘れて実行
        • 実行後にpush忘れ
  • 「Ansibleとテスト」 (@volanjaさん)
    • ansibleアドベントカレンダー
    • ansible_spec
      • ServerspecからAnsibleのInventoryFileなどを読み込んでくれるgem。
      • Serverspecのversion 2には対応していない模様。
  • 「Dynamic Inventoryと参照変数」 (@bungoumeさん)

感想

  • ansibleのドキュメントは確かに充実していてかつ自分に取っては読みやすかったので、一般的なドキュメントの作り方としても参考になりました。
  • webのドキュメントも充実しているのですが、ansible-docコマンドでもコンソール上でモジュールの使い方が読めるので個人的に愛用しています。
  • 『ちょっと便利な使い方』がちょっとどころかかなり便利そうでした。早速活用したいと思います。
  • チームでplaybookを運用する時に品質担保としてansible-lintが良さそうです。
  • 実行プログラムを消さずに残しておく方法はデバッグにも使えてとても良いと思いました。
  • 同じくチームで運用しだすとhookでいろいろと連携したくなるので実用pluginの手法が大変参考になりました。

あとがき

次世代システム研究室ではグループのプロジェクト支援の一環で設計やインテグレーションをお手伝いする事が多いのですが、 コンスタントに新しい案件が入ってきますので比較的新しいプラクティスを導入しやすい土壌があります。 特に最近はansibleを採用したプロジェクトが増えてきましたので、今回の勉強会で得られた知見を基に改善を重ね、 フィードバックしていきたいと考えております。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ