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

Ansibleを学ぼう。Ansibleとは?

 Ansibleを学ぼう。Ansibleとは?

とある監視員

February 23, 2023
Tweet

Other Decks in Education

Transcript

  1. Ansibleを学ぼう。Ansibleとは?
    ― 継続的な構成変更・テストの自動化に向けて

    View Slide

  2. View Slide

  3. View Slide

  4. 管理サーバ
    変更対象
    サーバ
    - name: install httpd
    yum:
    name: httpd
    state: present
    ・・・
    プレイブック

    View Slide

  5. 管理サーバ
    変更対象
    サーバ
    - name: install httpd
    yum:
    name: httpd
    state: present
    ・・・
    プレイブック
    読み込ませる

    View Slide

  6. 管理サーバ
    変更対象
    サーバ
    - name: install httpd
    yum:
    name: httpd
    state: present
    ・・・
    プレイブック
    読み込ませる
    自動構築

    View Slide

  7. インフラ構成のコード化と構築の自動化のメリット
    構築作業の省力化が可能

    View Slide

  8. インフラ構成のコード化と構築の自動化のメリット
    構築作業の省力化が可能
    手動での構築作業による作業ミスを防ぐことが可能

    View Slide

  9. インフラ構成のコード化と構築の自動化のメリット
    コードによりインフラの構成が見える化、構成が把握しやすくなる

    View Slide

  10. インフラ構成のコード化と構築の自動化のメリット
    コードによりインフラの構成が見える化、構成が把握しやすくなる
    コードで記述することで再利用が容易 、他のシステムでも使い回せる

    View Slide

  11. なぜ? Ansibleが注目されているのか?

    View Slide

  12. なぜ? Ansibleが注目されているのか?
    Shell Script
    Power Shell

    View Slide

  13. なぜ? Ansibleが注目されているのか?
    Shell Script
    Power Shell
    満たす

    View Slide

  14. なぜ? Ansibleが注目されているのか?

    View Slide

  15. View Slide

  16. 手順書を作成
    手順書を見ながら
    手動で 構築作業を実施
    今までのインフラ構築
    必要に応じて変更作
    業を 手動で実施
    構成変更の履歴を ドキュメント
    を作成して管理

    View Slide

  17. 手順書を作成
    手順書を見ながら
    手動で 構築作業を実施
    今までのインフラ構築
    必要に応じて変更作
    業を 手動で実施
    構成変更の履歴を
    ドキュメントを作成して管理

    View Slide

  18. バージョン管理
    テスト
    Infrastructure as Code を用いたインフラ構築
    プロジェクトの自動

    インフラの構成をコード化し、
    バージョン管理システムで管理する
    本番環境に変更を加える前に、
    テスト環境で変更内容をテストする
    コードをバージョン管理システムに
    Push してから 本番環境に適用する
    までのテストや構築・変更作業を
    自動化する
    ソフトウェア開発で使用される 以下の手法をインフラに適用

    View Slide

  19. Infrastructure as Code 関連のツールの分類
    • Application Service
    • Deployment
    Orchestration
    • System Configuration
    Configuration
    • Cloud or VM
    • OS Install
    Bootstrapping
    他のサーバやロードバランサ
    などと連携させ、サービスを
    提供可能にする
    ミドルウェアの インストール・設定
    OSのインストールや
    仮想マシンの作成など

    View Slide

  20. Infrastructure as Code 関連のツールの分類
    • Application Service
    • Deployment
    Orchestration
    • System Configuration
    Configuration
    • Cloud or VM
    • OS Install
    Bootstrapping
    他のサーバやロードバランサ
    などと連携させ、サービスを
    提供可能にする
    ミドルウェアの インストール・設定
    OSのインストールや
    仮想マシンの作成など

    View Slide

  21. Configuration レイヤーのツール(構成管理ツール)
    ☛ OS 起動後に、主にミドルウェアのインストールや設定を行うツール
    Ansible や Chef、Puppet などが代表的なツール

    View Slide

  22. Configuration レイヤーのツール(構成管理ツール)
    宣言的 抽象化
    冪等性 収束化

    View Slide

  23. Configuration レイヤーのツール(構成管理ツール)
    宣言的 ☛ 処理の方法ではなく、システムの最終的なあるべき状態を記述する

    View Slide

  24. Configuration レイヤーのツール(構成管理ツール)
    ☛ OS ごとの設定方法の差異などは構成管理ツールが吸収する
    抽象化

    View Slide

  25. Configuration レイヤーのツール(構成管理ツール)
    ☛ 正しく構成されていない場合だけ実行し、正しく構成されている 場合は
    実行しないことで、何度実行しても同じ結果が得られる
    冪等性

    View Slide

  26. Configuration レイヤーのツール(構成管理ツール)
    ☛ ツールに任せておけば、システムはあるべき状態へ収束する
    収束化

    View Slide

  27. 構成管理ツールを使用するメリット①
    シェルスクリプトの場合
    ☛ OS ごとに異なるコマンドを、
    スクリプト作成者が
    使い分ける必要がある
    ☛ 冪等性を実現するため、
    if 文などで現状をチェック
    する必要がある
    ☛コマンドの差異や冪等性を
    考慮すると、スクリプトが
    複雑になる
    ☛ あるべき状態の記述のみで
    よく、具体的なコマンドを
    記述する必要がない
    ☛ ツールが冪等性を実現する
    ☛ コマンドの差異や冪等性を
    ツールに任せられるので、
    コードがシンプルになり、
    可読性が向上する
    構成管理ツールの場合

    View Slide

  28. 構成管理ツールを使用するメリット②
    仮想マシンテンプレートの場合
    ☛ VM の新規作成がファイル
    のコピーだけで完了する
    ☛ 同じテンプレートからは
    同じミドルウェア構成の
    システムしか作成できない
    ☛ 構成管理ツールを使わない
    場合は、テンプレート自体を
    手作業で作成する必要がある
    ☛新規作成だけでなく、
    既存システムの変更も可能
    ☛システムごとに個別に
    ミドルウェアの構成・設定を
    変更できる
    ☛テストツールと連携し、
    構成変更の結果を確認しつつ
    コードを作成できる
    構成管理ツールの場合

    View Slide

  29. ありがとうございました。
    おわり

    View Slide