構成管理ツール
ネットワーク上のサーバなどに対して、アプリケーションの自動インストールや設定の自動化を行うツールを構成管理ツールと呼びます。
代表的な構成管理ツール
- Ansible
- リモードデバイス通信にSSHを使用します。
- Puppet
- Chef
比較項目 | Ansible | Puppet | Chef |
---|---|---|---|
開発組織 | RedHat | Puppet Labs | Chef Software |
使用言語 | Python | Ruby | Ruby |
アーキテクチャ | エージェントレス | エージェント | エージェント |
構成管理方法 | Push型通信 | Pull型通信 | Pull型通信 |
制御ファイル | playbook ({プレイ{タスク) | manifest | Recipe |
コード記述言語 | YAML | 独自言語 | Ruby |
使用プロトコル | SSH/NETCONF | HTTP/HTTPS | HTTP/HTTPS |
サーバ側待ち受けポート | – | TCP 8140 | TCP 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リクエストヘッダ
Accept | text/html、application/json | クライアントが理解できるコンテンツタイプ |
Accept-Encoding | gzip、deflate、br | クライアントがサポートする圧縮形式 |
Accept-Language | ja、en-US | クライアントが理解できる自然言語 |
HTTPレスポンスヘッダ
content-encoding | br | サーバが応答に使用した圧縮形式 |
content-type | text/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の間は:
- データの区切りは,
- オブジェクトは{}で囲む(順番関係ないデータ)
- 配列は[]で囲む(順番関係あるデータ)
- キーは「”(ダブルクオーテーション)」で囲む
- 値が数値の場合はそのまま記述し、値が文字列の場合は「”(ダブルクオーテーション)」で囲む