例題解説(Ver.3.0)

OPCEL認定試験(OpenStackの技術者認定試験)の例題解説を掲載しています。

251: 管理・共有サービス

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

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.4 イメージサービス (Glance) からの出題

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

  1. openstack image list
  2. openstack image show
  3. openstack volume list
  4. openstack volume show

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

正解は「A. openstack image list」です。

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

仮想マシンイメージを管理するためには、openstack imageコマンド、OpenStackのバージョンによっては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       | 2021-10-04T04:39:41Z                                      |
| disk_format      | qcow2                                                     |
| file             | /v2/images/1dacd4fd-1c03-4a60-92f9-dff6bb962419/file      |
| id               | 1dacd4fd-1c03-4a60-92f9-dff6bb962419                      |
| min_disk         | 0                                                         |
| min_ram          | 0                                                         |
| name             | cirros-0.4.0-x86_64-disk                                  |
| owner            | 13780649e574443f92ac49a5725a2276                          |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f |
|                  | 248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0 |
|                  | 982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78',    |
|                  | os_hidden='False', owner_specified.openstack.md5='443b762 |
|                  | 3e27ecf03dc9e01ee93f67afe', owner_specified.openstack.obj |
|                  | ect='images/cirros-0.4.0-x86_64-disk', owner_specified.op |
|                  | enstack.sha256='a8dd75ecffd4cdd96072d60c2237b448e0c8b2bc9 |
|                  | 4d57f10fdbc8c481d9005b8',                                 |
|                  | self='/v2/images/1dacd4fd-1c03-4a60-92f9-dff6bb962419'    |
| protected        | False                                                     |
| schema           | /v2/schemas/image                                         |
| size             | 12716032                                                  |
| status           | active                                                    |
| tags             |                                                           |
| updated_at       | 2021-10-04T04:39:42Z                                      |
| visibility       | shared                                                    |
+------------------+-----------------------------------------------------------+

--max-width 80 は、出力の表示幅を80文字に固定するオプションです。
「openstack image list」コマンドを実行して、イメージ一覧を出力してみましょう。

イメージの詳細情報を表示するには「openstack image show」コマンドを実行します。先ほど登録したイメージの詳細情報を確認してみましょう。「openstack image show」の後にはイメージ名かイメージIDを指定できます。

$ openstack image show --max-width 80 cirros-0.4.0-x86_64-disk 
+------------------+-----------------------------------------------------------+
| Field            | Value                                                     |
+------------------+-----------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                          |
| container_format | bare                                                      |
| created_at       | 2021-10-04T04:39:41Z                                      |
| disk_format      | qcow2                                                     |
| file             | /v2/images/1dacd4fd-1c03-4a60-92f9-dff6bb962419/file      |
| id               | 1dacd4fd-1c03-4a60-92f9-dff6bb962419                      |
| min_disk         | 0                                                         |
| min_ram          | 0                                                         |
| name             | cirros-0.4.0-x86_64-disk                                  |
| owner            | 13780649e574443f92ac49a5725a2276                          |
| properties       | os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f |
|                  | 248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0 |
|                  | 982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78',    |
|                  | os_hidden='False', owner_specified.openstack.md5='443b762 |
|                  | 3e27ecf03dc9e01ee93f67afe', owner_specified.openstack.obj |
|                  | ect='images/cirros-0.4.0-x86_64-disk', owner_specified.op |
|                  | enstack.sha256='a8dd75ecffd4cdd96072d60c2237b448e0c8b2bc9 |
|                  | 4d57f10fdbc8c481d9005b8'                                  |
| protected        | False                                                     |
| schema           | /v2/schemas/image                                         |
| size             | 12716032                                                  |
| status           | active                                                    |
| tags             |                                                           |
| updated_at       | 2021-10-04T04:39:42Z                                      |
| visibility       | shared                                                    |
+------------------+-----------------------------------------------------------+

アップロードしたイメージが不要なら、次のコマンドを実行して削除してください。


$ openstack image delete cirros-0.4.0-x86_64-disk 


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

B. openstack image show
このコマンドはイメージの詳細を出力するコマンドです。誤っています。

C. openstack volume list
このコマンドはボリュームの一覧を出力するコマンドです。誤っています。

D. openstack volume show
このコマンドはボリュームの詳細情報を出力するコマンドです。誤っています。

OpenStackのバージョンによっては仮想マシンイメージの管理はglanceコマンドでも行うことができます。
最新のバージョンでも実行できますが、openstackコマンドを使うことが推奨されています。

% glance image-list
+--------------------------------------+--------------------------+
| ID                                   | Name                     |
+--------------------------------------+--------------------------+
| 1dacd4fd-1c03-4a60-92f9-dff6bb962419 | cirros-0.4.0-x86_64-disk |
+--------------------------------------+--------------------------+

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

例題解説の提供

株式会社デージーネット 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

例題解説の提供

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

251.3 オーケストレーション (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

例題解説の提供

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

例題解説の作成

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

例題解説の作成

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

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

cloud-initの説明として誤っているものを一つ選びなさい。

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

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

正解は「D. 設定ファイルはXML形式をサポートしている。」です。

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

例題解説の提供

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

251.4 イメージサービス (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にあります。

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

例題解説の提供

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",

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

例題解説の作成

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

251.3 オーケストレーション(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認定試験の出題範囲:https://opcel.org/examarea

例題解説の提供

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

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

251.4 イメージサービス (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認定試験の出題範囲:https://opcel.org/examarea

例題解説の提供

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認定試験の出題範囲:https://opcel.org/examarea

例題解説の提供

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認定試験の出題範囲:https://opcel.org/examarea

例題解説の提供

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

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

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

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

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

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

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

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

 例)--property hypervisor_type=kvm

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

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

例題解説の提供

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

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