構成管理ツール

ネットワーク上のサーバなどに対して、アプリケーションの自動インストールや設定の自動化を行うツールを構成管理ツールと呼びます。

代表的な構成管理ツール

  • Ansible
    • リモードデバイス通信にSSHを使用します。
  • Puppet
  • Chef
比較項目AnsiblePuppetChef
 開発組織RedHatPuppet LabsChef Software
 使用言語PythonRubyRuby
 アーキテクチャエージェントレスエージェントエージェント
 構成管理方法Push型通信Pull型通信Pull型通信
 制御ファイルplaybook
({プレイ{タスク)
manifestRecipe
 コード記述言語YAML独自言語Ruby
 使用プロトコルSSH/NETCONFHTTP/HTTPSHTTP/HTTPS
 サーバ側待ち受けポートTCP 8140TCP 10002

自動管理

ネットワークの自動化によるメリットとして次の2つを挙げています。

  • デバイス構成の自動化…デバイス構成の設定を自動化することで、設定ミスを減らせるメリットがあります。
  • デバイスのソフトウェアの管理…デバイス管理の作業負荷を軽減することができます。

REST API

REST(REpresentational State Transfer)とは、URLでデバイスを指定し、デバイスの設定や情報収集を行うための仕組みのことです。プロトコルはHTTPまたはHTTPSを使用します。

  • REST APIが対応しているデータフォーマットはJSON形式とXML形式
  • ステートレスクライアント/サーバプロトコル
  • 階層構造

HTTPリクエスト

データに対する基本処理のことを、CRUD(クラッド)といいます。

リクエストメソッド動作CRUD
POST新規作成C(Create)
GET読み出しR(Read)
PUT更新(置き換え)U(Update/Replace)
PATCH更新(一部変更)U(Update/Modify)
DELETE削除D(Delete)

HTTPリクエストヘッダ

Accepttext/html、application/jsonクライアントが理解できるコンテンツタイプ
Accept-Encodinggzip、deflate、brクライアントがサポートする圧縮形式
Accept-Languageja、en-USクライアントが理解できる自然言語

HTTPレスポンスヘッダ

content-encodingbrサーバが応答に使用した圧縮形式
content-typetext/htmlサーバが応答に使用したコンテンツタイプ

HTTPステータスコード

クラス意味
情報レスポンスリクエストを受理し、処理を継続している
100:現時点まで問題はなく、クライアントはリクエストを継続できる
成功レスポンスリクエストを理解し、処理された
200:リクエストが成功した
リダイレクト要求されたリソースの代わりに新しいリソースを使用した
301:リクエストしたリソースが恒久的に移動した
クライアントエラークライアントが送信したリクエストに問題があった
404:リクエストしたリソースが見つからない
サーバエラーサーバ上のエラーでリクエストの処理に失敗した
500:サーバの内部でエラーが発生した

URI

URIとは、リソースを識別する名前の統一された書式です。HTTPでは、リクエストするリソースをURIで指定します。

(使用するプロトコル)://(APIを提供するホスト名、IPアドレス)/(APIのリソース名)/(APIに渡すパラメータ)

JSON

JSON(JavaScript Object Notation)は、テキスト形式(他にはXML、CSV)のデータフォーマットの一つです。

人間にもプログラムにも扱いやすいフォーマットのため、コントローラとプログラムの間の通信(NBI)で使われる

  • keyとvalueの間は:
  • データの区切りは,
  • オブジェクトは{}で囲む(順番関係ないデータ)
  • 配列は[]で囲む(順番関係あるデータ)
  • キーは「”(ダブルクオーテーション)」で囲む
  • 値が数値の場合はそのまま記述し、値が文字列の場合は「”(ダブルクオーテーション)」で囲む