サンプル問題と解説 (旧バージョン)

OPCEL認定試験(OpenStackの技術者認定試験)のサンプル問題と解説を掲載しています。

251: 管理・共有サービス

251.2 ダッシュボード(Horizon)とRESTful API からの出題

NEW !

OpenStackサービスにAPIを使用してアクセスする時に使用するトークンの取得方法として、正しいものを2つ選択してください。

  1. openstack token get
  2. openstack token issue
  3. openstack token start
  4. curl -v -s -X POST ${OS_AUTH_URL}/v3/auth/token?nocatalog -H "Content-Type:application/json" -d @userinfo.json

※この例題は実際のOPCEL認定試験とは異なります。
例題公開日:2019年6月25日

正解は「B. openstack token issue」と「D. curl -v -s -X POST ${OS_AUTH_URL}/v3/auth/token?nocatalog -H "Content-Type: application/json" -d @userinfo.json」です。

OpenStackのサービスにアクセスするための認証を行うために、最初に認証トークンを取得する必要があります。
認証トークン取得後、APIリクエストを送信する時には、HTTPヘッダの X-Auth-Token に取得した認証トークンを指定します。

認証トークンは下記の方法で取得することができます。

■ openstack token コマンドを使用する

$ openstack token issue --max-width 80
+------------+-----------------------------------------------------------------+
| Field      | Value                                                           |
+------------+-----------------------------------------------------------------+
| expires    | 2019-05-05T16:57:07+0000                                        |
| id         | gAAAAABczwfTabqeGcwfUBMDNAKGIHjkq953NLpLL8tOhE1R5rVbe0oaF8JDUVg |
|            | n-Ri8hfwSi9964sOcDgNV3Lgs7ldcdv7luk6vX_rDaXyHmoh_DjGHrT9_T_vPU1 |
|            | xzb3dCgytXki10xB7tlBYeWIEOHLiuDwPgBtsJ4l6b1tZFXBEjlCFHMSg       |
| project_id | ed314f1bd40843ecad2443d346089f77                                |
| user_id    | 204a669bc225479bbca708c1d76ca47d                                |
+------------+-----------------------------------------------------------------+

idフィールドに表示されている値が認証トークンです。

※ --max-width 80 は出力結果の表示幅を80に固定するために指定しています。

■ curl コマンドを使用する
(1) ユーザ情報を含んだJSON形式のファイルを準備する。

---- userinfo.json ----
{
  "auth": {
    "scope": {
      "project": {
        "domain": {
          "id": "default"
        },
        "name": "demo"
      }
    },
    "identity": {
      "password": {
        "user": {
          "domain": {
            "id": "default"
          },
          "password": "secret",
          "name": "demo"
        }
      },
      "methods": ["password"]
    }
  }
}
-----------------------

(2) curlコマンドを実行する。

