Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AnsibleFestに行って海外の自動化事情を聞いてきた

 AnsibleFestに行って海外の自動化事情を聞いてきた

2019/11/25 Ansible Night in Tokyo 2019.11での、髙木の講演資料になります

Eea9a05e6e222a3d50c73f54a49fadf4?s=128

Recruit Technologies

November 25, 2019
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. AnsibleFestに行って海外の自動化事情を聞いてきた 2019/11/25 株式会社リクルートテクノロジーズ 髙木 光一郎 1

  2. コンテンツ 2 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. • 参加したセッション • 特によかったセッション • 感想
  3. AnsibleFest 参加者の紹介 3 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • 経歴 ~2018/9 独立系SIer Ansibleで自動化フレームワークを作ったり インフラ構築案件でAnsible使ってサーバ構築したり 2018/10~ リクルートテクノロジーズ IDポイントインフラのデータベース担当 実は今はAnsibleやってない • AnsibleFest参加のきっかけ 遠藤さんのアツイ想いが実りAnsibleFestに行けることに そして上司の計らいで私も行かせてもらえることになった • 意気込み 人生初の海外出張で無駄にテンション↑ 海外は自動化進んでそう、どんな感じか知りたい せっかく行かせてもらえるので、何か実践できそうなネタを 持ち帰りたい 髙木 光一郎
  4. AnsibleFest 参加者の紹介 4 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • 仕事内容:ネットワーク設計・構築・運用 • 最近のブーム:近所の散歩、英会話、ドラクエ6 • AnsibleFest参加の目的: – テスト自動化の概要を知りたい – 現地のエンジニアとAnsible活用の仕方について議論したい 遠藤 惇平
  5. アトランタ観光 5 (C) Recruit Technologies Co., Ltd. - All rights

    reserved.
  6. CNN (Cable News Network) 6 (C) Recruit Technologies Co., Ltd.

    - All rights reserved. • アトランタに本社がある アメリカのケーブルテレビ局 • スタジオ見学ツアーに参加 • 持ち物チェック厳しめ • 有名っぽいキャスターの人がいたり スタジオやオフィスを見れましたが、 撮影はNG(残念)
  7. World of Coca-Cola 7 (C) Recruit Technologies Co., Ltd. -

    All rights reserved. • コカ・コーラ博物館 • アトランタにはコカ・コーラの本社がある • コカ・コーラの歴史、色々な国や時代の 広告、CM、自販機などが展示 • 世界のファンタやスプライトなどが 飲めました
  8. World of Coca-Cola 8 (C) Recruit Technologies Co., Ltd. -

    All rights reserved. 写真じゃわからないかもしれませんが クマ怖すぎ
  9. 参加したセッション 9 (C) Recruit Technologies Co., Ltd. - All rights

    reserved.
  10. コンセプト 10 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. ユーザ事例や最新情報や技術的なセッション など幅広く! ネットワーク自動化とテスト!
  11. 参加したセッション 11 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Red Hat Robyn Bergeron Keynote Simple, Modularity, Open がAnsible プロジェクトを成 功に導いたという話。Ansibleは柔軟に開発コミュニティ の輪を広げてきた。技術要素でも、Engine, Module, Plugin といったように構成要素を分け、開発ルールも整 備してコントリビュート参画のハードルを下げるよう工 夫した。今や Ansible Project は、世界で6番目にアク ティブなGitHubリポジトリにまで成長している Chevron Building Organizational Capability in Ansible to Execute a Cloud Migration Strategy 自動化を社内に普及した話(Azure × Tower)。 ワークショップ/トレーニング環境/ハッカソンで広げたと のことだが、その活動をどうやって普及したかちゃんと 聞きたかったが英語力不足で撃沈 Red Hat Quality Matters: Improving your Ansible modules and plugins with ansible- test ansible-test とは、Module, Plugin などを自作した際、 効率的にテストを実施するためのツール。ツール製作者 による講演。公式の開発でも利用されている。会場は超 満員だった Red Hat Accelerating VMware automation using Ansible VMwareの自動化方法は何パターンかあるよ、という話。 それぞれの方法でデモしてくれた。URI moduleはcookie をregisterして後続タスクに引き継げるのをここで知った。 開発中のHTTPAPIは結構VMwareのplaybook書くのがラ クになりそうで期待 :特によかった :使えそう
  12. 参加したセッション 12 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Red Hat Running Ansible at Scale Ansible の性能最適化の話。Ansible Tower でクラスタ構 成を組むことで拡張可能。Forksでマルチプロセスの チューニング可。Fact Cacheは使ったほうが良い。Fact Cacheの更新ジョブを定期的に回す。SFTPよりもSCPの が早い。Python3はPython2より早い。ノンパスワード SSH認証のが早い Microsoft Using Ansible as a catalyst for digital transformation NW機器の設定、インシデントレスポンス、情報収集を自 動化し、集めた情報をマシンラーニングさせて設計も自 動化を目指している 髙木はこのセッションが一番アツかった Midwester n Mac, LLC There's a role for that! How to evaluate community roles for your playbooks Ansible Galaxy から欲しいRole を効率よく探し出すため の検索結果の読み方を紹介していた。既存のRole を利用 することで多少楽はできるが、最終的には自分でRole を メンテする必要がある (※) と締めくくった。 ※コーディング規約や必要な機能が完璧にマッチするこ とは少ないため Indeed The Validator - Validating Office Configurations with Ansible Tower NW機器の状態確認ツール「Validator」の紹介、各種ス テータス取得、HTMLレポート出力をplaybook化、情報 とってすぐWebで見れるのはよいし、がんばればウチで も同じような仕組みができそうで参考になった :特によかった :使えそう
  13. 参加したセッション 13 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Telstra Enabling Network as a Service with Ansible 大規模NWを自動化した事例。 Service Nowで画面作ってユーザにパラメータ入れさせ た。Ansible Tower にAPI連携させた。NW自動構築して、 ユーザに自動メール通知した。具体的な実装には言及せ ず、ざっくりとしたシステム構成の共有が中心だった - Panel Discussion 自動化を組織に浸透させるためには、的な内容。外国で も自動化はすぐに受け入れられるわけではないようで、 いろいろ布教活動したそうです 海外は自動化イケイケだと思ってたので意外だった、、、 Red Hat General Session Ansible Collection / Automation Hub を使って別の場所 にいる3人がバナナで連絡取りながらアプリをデプロイす る寸劇 実際問題、こんな感じに楽しくやれる未来は遠いか、、 Intel Introducing automation in CI infrastructure IntelはAnsible + gerrit + AWXでCIを回しているが、テ ストは主に構文チェックで最後に人がコードレビューし ている やっぱり全部自動化!ってわけにはいかないものだなぁ とつくづく思った :特によかった :使えそう
  14. 参加したセッション 14 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Southern Company Minimizing Business Unit Conflict with Patch Automation ソフトウェアのパッチ当てをしたいインフラ部と、原子 炉を管理するシステムを絶対に止めたくないアプリ部と の終わらない闘いの話。大事なのは踏み込んだコミュニ ケーション、そして自動化。 yum upgrade, reboot, メール広報 (jinja2) をAnsible で自動化し、揺れ動くスケジュールに柔軟に対処しやす くした。 Google Google Cloud's Journey to Ansible Collections モジュール開発は github / bot / shippable / ansible- test を駆使していて、GCPのDevOpsを簡単に行うMagic Modulesもある。 やっぱりGoogleは先行ってる感じがした。 Corporati on Service Company Automating Enterprise Firewall Requests with Tower 世界に50拠点持つ大規模企業の事例。FWコンフィグから IPアドレスセグメントを抽出。WEBベースの通信要件申 請画面に反映し、入力規則を適用。WEB画面のデータを Ansible Tower にAPI連携し、通信要件投入も自動化。品 質改善、工数削減、リードタイム短縮。 CyberArk Leveraging Ansible Security Automation Capabilities to Automate CyberArk Security Workflows セキュリティログ検知 > Ansible Tower にAPI連携 > 該 当ユーザを無効化するといったセキュリティインシデン ト対応自動化を提案。 :特によかった :使えそう
  15. 参加したセッション 15 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Red Hat Automation Analytics 複数Towerを一元管理して、自動化を活用してる組織や コストなどを分析するSaaS これを活用できるのは、まだまだ先の話かなあ Red Hat Journey Map approach to implementing network automation with Ansible 自動化のステージをどう登るかをモデル化した話。自動 化なし > 一部Ansible化 > JIRA-Ansible連携、CI/CD化 > 機器ごとの設定ブレの解消。今の運用状況によって実 装の優先度は変わると思った。 Red Hat Practical Ansible Testing with Molecule Playbook/Role のテストに特化したツール。ansible-test とほぼ同等の機能性を持つ デモしてもらいましたが、コマンド打つスピードと正確 さがヤバかった :特によかった :使えそう
  16. 参加したセッション 16 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. 発表者 タイトル メモや感想など 参加者 Red Hat Setting the stage with Red Hat Services: Automation Adoption Program 重要な要素は3つ。自身の自動化ユースケースの記録、自 動化のステップを分解すること、手動作業から自動化へ 文化シフトすること。 【自動化組織の進化のステップ】NW/SV/MW横断の自動 化チーム結成 > 初代自動化チームが新生自動化チームの 立ち上げサポート> 自動化チーム立ち上げプロセスの最 適化・高速化 (自社特化)。 【技術進化のステップ】自動化して本番環境に適用 > テ スト自動化> CI/CD > オーケストレーション (申請、レ ポート含めた自動化)、新規技術の継続的な探索と共有 Red Hat Best practices for onboarding automation with Ansible Tower and a continuous integration (CI) Ansible Tower + gitlab-ci でCIする話 Lint (書式のチェック) → Molecule のパイプラインのデ モ 完全にCI化できなくても、できるところからCI化はして くべきと思いました Red Hat Taste of Training: Automating Linux system administration tasks with Ansible ansibleとは、playbookとは、RedHatのトレーニングや 認定があるetc...超入門編的なお話 :特によかった :使えそう
  17. 特によかったセッション (1) 17 (C) Recruit Technologies Co., Ltd. - All

    rights reserved.
  18. 18 (C) Recruit Technologies Co., Ltd. - All rights reserved.

    概要: ネットワーク自動化のユースケース紹介 画像出典元: https://www.ansible.com/using-ansible-as-a-catalyst-for-digital-transformation
  19. 特によかったセッション (1) 19 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. MSで管理してるNW機器は約3万台 NW機器の構築自動化は当たり前、コードと実機の情報を収集、 分析して設計も自動で作り、ネットワーク全体を自律的に望まし い状態にするのがMSの目指すもの
  20. 特によかったセッション (1) 20 (C) Recruit Technologies Co., Ltd. - All

    rights reserved.
  21. 特によかったセッション (1) 21 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. [google翻訳] ・手作業で設定する代わりに、自動化します ・アラートやイベントに手動で応答する代わりに、問題を診断 して自己修復を試みる自動化を作成します ・リアクティブではなく、プロアクティブであり、意思決定や 将来の予測にデータを使用します ・デバイスを設定する代わりに、ネットワーク全体の望ましい 状態設定を実施します
  22. 特によかったセッション (1) 22 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. リポジトリのコードと収集した情報から、設定(コード)を生み出す
  23. 特によかったセッション (1) 23 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. AnsibleやKubernetesなど、いろんなツールを使っている (MSのプロダクトにしばられてない!)
  24. 24 (C) Recruit Technologies Co., Ltd. - All rights reserved.

    【感想】 考えることの次元が違う 自動化の自動化を目指してる感じでした MicrosoftがRedHatのイベントで講演してるのが 何気にびっくり 特によかったセッション (1)
  25. 特によかったセッション (2) 25 (C) Recruit Technologies Co., Ltd. - All

    rights reserved.
  26. 26 (C) Recruit Technologies Co., Ltd. - All rights reserved.

    概要: Plugin や Module 開発時のテスト自動化ツール、ansible-test の紹介 画像出典元: https://www.ansible.com/quality-matters
  27. ansible-test の概要 27 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • Ansible 自体をテストするためのツール • Ansible Project 公式で利用されている • 最新のAnsible 2.9 以降に付属する • テスト内容 • Sanity Test • Integration Test • Unit Test • テスト対象 • Plugin • Module • Role / Playbook ※Role / Playbook のテストはMolecule の方が推奨 • Docker 連携をサポート。環境を汚さず、テスト実行できる • Code Coverage 機能 • ansible-test 利用のメリット • 一度書いたテストコードを再利用できる → 後方互換性を担保しやすい • こまめにテストしやすい → 不具合を早期発見し、容易に対処しやすい
  28. Sanity Tests 28 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • 定義済みのテストを実行する (テストコードを作る必要なし) • 静的コード解析 (Static Analysis) が中心 • プログラムを実行することなく行う分析のこと • 具体的には以下 テスト名 テスト内容 compile Python Interpreter エラーが出ないこと ansible-doc ansible-doc コマンドでマニュアルが正しく表示されること PEP 8 PEP 8 で規定されたコーディング規約に則っていること pylint pylint (構文チェックツール) で分析してエラーがないこと ※詳細: https://docs.ansible.com/ansible/devel/dev_guide/testing_sanity.html
  29. Integration Tests 29 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • 試験用のPlaybook を実行し、想定挙動を確認する • 試験用の実行処理を記述する • assert 文により処理結果が想定通りであることを確認する • Python の知識は不要。Playbook を書ければ試験できる - name: Create user eos_user: name: ansibletest1 privilege: 15 role: network-operator state: present configured_password: test1 authorize: yes provider: "{{ cli }}" become: yes register: result - assert: that: - 'result.changed == true' - '"username" in result.commands[0]' - '"secret" in result.commands[0]' - '"role network-operator" in result.commands[1]' - '"privilege 15" in result.commands[2]' 1. 試験対象の処理を実行 2. 処理内容/結果が想定通りであることを確認 ※詳細: https://docs.ansible.com/ansible/devel/dev_guide/testing_integration.html
  30. Unit Tests 30 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • Python のテストコードを書いて実行する (Python の知識が必要) • Integration Tests はPlaybook 全体の動作確認。 一方で、Unit Tests はModule / Plugin 内で呼び出されるメソッド といった細かい粒度で挙動を確認できる • 内部的にpytest を利用している ※詳細: https://docs.ansible.com/ansible/devel/dev_guide/testing_units.html from ansible.modules.endy import sum def test_sum() assert sum(4, 5) == 9 # (前略) def sum(a, b) return a + b # (後略) 1. 試験したいモジュール (sum.py) 2. 試験用ファイル (test_sum.py)
  31. 環境を汚さないオプション 31 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. オプション 説明 --local ローカルで実行 --tox Python仮想環境で実行。 テストに必要なPythonの依存パッケージをインストール しても環境を汚さない。 --docker 推奨オプション。 Dockerコンテナを作成し、その中でテストを実行。 テストが終わったらコンテナを破棄。 環境を汚さない、テストの再現性を確保しやすいなどの メリットがある。
  32. Code Coverage 32 (C) Recruit Technologies Co., Ltd. - All

    rights reserved. • テストのカバー率を調査する機能 • テスト対象のスクリプト全行に対し、 どの行がテスト用スクリプトによって走査済みで、 どの行が未走査かを可視化する • 通常コマンドに --coverage オプションをつけると、 カバレッジデータを収集するようになる • カバー範囲の広さは、テストによる品質担保度合の目安になる 次スライドで、公式リポジトリに対して実行した結果を紹介します →
  33. Code Coverage (コンソール出力レポート) 33 (C) Recruit Technologies Co., Ltd. -

    All rights reserved. (tmp) [centos@ansibletower ansible]$ ansible-test coverage report Name Stmts Miss Branch BrPart Cover --------------------------------------------------------------------------------------- lib/ansible/__init__.py 3 0 0 0 100% lib/ansible/cli/scripts/ansible_cli_stub.py 99 76 32 2 19% lib/ansible/constants.py 93 87 10 0 6% lib/ansible/context.py 20 11 6 0 35% lib/ansible/errors/__init__.py 137 89 46 0 26% lib/ansible/errors/yaml_strings.py 12 0 0 0 100% lib/ansible/module_utils/__init__.py 0 0 0 0 100% lib/ansible/module_utils/_text.py 74 62 40 1 11% lib/ansible/module_utils/common/__init__.py 0 0 0 0 100% lib/ansible/module_utils/common/_collections_compat.py 7 0 0 0 100% lib/ansible/module_utils/common/collections.py 45 26 12 0 33% lib/ansible/module_utils/six/__init__.py 473 236 150 22 44% lib/ansible/release.py 5 0 0 0 100% lib/ansible/utils/__init__.py 2 0 0 0 100% lib/ansible/utils/context_objects.py 45 26 24 1 32% lib/ansible/utils/singleton.py 15 6 4 0 47% --------------------------------------------------------------------------------------- TOTAL 1030 619 324 26 34%
  34. Code Coverage (HTML出力レポート) 34 (C) Recruit Technologies Co., Ltd. -

    All rights reserved.
  35. 感想 35 (C) Recruit Technologies Co., Ltd. - All rights

    reserved.
  36. 感想 36 (C) Recruit Technologies Co., Ltd. - All rights

    reserved. • セッションの内容だけでなく、現地のエンジニアとの会話か らも多くの情報を仕入れることができた • 事前に4ヶ月間かけて英語を練習したが、会話には苦戦した。 語学学習は継続的な努力が大事と痛感した • 日本から一緒に参加した皆さまと仲良くなれて嬉しかった • 海外は自動化/CI/CDが進んでるのかと思いきや、意外と日 本と同じ感じでした。日本は出遅れてないとホッとしつつ も、道のりは長いなぁ、とあらためて認識(自動化は手段 であって目的ではないのは大前提) • MSは自動化の次元が違いました • 日本から来た皆様と交流できてよかったです。皆様の Ansible愛をとても感じました。一方で自分はAnsibleから 離れて長いので、もどかしさ↑
  37. 37 (C) Recruit Technologies Co., Ltd. - All rights reserved.

    おしまいです ご清聴ありがとうございました また来年(?)