$ curl -v -s -X POST http://172.16.0.125/identity/v3/auth/tokens?nocatalog \
-H "Content-Type: application/json" \
-d @userinfo.json
* About to connect() to 172.16.0.125 port 80 (#0)
*   Trying 172.16.0.125...
* Connected to 172.16.0.125 (172.16.0.125) port 80 (#0)
> POST /identity/v3/auth/tokens?nocatalog HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 172.16.0.125
> Accept: */*
> Content-Type: application/json
> Content-Length: 380
> 
* upload completely sent off: 380 out of 380 bytes
< HTTP/1.1 201 CREATED
< Date: Sun, 05 May 2019 16:00:02 GMT
< Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_wsgi/3.4 Python/2.7.5
< Content-Type: application/json
< Content-Length: 652
< X-Subject-Token: gAAAAABczwiC36fdWOJ4MxAbihSk2GJfyUfQ8vpdEmxE_Kpd_KWg31kPluif1yM5nWJcdDVjT296JeEkBkL3U3Gv5BEj8I-8AfdhEP6wFfpICCoBwz7JuqUMAmJmjtyYfe63_QqYstKNUkCHgRJ5jZpvQP-AnXBHV_IAlfQr7OsYNYYpgBixoek
< Vary: X-Auth-Token
< x-openstack-request-id: req-d07c00cc-7dc9-4ebd-b654-3fd39b0d2a2d
< Connection: close
< 
* Closing connection 0
{"token": {"is_domain": false, "methods": ["password"], "roles": [{"id": "46397dddce614c96a7e102fddd0fd718", "name": "member"}, {"id": "cd21e7337d3e40459ab7e10971393379", "name": "reader"}, {"id": "8632b11b02cd425ab5ade6dee4120012", "name": "anotherrole"}], "expires_at": "2019-05-05T17:00:02.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ed314f1bd40843ecad2443d346089f77", "name": "demo"}, "user": {"password_expires_at": null, "domain": {"id": "default", "name": "Default"}, "id": "204a669bc225479bbca708c1d76ca47d", "name": "demo"}, "audit_ids": ["VKXQD50YSuW0ZwE-LcKDxQ"], "issued_at": "2019-05-05T16:00:02.000000Z"}}

HTTPレスポンスヘッダの X-Subject-Token に指定されている値が認証トークンです。

APIリクエストを送信する時に、取得した認証トークンをHTTPヘッダの X-Auth-Token に指定します。


$ curl http://172.16.0.125:8080/v1/AUTH_ed314f1bd40843ecad2443d346089f77/ \
-H 'X-Auth-Token: gAAAAABczwjriByuCQuGnf0LFWbILU-6I8qxZQdXd-nX5ewTT2RXIwEYLlU4nOFirq59iewjmXwqrWHgom2NxhMyvjO0c52pcJ_iw-BnCrNVupaEY4I5kqiwfqmxX-3BZcKyyQ4aSugH8coVTSw9UUwOJwcqTMRn3as4DwF2PGnZ-XfjMAlkUZQ'

上記の例では、OpenStack Swift にアクセスしています。

それぞれの選択肢について説明します。

A. openstack token get
誤っています。
このようなコマンドはありません。

B. openstack token issue
正しい操作です。

C. openstack token start
誤っています。
このようなコマンドはありません。

D. curl -v -s -X POST ${OS_AUTH_URL}/v3/auth/token?nocatalog -H "Content-Type: application/json" -d @userinfo.json
正しい操作です。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea

例題解説の提供

株式会社デージーネット OSS研究室 大野公善

251.5 イメージサービス (Glance) からの出題

OpenStackにアップロードされている仮想マシンイメージの一覧を表示する方法のうち正しいものを選択してください。

  1. openstack image list
  2. cinder list
  3. glance image-list
  4. openstack image show

※この例題は実際のOPCEL認定試験とは異なります。
例題公開日:2019年3月26日

正解は「A. openstack image list」と「C. glance image-list」です。

Glanceは、仮想マシンイメージの管理を担うサービスです。
仮想マシンイメージやISOイメージ等を保存し、インスタンス起動時に使用することができます。

仮想マシンイメージを管理するためには、openstack imageコマンド、または、glance コマンドを使用することができます。
openstack imageコマンドを使用して仮想マシンを管理する手順例を説明します。

仮想マシンイメージをアップロードします。

$ openstack image create \
 --disk-format qcow2 \
 --container-format bare \
 --file cirros-0.4.0-x86_64-disk.img \
 --max-width 80 \
 cirros-0.4.0-x86_64-disk
+------------------+-----------------------------------------------------------+
| Field            | Value                                                     |
+------------------+-----------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                          |
| container_format | bare                                                      |
| created_at       | 2019-03-08T08:47:47Z                                      |
| disk_format      | qcow2                                                     |
| file             | /v2/images/697872e3-c005-4215-a81e-f3cbee607e87/file      |
| id               | 697872e3-c005-4215-a81e-f3cbee607e87                      |
| min_disk         | 0                                                         |
| min_ram          | 0                                                         |
| name             | cirros-0.4.0-x86_64-disk                                  |
| owner            | 650dfee891294a8e8fd77501ea87615d                          |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f |
|                  | 248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0 |
|                  | 982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78',    |
|                  | os_hidden='False'                                         |
| protected        | False                                                     |
| schema           | /v2/schemas/image                                         |
| size             | 12716032                                                  |
| status           | active                                                    |
| tags             |                                                           |
| updated_at       | 2019-03-08T08:47:47Z                                      |
| virtual_size     | None                                                      |
| visibility       | shared                                                    |
+------------------+-----------------------------------------------------------+

--max-width 80 は、出力の表示幅を80文字に固定するオプションです。

アップロードした仮想マシンイメージの一覧を表示します。

$ openstack image list
+--------------------------------------+--------------------------+--------+
| ID                                   | Name                     | Status |
+--------------------------------------+--------------------------+--------+
| 697872e3-c005-4215-a81e-f3cbee607e87 | cirros-0.4.0-x86_64-disk | active |
+--------------------------------------+--------------------------+--------+

IDが828041a0-0bbe-4da0-87ed-b61939ab9fbf、名前がcirros-0.4.0-x86_64-disk の仮想マシンイメージがアップロードされていることがわかります。

アップロードした仮想マシンイメージの詳細を表示します。

$ openstack image show --max-width 80 cirros-0.4.0-x86_64-disk
または
$ openstack image show --max-width 80 697872e3-c005-4215-a81e-f3cbee607e87
+------------------+-----------------------------------------------------------+
| Field            | Value                                                     |
+------------------+-----------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                          |
| container_format | bare                                                      |
| created_at       | 2019-03-08T08:47:47Z                                      |
| disk_format      | qcow2                                                     |
| file             | /v2/images/697872e3-c005-4215-a81e-f3cbee607e87/file      |
| id               | 697872e3-c005-4215-a81e-f3cbee607e87                      |
| min_disk         | 0                                                         |
| min_ram          | 0                                                         |
| name             | cirros-0.4.0-x86_64-disk                                  |
| owner            | 650dfee891294a8e8fd77501ea87615d                          |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f |
|                  | 248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0 |
|                  | 982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78',    |
|                  | os_hidden='False'                                         |
| protected        | False                                                     |
| schema           | /v2/schemas/image                                         |
| size             | 12716032                                                  |
| status           | active                                                    |
| tags             |                                                           |
| updated_at       | 2019-03-08T08:47:47Z                                      |
| virtual_size     | None                                                      |
| visibility       | shared                                                    |
+------------------+-----------------------------------------------------------+

アップロードした仮想マシンイメージを削除します。


$ openstack image delete 697872e3-c005-4215-a81e-f3cbee607e87


それぞれの選択肢について説明します。
A. openstack image list
正解です。

B. cinder list
誤っています。
Cinderはボリュームの管理を担うサービスです。
cinder listは、登録されているボリュームの一覧を表示します。

C. glance image-list
正解です。
仮想マシンイメージの管理はglanceコマンドでも行うことができます。

$ glance image-list
+--------------------------------------+--------------------------+
| ID                                   | Name                     |
+--------------------------------------+--------------------------+
| b532852d-b145-49aa-bb5d-1ecab06e8fd4 | cirros-0.4.0-x86_64-disk |
+--------------------------------------+--------------------------+

D. openstack image show
誤っています。
上記で説明した通り openstack image show は、仮想マシンイメージの詳細を表示します。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の提供

株式会社デージーネット OSS研究室 大野公善

251.1 アイデンティティサービス、認証と認可(Keystone) からの出題

OpenStackのプロジェクト proj01 に、ユーザ opcel を割り当てます。
下記の手順のうち、誤っているものを選択してください。

  1. ユーザを追加します。
    $ openstack user create opcel
  2. 作成したユーザのパスワードを設定します。
    $ openstack user password set --password secret opcel
  3. プロジェクト proj01 を作成します。
    $ openstack project create proj01
  4. ユーザ opcel をプロジェクト proj01 に割り当てます。
    $ openstack role add --user opcel --project proj01 member

※この例題は実際のOPCEL認定試験とは異なります。
例題公開日:2019年2月18日

正解は「B. 作成したユーザのパスワードを設定します」です。

それぞれの選択肢について説明します。

1. ユーザを追加します。
$ openstack user create opcel
正しい手順です。

$ openstack user create opcel
No password was supplied, authentication will fail when a user does not have a password.
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 74ec5c24c4704f15aa86fce2ec1024ac |
| name                | opcel                            |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

本手順では、パスワードを設定せずにユーザが作成されます。

2. 作成したユーザのパスワードを設定します。
$ openstack user password set --password secret opcel
誤っています。

openstack user password set は、カレントユーザのパスワードを変更するコマンドです。
指定したユーザのパスワードを変更する場合、openstack user set コマンドを使用します。

$ openstack user set --password secret opcel

本手順では、opcel ユーザのパスワードを secret に設定しています。

3. プロジェクト proj01 を作成します。
$ openstack project create proj01
正しい手順です。

$ openstack project create proj01
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 7cb04274bcbb4bc99870c71eafb6b73a |
| is_domain   | False                            |
| name        | proj01                           |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+

4. ユーザ opcel をプロジェクト proj01 に割り当てます。
$ openstack role add --user opcel --project proj01 member
正しい手順です。

$ openstack role add --user opcel --project proj01 member

設定した内容は下記のコマンドで確認することができます。

$ openstack role assignment list --name --user opcel
+--------+---------------+-------+----------------+--------+--------+-----------+
| Role   | User          | Group | Project        | Domain | System | Inherited |
+--------+---------------+-------+----------------+--------+--------+-----------+
| member | opcel@Default |       | proj01@Default |        |        | False     |
+--------+---------------+-------+----------------+--------+--------+-----------+

ユーザ opcel が、プロジェクト proj01 に割り当てられていることが確認できます。

ユーザ、プロジェクトの追加は、OpenStackダッシュボード(Horizon)から行うこともできます。
ダッシュボードからの手順も確認しておきましょう。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の提供

株式会社デージーネット OSS研究室 大野公善

251.4 オーケストレーション (Heat)からの出題

Heat Orchestration Templateの最も上位の階層を構成する要素は、次のうちどれか。2つ選びなさい。

  1. constraints
  2. parameters
  3. types
  4. conditions

※この例題は実際のOPCEL認定試験とは異なります。
例題公開日:2018年11月16日

OpenStackは、オーケストレーションサービス(Heat)を提供しています。
サービスの利用者は、YAML形式のテンプレート(HOT:Heat Orchestration Template)に仮想サーバーや仮想ネットワークなど構築したいリソースを定義します。Heatは、このHOTテンプレートの記述内容を元にオーケストレーション機能を実行します。

以下は、HOTテンプレートの最上位階層を構成する要素とその説明です。

・heat_template_version
 YAML形式のHOTテンプレートのバージョンを定義
・description
 HOTテンプレートの説明
・parameter_groups
 入力パラメータの順序やグループを定義
・parameters
 入力パラメータを定義
・resources
 リソースを定義
・outputs
 出力パラメータを定義
・conditions
 状態を定義

正解は「B. parameters」と「D. conditions」です。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の提供

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.5 イメージサービス (Glance)からの出題

イメージサービス(glance)を構成する各コンポーネントの説明として正しいのは次のうちどれか。2つ選びなさい。

  1. glance registryは、イメージに紐づくメタデータを管理します。
  2. glance storeは、イメージに紐づくメタデータを格納します。
  3. glance apiは、リクエストを受け付け、イメージを引き渡します。
  4. glance databaseは、OSイメージを格納します。

※この例題は実際のOPCEL認定試験とは異なります。

正解は「A. glance registryは、イメージに紐づくメタデータを管理します。」と「C. glance apiは、リクエストを受け付け、イメージを引き渡します。」です。

イメージサービス(glance)は、OSイメージを管理するためのOpenStackのコンポーネントで、イメージの登録や削除を行うことができます。

例題の選択肢の説明は、以下の通りです。

A. glance registryは、イメージに紐づくメタデータを管理します。
本選択肢は「正解」です。

B. glance storeは、イメージに紐づくメタデータを格納します。
glance storeは、Cinder、SWIFTなどの様々なドライバーをサポートし、OSイメージを格納しますが、イメージに紐づくメタデータの格納はしません。
よって、本選択肢は「不正解」です。

C. glance apiは、リクエストを受け付け、イメージを引き渡します。
本選択肢は「正解」です。

D. glance databaseは、OSイメージを格納します。
glance databaseは、各イメージに紐づくメタデータを格納しますが、OSイメージは格納しません。
よって、本選択肢は「不正解」です。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の提供

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.1 アイデンティティサービス、認証と認可(Keystone)からの出題

以下のプロパティ名のうち、コンピュートサービス (Nova)のクォータ設定ではないものを1つ選びなさい。

  1. cores
  2. snapshots
  3. security-groups
  4. key-pairs

※この例題は実際のOPCEL認定試験とは異なります。

答えは 「B. snapshots」 です。

例題の選択肢の説明は、以下の通りです。
A. cores
 “cores”は、プロジェクトごとのインスタンスに許容される仮想CPU(コア数)を表すプロパティ名です。
 本選択肢は、コンピュートサービス (Nova)のクォータ設定です。そのため、本選択肢は不正解です。

B. snapshots
 “snapshots”は、テナントごとに許容されるブロックストレージスナップショット数を表すプロパティ名です。
 本選択肢は、ブロックストレージ (Cinder)のクォータ設定です。そのため、本選択肢は正解です。

C. security-groups
 “security-groups”は、プロジェクトごとに許容されるセキュリティグループ数を表すプロパティ名です。
 本選択肢は、コンピュートサービス (Nova)のクォータ設定です。そのため、本選択肢は不正解です。

D. key-pairs
 “key-pairs”は、ユーザー毎に許容されるキーペア数を表すプロパティ名です。
 本選択肢は、コンピュートサービス (Nova)のクォータ設定です。そのため、本選択肢は不正解です。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の作成

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.2 ダッシュボード(Horizon)とRESTful APIからの出題

OpenStackのRESTful APIで使用する認証トークンの値をKeystoneより取得する場合に、どのHTTPレスポンスヘッダーを使用して認証トークンの値が返却されるか。

  1. X-Auth-Token
  2. X-API-Token
  3. X-Subject-Token
  4. X-Distribution

※この例題は実際のOPCEL認定試験とは異なります。

答えは 「C. X-Subject-Token」 です。

OpenStackのRESTful APIを使用することで、OpenStack上でインスタンスの起動、イメージの作成、コンテナーの作成等の操作をすることが可能です。
操作のためのRESTful APIリクエストの送信時に認証トークンを利用します。認証トークンは一定時間(時間設定可能)経過すると期限切れとなります。

例題の選択肢の説明は、以下の通りです。

A. X-Auth-Token
各種操作を行うためにOpenStackサービスへRESTful APIでアクセスする場合(APIリクエストを送信する場合)、「X-Auth-Token」ヘッダーに認証トークンを指定します。そのため、本選択肢は誤りです。

B. X-API-Token
OpenStackにこのようなヘッダーはありません。そのため、本選択肢は誤りです。

C. X-Subject-Token
OpenStackのRESTful APIで使用する認証トークンの値をKeystoneより取得する場合、「X-Subject-Token」ヘッダーを使用して認証トークンは返却されます。

D. X-Distribution
「X-Distribution」ヘッダーにはLinuxのディストリビューションが指定され、返却されます。(例 X-Distribution: Ubuntu)
そのため、本選択肢は誤りです。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の作成

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.5 イメージサービス (Glance)からの出題

cloud-initの説明として正しいのは次のうちどれか。3つ選びなさい。

  1. メタデータから仮想マシンを自動設定できる。
  2. 仮想マシンのauthorized_keysにSSH鍵を追加できる。
  3. ルートパーティションのサイズを変更できる。
  4. 設定ファイルはXML形式をサポートしている。

※この例題は実際のOPCEL認定試験とは異なります。

正解は「A. メタデータから仮想マシンを自動設定できる。」「B. 仮想マシンのauthorized_keysにSSH鍵を追加できる。」と「C. ルートパーティションのサイズを変更できる。」です。

OpenStack に必要な Linuxイメージ要件の幾つか(A、B、C)をcloud-initで満たすことができます。

例題の選択肢の説明は、以下の通りです。

A. メタデータから仮想マシンを自動設定できる。
  cloud-initは、仮想マシンを作成する際にメタデータとユーザーデータを利用して仮想マシンを自動設定できます。
  そのため、本選択肢は「正解」です。

B. 仮想マシンのauthorized_keysにSSH鍵を追加できる。
  cloud-initを利用して ~/.ssh/authorized_keys にSSH公開鍵を追加することでSSHログインが可能となります。
  そのため、本選択肢は「正解」です。

C. ルートパーティションのサイズを変更できる。
  仮想マシンイメージ作成時のディスク容量より大きなディスク容量のフレーバーを指定して仮想マシンを起動した場合、cloud-initはルートパーティションのサイズ変更を行います。
  そのため、本選択肢は「正解」です。

D. 設定ファイルはXML形式をサポートしている。
  cloud-initの設定ファイルである /etc/cloud/cloud.cfg はYAML形式をサポートしています。
  そのため、本選択肢は「不正解」です。

□関連リンク
OPCEL認定試験の出題範囲:https://opcel.org/examarea_v2

例題解説の提供

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.3 モニタリング(Ceilometer)からの出題

コントローラーノード上で動作しOpenStackの各サービスのリソース使用状況を、REST API経由で周期的に収集するエージェントは以下のうちどれか。

  1. ceilometer-agent-compute
  2. ceilometer-agent-central
  3. ceilometer-agent-notification
  4. ceilometer-agent-ipmi

※この例題は実際のOPCEL認定試験とは異なります。

答えは「B. ceilometer-agent-central」です。

Ceilometerは、OpenStack上のリソース使用状況を計測、収集するコンポーネントです。

収集したデータは、ユーザー課金、リソーストラッキング等に利用することができます。

例題の選択肢であるエージェントの説明は、以下の通りです。

  1. ceilometer-agent-compute
    本エージェントは、各Compute(コンピュート)ノードで実行され、インスタンスの使用状況をポーリングします。
  2. ceilometer-agent-central
    本エージェントは、Controller(コントローラー)ノードで実行され、OpenStackサービスのリソース使用状況をポーリングします。
  3. ceilometer-agent-notification
    本エージェントは、OpenStackサービスから通知されるメッセージを収集します。
  4. ceilometer-agent-ipmi
    本エージェントは、実行されているノードのIPMI情報をポーリングします。
例題解説の作成

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.5 イメージサービス (Glance)からの出題

イメージサービスにおいて、コンピュートインスタンスのイメージキャッシュを設定された最大値以下に保つプログラムは以下のうちどれか。

  1. cache pruner
  2. cache keeper
  3. image cache keeper
  4. capacity cache

※この例題は実際のOPCEL認定試験とは異なります。

正解は「A. cache pruner」です。
  1. cache pruner
    イメージサービスにおいて、コンピュートインスタンスのイメージキャッシュを設定された最大値以下に保つプログラムです。
  2. cache keeper
    cache keeperというプログラムはありません。
  3. image cache keeper
    image cache keeperというプログラムはありません。
  4. capacity cache
    capacity cacheは、コンピュートインスタンスをどのホストで開始するのかを決める際に利用されます。

なお、イメージキャッシュの最大値は、image_cache_max_size オプションによって設定できます。イメージサービスの設定ファイルは、デフォルトでは /etc/glance/glance-cache.confにあります。

例題解説の提供

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.1 アイデンティティサービス、認証と認可(Keystone)からの出題

API利用権限を設定するKeystoneの設定ファイルは以下のうちどれか。

  1. default_catalog.templates
  2. keystone-api.conf
  3. policy.json
  4. keystone.conf

※この例題は実際のOPCEL認定試験とは異なります。

答えは「C. policy.json」です。
  1. default_catalog.templates
    default_catalog.templatesは、エンドポイントが定義されているファイルです。
  2. keystone-api.conf
    このような名称のファイルはありません。
  3. policy.json
    policy.jsonは、API利用権限を設定する設定ファイルです。
  4. keystone.conf
    keystone.confは、keystone全般の設定が記載された設定ファイルです。

なお、policy.jsonは、Keystoneだけでなく、NovaなどOpenStackの各コンポーネント毎にあり、各種操作に必要となる権限を設定することができ、格納先は以下のディレクトリです。

/etc/<コンポーネント>/policy.json
例:/etc/keystone/policy.json

policy.jsonはそのファイル名の通り、JSON形式で記載され、各ポリシーは"<target名>":"<rule名>"といった形で定義されています。

例:"identity:get_service": "rule:admin_required",

例題解説の作成

LPI-Japan テクノロジー・ディレクター 和田 真輝

251.4 オーケストレーション(Heat)からの出題

heat_template_version キーに指定する値を1つ選びなさい。

  1. OS::NOVA::Server
  2. 2015-10-15
  3. YAML1.2
  4. heat-api-5.0

※この例題は実際のOPCEL認定試験とは異なります。

答えは「B. 2015-10-15」です。

HOT(Heat Orchestration Template)形式のテンプレートに記述する「heat_template_version」キーの値は、内容がHOTテンプレートであるであることを示すとともに、指定した値のバージョンの機能を使用していることを示します。例えばLiberty版では次の4通りのうちのいずれかのバージョンを指定可能です。

2015-10-15、2015-04-30、2014-10-16、2013-05-23

したがって、選択肢Bは正解です。
「OS::NOVA::Server」はHOTテンプレートのresourcesセクションの記述例です。したがって、選択肢Aは誤りです。
「YAML1.2」はYAMLのバージョンを、「heat-api-5.0」はheat-apiのバージョンを表します。したがって、選択肢CとDは誤りです。

例題解説の提供

OPCELアカデミック認定校 有限会社ナレッジデザイン
OPCEL認定プロフェッショナル 大竹 龍史 氏

1998年(有)ナレッジデザイン設立。Linux、Solaris の講師および、LPI対応コースの開発/実施。
著書に『OpenStack構築運用トレーニングテキスト - OPCEL認定試験対応』(共著、ナレッジデザイン刊)、『Linux教科書 LPIC レベル1 スピードマスター問題集』(共著、翔泳社刊)、『Linux教科書 LPIC レベル2 スピードマスター問題集』(翔泳社刊)。月刊誌『日経Linux』(日経BP社刊)およびWebメディア『@IT自分戦略研究所』(ITmedia)でLPIC対策記事を連載。

251.5 イメージサービス (Glance)からの出題

virt-sysprepコマンドについての正しい説明を1つ選びなさい。

  1. ホストOS上で実行し、インスタンスイメージの中のMACアドレスを削除する
  2. ホストOS上で実行し、sshホストキーを作成する
  3. インスタンスの中で実行され、公開鍵をインスタンスにコピーする
  4. インスタンスの中で実行され、起動時にデフォルトユーザアカウントを作成する

※この例題は実際のOPCEL認定試験とは異なります。

正解は「A. ホストOS上で実行し、インスタンスイメージの中のMACアドレスを削除する」です。

virt-sysprepコマンドはホストOS上で実行され、インスタンス(ゲストOS)のディスクイメージを編集することができます。
OpenStackでは、主にユーザーが独自のカスタムイメージを作成する際に使用されます。
システム構成情報(MACアドレス、sshホストキー、ユーザーアカウント等)が無い事がカスタムイメージの条件の1つなので、このコマンドを用いて構成情報を削除します。
したがって、選択肢Aが正解であり、選択肢Bは誤りです。
選択肢C、Dはいずれもcloud-initの機能であるため、誤りです。

例題解説の提供

OPCELアカデミック認定校 有限会社ナレッジデザイン
OPCEL認定プロフェッショナル 市来 秀男 氏

2001年4月、ナレッジデザインに入社。2015年からOpenStackの講師として登壇し、OpenStackに関係する研修プランやテキスト、資料作成等の業務に携わっている。並行してLinux(LPI対応コース)の講師も担当。また、高負荷を意識したLAMPによるWebアプリケーション開発(サーバー構築からスマートフォンアプリ開発まで)の研修を大手IT企業に提供し、講師としても参加している。
著書に『OpenStack構築運用トレーニングテキスト - OPCEL認定試験対応』(共著、ナレッジデザイン刊)、月刊誌『日経Linux』(日経BP社刊)でLPIC対策記事を連載。

251.2 ダッシュボード(Horizon)とRESTful APIからの出題

次の情報のうち、REST APIを介して取得できるものを2つ選びなさい。

  1. OpenStackディストリビューション名
  2. サービスカタログ
  3. インスタンスのメタデータ
  4. 認証token

※この例題は実際のOPCEL認定試験とは異なります。

答えは「B. サービスカタログ」と「D. 認証token」です。

REST(REpresentational State Transfer)はWebアプリケーションのアーキテクチャスタイルとしてRoy Fielding氏が提唱したもので、現在、Webアプリケーション開発において普及しており、OpenStackのAPIとしても採用されています。RESTはリソースの指定(例:127.0.0.1:5000/v2.0/tokens)やリソースの操作(HTTP メソッドの例:GET, POST, PUT, DELETE)の定形化やメッセージの自己記述性(HTTPヘッダの例:「Content-Type: application/json」, 「X-Auth-Token: トークンID」)が主な特徴です。RESTは規格ではなくアーキテクチャスタイルであることから、そのスタイルに従ったAPIという意味でRESTful APIとも呼ばれます。

認証tokenとサービスカタログはREST APIである「http://127.0.0.1:5000/v2.0/tokens」(ローカルホストのIdentity API v2.0の場合)にテナント名、ユーザ名、パスワードを送信することで取得できます。
したがって、選択肢BとDは正解です。
OpenStackディストリビューション名はREST APIからは取得できません。したがって、選択肢Aは誤りです。
nova-apiはインスタンスからの「http://169.254.169.254」へのアクセスに対して、8775番ポートでメタデータサービスを提供しますが、これはサービスカタログにあるREST APIの8774番ポートではありません。したがって、選択肢Cは誤りです。

例題解説の提供

OPCELアカデミック認定校 有限会社ナレッジデザイン
OPCEL認定プロフェッショナル 大竹 龍史 氏

1998年(有)ナレッジデザイン設立。Linux、Solaris の講師および、LPI対応コースの開発/実施。
著書に『OpenStack構築運用トレーニングテキスト - OPCEL認定試験対応』(共著、ナレッジデザイン刊)、『Linux教科書 LPIC レベル1 スピードマスター問題集』(共著、翔泳社刊)、『Linux教科書 LPIC レベル2 スピードマスター問題集』(翔泳社刊)。月刊誌『日経Linux』(日経BP社刊)およびWebメディア『@IT自分戦略研究所』(ITmedia)でLPIC対策記事を連載。

251.1 アイデンティティサービス、認証と認可(Keystone)からの出題

ユーザ、テナント(プロジェクト)、ロールについての正しい説明を1つ選びなさい。

  1. テナントは2人以上のユーザのグループである。
  2. ロールはユーザに対して割り当てられ、テナントとは関係がない。
  3. ユーザはNovaインスタンスの所有者である。
  4. テナントはSwiftコンテナの所有者である。

※この例題は実際のOPCEL認定試験とは異なります。

答えは「D. テナントはSwiftコンテナの所有者である」です。

ユーザのグループをテナントまたはプロジェクトと呼びます。テナントとプロジェクトは同義です。新規にテナントを作成するとユーザが0人のテナントができます。そこにユーザを追加していきます。したがって、選択肢Aは誤りです。
ロールはユーザが実行できる操作を定義します。ロールはユーザとテナントの組み合わせに対して割り当てます。したがって、選択肢Bは誤りです。
ユーザがNovaインスタンスを生成したり、Swiftコンテナを作成した場合、ユーザが所属するテナントがインスタンスやコンテナの所有者となります。したがって、選択肢Cは誤り、選択肢Dは正解です。

例題解説の提供

OPCELアカデミック認定校 有限会社ナレッジデザイン
OPCEL認定プロフェッショナル 大竹 龍史 氏

1998年(有)ナレッジデザイン設立。Linux、Solaris の講師および、LPI対応コースの開発/実施。
著書に『OpenStack構築運用トレーニングテキスト - OPCEL認定試験対応』(共著、ナレッジデザイン刊)、『Linux教科書 LPIC レベル1 スピードマスター問題集』(共著、翔泳社刊)、『Linux教科書 LPIC レベル2 スピードマスター問題集』(翔泳社刊)。月刊誌『日経Linux』(日経BP社刊)およびWebメディア『@IT自分戦略研究所』(ITmedia)でLPIC対策記事を連載。

251.5 イメージサービス (Glance)からの出題

Glanceイメージのコンテナ形式がbareの場合、イメージのメタデータが格納される場所を1つ選びなさい。

  1. ディスクイメージファイルの中に格納される
  2. 管理用データベースに格納される
  3. /etc/glance/metadefsディレクトリ下のjsonファイルに格納される
  4. コンテナ形式がbareの場合はメタデータは格納できない

※この例題は実際のOPCEL認定試験とは異なります。

正解は「B. 管理用データベースに格納される」です。

ディスクイメージファイルがメタデータを含まないコンテナ形式がbareです。したがって、選択肢Aは誤りです。
ただし、「openstack image create」コマンドでイメージを登録する時に、あるいはイメージの登録後に「glance image-update」コマンドを実行する時に、「--property」オプションの指定により「キー=値」の形式でメタデータを管理用データベースに登録できます。

 例)--property hypervisor_type=kvm

したがって、選択肢Bは正解、選択肢Dは誤りです。
/etc/glance/metadefsディレクトリには事前に定義されたjson形式のメタデータファイルが用意されていますが、これは定義ファイルであって、登録するイメージのメタデータがこのファイルに格納される訳ではないので選択肢Cは誤りです。

例題解説の提供

OPCELアカデミック認定校 有限会社ナレッジデザイン
OPCEL認定プロフェッショナル 市来 秀男 氏

2001年4月、ナレッジデザインに入社。2015年からOpenStackの講師として登壇し、OpenStackに関係する研修プランやテキスト、資料作成等の業務に携わっている。並行してLinux(LPI対応コース)の講師も担当。また、高負荷を意識したLAMPによるWebアプリケーション開発(サーバー構築からスマートフォンアプリ開発まで)の研修を大手IT企業に提供し、講師としても参加している。
著書に『OpenStack構築運用トレーニングテキスト - OPCEL認定試験対応』(共著、ナレッジデザイン刊)、月刊誌『日経Linux』(日経BP社刊)でLPIC対策記事を連載。