Glynn Foster著
2015年1月公開
|
このラボは、OpenStackを使用してエンタープライズ・プライベート・クラウドをデプロイする方法を説明する2部構成の連載記事のパート2です。先にパート1、"OpenStackによるエンタープライズ・プライベート・クラウドを20分でデプロイする方法"を終了してからこのラボを実行するようにしてください。
このラボでは、Oracle OpenWorld 2014のHands-On Labセッション9822で行った作業について説明します。最初にOracle Solaris 11のOpenStackの基本的な使用方法を説明した後、新しく作成した仮想マシン(VM)インスタンスにアプリケーションをインストールする方法を説明します。
OpenStackは広く使用されているオープン・ソースのクラウド・インフラストラクチャで、Oracle Solaris 11.2にはこれが統合されています。OpenStackには、Webベースのダッシュボードからデータセンター内のコンピューティング・リソース、ストレージ・リソース、ネットワーク・リソースを一元的に管理するためのさまざまなサービスが含まれています。
図1:リソース管理に便利なOpenStackのダッシュボード
OpenStackの各サービスを要約すると表1のようになります。
表1:OpenStackサービスサービス名 | 説明 |
---|---|
Nova | コンピューティングの仮想化 |
Cinder | ブロック・ストレージ |
Neutron | ソフトウェア定義型ネットワーク(SDN) |
Keystone | クラウド・サービス間の認証 |
Glance | イメージの管理とデプロイ |
Horizon | Webベースのダッシュボード |
このラボでは、OpenStackを使用して新しいVMインスタンスをデプロイし、そのインスタンスにOracle Database 12cをインストールします。インストールしたデータベースが正しく動作することを確認した後、ゴールデン・イメージを作成し、この環境のクローンをクラウド内ですばやく作成できるようにします。
このラボの後半では、Oracle Solaris 11に搭載されているコンプライアンス機能とセキュリティ機能の一部について説明し、クラウドで使用される一般的なコンプライアンス・ライフサイクルを実演します。また、外部の攻撃からVMを保護する方法についても説明します。
このラボで必要なものは次のとおりです。
root
パスワードはsolaris11
)solaris
とIPアドレス範囲10.158.56.0/21/repository/publishers/solaris
にあるOracle Solaris Image Packaging Systemリポジトリのクローン/root/
に配置)と、Oracle Database 12cのインストール用レスポンス・ファイル(/root/db_install.rsp
に配置)まず、ホストのOS上でターミナル・ウィンドウを開き、SSH接続を開始します。ユーザー/パスワードとしてroot/solaris11
を使用します。
# ssh root@10.158.56.x Password: Oracle Corporation SunOS 5.11 11.2 June 2014
Oracle Databaseをインストールする前に、インストール先となるVMインスタンスを作成する必要があります。
まず、ブラウザを開き、前述したIPアドレス(http://10.158.56.x/horizon
)を指定し、OpenStackのHorizonダッシュボードにログインします。ログインに使用するユーザー/パスワードはdba/oracledba
です。
図2:ダッシュボードのログイン画面
ログインに成功したら、Access & Security画面にナビゲートします。この画面では新しいSSHキーペアを作成できます。
図3:Access & Security画面
現在はキーペアが何も定義されていないため、「Import Keypair」ボタンをクリックしてImport Keypair画面を開きます(図4を参照)。
このラボでは、ラボの大域ゾーンのSSH公開キーを使用します。最初に次のコマンドを実行してキーを取得し、Import Keypair画面のPublic Keyフィールドにこのキーを入力します。
root@solaris:~# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0Khp4Th5VcKQW4LttqzKAR8O60gj43cB0CbdpiizEhXEbVgjI7IlnZlo9i SEFpJlnZrFQC8MU2L7Hn+CD5nXLT/uK90eAEVXVqwc4Y7IVbEjrABQyB74sGnJy+SHsCGgetjwVrifR9fkxFHg jxXkOunXrPMe86hDJRpZLJFGYZZezJRtd1eRwVNSHhJdZmUac7cILFJen/wSsM8TOSAkh+ZWEhwY3o08nZg2IW dMImPbwPwtRohJSH3W7XkDE85d7UZebNJpD9kDAw6OmXsY5CLgV6gEoUExZ/J4k29WOrr1XKR3jiRqQlf3Kw4Y uK9JUi/gPhg2lTOhISgJoelorQ== root@solaris
図4:Import Keypair画面
SSHキーペアのインポートに成功したら、次はこのインスタンス用のネットワークを作成します。メニューから「Networks」を選択して次の画面を開きます。
図5:Networks画面
現在はネットワークが何も定義されていないため、ネットワークを作成します。まず、「Create Network」ボタンをクリックします。
192.168.66.0/24のアドレス範囲を使用するmysubnet
という名前のサブネットを持つ、mynetwork
というネットワークを作成します。つまり、このネットワークを選択したインスタンスは、192.168.66.3から始まるこのアドレス範囲内に作成されるということです。
図6:Create Network画面
ネットワークを作成したら、Networks画面に表示されることを確認します。
図7:Networks画面
これで、新しいインスタンスを起動する準備ができました。メニューから「Instances」を選択して次の画面を表示します。
図8:Instances画面
「Launch Instance」ボタンをクリックして新しいインスタンスを起動します。
このインスタンスにはmyinstance
という名前を付けます。また、フレーバとして、medium
と呼ばれるOracle Solaris非大域ゾーンを指定します。フレーバは、このインスタンスに付与する必要があるリソースの規模を表します。図9を見ると、10GBのrootディスクと2,048MBのRAMが割り当てられる予定であることがわかります。このインスタンスは、パート1でアップロードしたイメージからブートすることにします。イメージはBase Zone
という名前でGlanceに格納されています。
図9:Launch Instance画面
Detailsタブの内容に問題がなければ、Access & Securityタブに切り替えます。このタブを表示すると、先ほど作成したキーペアがすでに選択されているため、何もせずにNetworkingタブに切り替えます。このタブでは、使用するネットワークとして「mynetwork
」を選択します。「Launch」ボタンをクリックします。
図10:Networkingタブ
しばらくすると、インスタンスが起動していることを確認できます。選択したサブネット・アドレス空間によっては、インスタンスのIPアドレスが多少異なる場合があります。
図11:インスタンスのステータスが"Active"であることを示す画面
これで、このインスタンスにログインできる状態になりました。このラボでは、内部ネットワーク・トポロジを設定するだけの簡単な方法を採用しました。一般的なクラウド環境では、外部ネットワークを設定し、VMが外部と通信できるようにします。このVMにアクセスするには、大域ゾーンを経由する必要があります。
root@solaris:~# ssh root@192.168.66.3 The authenticity of host '192.168.66.3 (192.168.66.3)' can't be established. RSA key fingerprint is 89:64:96:91:67:ab:6b:35:58:37:35:b8:ab:f3:e5:98. Are you sure you want to continue connecting (yes/no)?yes Warning:Permanently added '192.168.66.3' (RSA) to the list of known hosts. Last login:Thu Sep 11 00:33:57 2014 Oracle Corporation SunOS 5.11 11.2 June 2014 root@host-192-168-66-3:~# ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok -- -- net0/dhcp inherited ok -- 192.168.66.3/24 root@host-192-168-66-3:~# exit logout Connection to 192.168.66.3 closed.
インスタンスのプロビジョニングが終了しました。次はOracle Databaseをインストールします。データベースをインストールするには、先に満たしておくべき前提条件が多数あります。この演習ではその部分を実行します。この演習では、最小要件を満たす環境を作成し、(GUIを使用するインストールではなく)レスポンス・ファイルを使用してデータベースのサイレント・インストールを実行します。
まず、oracle
という新しいユーザーを追加し、2つのグループoinstall
とdba
をこのユーザーに割り当てます。
# useradd -m oracle 80 blocks # groupadd oinstall # groupadd dba # usermod -g oinstall -G dba oracle
次に、user.oracle
という新しいプロジェクトを作成し、適切なリソース管理を設定します。このラボでは、特定のプロセスで使用できるファイル記述子の最大値をデフォルトから増やす必要があります。
# projadd user.oracle # projmod -U oracle -sK "process.max-file-descriptor=(basic,65536,deny)" user.oracle # projmod -U oracle -sK "project.max-shm-memory=(priv,8589934592,deny)" user.oracle
依存関係にあるソフトウェアが正しくインストールされていることも確認します。Oracle Solaris 11.2では、oracle-rdbms-server-12-1-preinstall
という名前の新しいパッケージが追加されました。Oracle Databaseのインストールに必要な、依存関係にあるパッケージは、すべてこのパッケージに含まれています。このパッケージをインストールします。
# pkg install oracle-rdbms-server-12-1-preinstall Packages to install:11 Services to change:2 Create boot environment:No Create backup boot environment:No DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 11/11 254/254 5.0/5.0 0B/s PHASE ITEMS Installing new actions 644/644 Updating package state database Done Updating package cache 0/0 Updating image state Done Creating fast lookup database Done Updating package cache 1/1
次は、Oracle Databaseをインストールする場所を作成します。便宜上、インストール先は既存のZFS rootプールにしますが、インストール用のデータセットは新たに作成します。
# zfs create rpool/apps # zfs set mountpoint=/apps rpool/apps # zfs list rpool/apps NAME USED AVAIL REFER MOUNTPOINT rpool/apps 31K 31.4G 31K /apps
また、初めにoracle
サブディレクトリを作成し、oracle
ユーザーに適切な権限が付与されていることを確認します。
# mkdir /apps/oracle # chown -R oracle:dba /apps
最後に、oracleユーザーのパスワードをsolaris11
に設定し、このアカウントにログインします。
# passwd oracle # su - oracle
最初に、Oracle Databaseのインストール・ファイルをダウンロードする必要があります。Oracle Databaseソフトウェアのダウンロード・ページでライセンス契約を受諾した後、書込み可能な場所(oracle
ユーザーの$HOME
や/tmp
ディレクトリなど)に、各自のアーキテクチャに適した.zip
ファイルをダウンロードします。
ファイルのダウンロードが終わったら、.zip
ファイルを解凍します。
$ scp root@192.168.66.2:/files/* . $ unzip '*.zip' $ cd database
今回は、レスポンス・ファイルを使用してデータベースのサイレント・インストールを実行します。このインストールでは、(データベースのインストールと構成ではなく、)データベースのみのインストールでEnterprise Editionをインストールします。次の内容を含むdb_install.rsp
レスポンス・ファイルを作成します。
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=solaris UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/apps/oraInventory SELECTED_LANGUAGES=en ORACLE_HOME=/apps/oracle/oracledb12c ORACLE_BASE=/apps/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.BACKUPDBA_GROUP=dba oracle.install.db.DGDBA_GROUP=dba oracle.install.db.KMDBA_GROUP=dba SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true oracle.installer.autoupdates.option=SKIP_UPDATES
このレスポンス・ファイルは、各自の環境に合うように必要に応じて調整できます。
これで、Oracle Databaseインストーラを実行できます。
$ ./runInstaller -silent -responseFile /export/home/oracle/db_install.rsp Starting Oracle Universal Installer... Checking Temp space: must be greater than 180 MB. Actual 796 MB Passed Checking swap space: must be greater than 150 MB. Actual 1749 MB Passed [WARNING] [INS-13014] Target environment does not meet some optional requirements. CAUSE:Some of the optional prerequisites are not met.See logs for details. /tmp/OraInstall2014-09-28_02-25-07PM/installActions2014-09-28_02-25-07PM.log ACTION:Identify the list of failed prerequisite checks from the log: /tmp/OraInstall2014-09-28_02-25-07PM/installActions2014-09-28_02-25-07PM.log.Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually. You can find the log of this install session at: /apps/oraInventory/logs/installActions2014-09-28_02-25-07PM.log
インストーラは、Oracle Databaseをインストールする前に、長いチェック・リストを検証し、環境が要件を満たしていることを確認します。一部のオプション要件は満たされていない場合もありますが、心配する必要はありません。しばらくすると、インストールが正しく終了します。/apps/oraInventory/logs/installActions*.log
の内容をチェックすれば、Oracle Databaseが正しくインストールされていることをいつでも確認できます。
The installation of Oracle Database 12c was successful. Please check '/apps/oraInventory/logs/silentInstall2014-09-28_02-25-07PM.log' for more details. As a root user, execute the following script(s): 1./apps/oraInventory/orainstRoot.sh 2./apps/oracle/oracledb12c/root.sh Successfully Setup Software.
インストールが終了したら、インストーラの指示に従っていくつかのスクリプトをroot
アカウントで実行し、oracle
アカウントでログインし直します。
$ logout # /apps/oracle/oraInventory/orainstRoot.sh Changing permissions of /apps/oracle/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /apps/oracle/oraInventory to oinstall. The execution of the script is complete. # /apps/oracle/oracledb12c/root.sh Check /apps/oracle/oracledb12c/install/root_solaris_2014-09-28_14-51-55.log for the output of root script # su - oracle
Oracle Databaseがインストールされたかどうか、テストを行って確認した後、このデータベースに使用できるデフォルト環境を設定します。最初に次の環境変数を設定します。
$ export ORACLE_BASE=/apps/oracle $ export ORACLE_HOME=/apps/oracle/oracledb12c $ export ORACLE_SID=orcl $ export LD_LIBRARY_PATH=/apps/oracle/oracledb12c/lib $ export PATH=/apps/oracle/oracledb12c/bin:$PATH
また、/var/opt/oracle/oratab
ファイルに次の行を追加して、サイト識別子(ORACLE_SID
)とデータベース・ホーム(ORACLE_HOME
)を関連付けます。
orcl:/apps/oracle/oracledb12c:Y
さらに、/apps/oracle/oracledb12c/dbs/initorcl.ora
に次の内容を含むファイルを作成し、ORACLE_SID
の初期化パラメータ・ファイルとします。
db_name='orcl'
ここで、インスタンスを起動していくつかのSQL*Plusコマンドを実行すれば、Oracle Databaseインスタンスが動作しているかどうかを確認できます。
$ dbstart /apps/oracle/oracle12c Processing Database instance "orcl": log file /apps/oracle/oracledb12c/startup.log $ sqlplus /nolog SQL*Plus:Release 12.1.0.2.0 Production on Sun Sep 28 16:43:38 2014 Copyright (c) 1982, 2014, Oracle.All rights reserved. SQL> connect / as sysdba Connected. SQL> create database orcl; Database created. SQL> connect orcl as sysdba; Enter password:solaris11 Connected. SQL> create table participants( 2 first_name varchar2(25) not null, 3 last_name varchar2(25) not null); Table created. SQL> describe participants; Name Null? Type ----------------------------------------- -------- ---------------------------- FIRST_NAME NOT NULL VARCHAR2(25) LAST_NAME NOT NULL VARCHAR2(25) SQL> exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
動作することを確認できたので、このデータベース・インスタンスを停止します。
$ dbshut /apps/oracle/oracle12c
OpenStackクラウド用に作成するゴールデン・イメージで、初回起動時にOracle Databaseを自動で起動できると便利です。これを実現するためには、ゴールデン・イメージをOracle Solarisのサービス管理機能に統合します。サービス管理機能とは、Oracle Solaris 11上のシステム・サービスを管理し、ソフトウェア障害やハードウェア障害の発生時に高可用性を提供する機能です。
まず、サービス管理機能のマニフェストを作成します。マニフェストとは、サービスについての説明と、サービスの起動/停止方法を記述したものです。Oracle Solaris 11にはsvcbundle
コマンドが用意されているため、もっともシンプルな形式のマニフェストを簡単に作成できます。このコマンドを実行し、次のように起動方法と停止方法を指定します。
# svcbundle -s service-name=site/oracledb12c \ -s start-method="dbstart /apps/oracle/oracledb12c" \ -s stop-method="dbshut /apps/oracle/oracledb12c" -o oracledb12c.xml
すると、必要に応じて手動による追加が可能な基本テンプレートを含んだoracledb12c.xml
というファイルが出力されます。今回は、データベースがoracleユーザーで実行され適切な環境変数が設定されるように、ファイルを少し変更する必要があります。そのため、起動と停止のexec_method
ごとにメソッド・コンテキストを追加します。
oracledb12c.xml
を開き、<exec_method>
XMLタグを探します。代わりに次の内容が使用されるように変更します。
<exec_method timeout_seconds="60" type="method" name="start" exec="dbstart /apps/oracle/oracledbc12c"> <method_context> <method_credential user="oracle" group="dba"/> <method_environment> <envvar name="ORACLE_BASE" value="/apps/oracle"/> <envvar name="ORACLE_HOME" value="/apps/oracle/oracledb12c"/> <envvar name="ORACLE_SID" value="orcl"/> <envvar name="LD_LIBRARY_PATH" value="/apps/oracle/oracledb12c/lib"/> <envvar name="PATH" value="/apps/oracle/oracledb12c/bin"/> </method_environment> </method_context> </exec_method> <exec_method timeout_seconds="60" type="method" name="stop" exec="dbshut /apps/oracle/oracledb12c"> <method_context> <method_credential user="oracle" group="dba"/> <method_environment> <envvar name="ORACLE_BASE" value="/apps/oracle"/> <envvar name="ORACLE_HOME" value="/apps/oracle/oracledb12c"/> <envvar name="ORACLE_SID" value="orcl"/> <envvar name="LD_LIBRARY_PATH" value="/apps/oracle/oracledb12c/lib"/> <envvar name="PATH" value="/apps/oracle/oracledb12c/bin"/> </method_environment> </method_context> </exec_method>
ここでファイルを検証し、ミスがないことを確認します。
# svccfg validate oracledb12c.xml
最後に、このファイルをサイトのサービス管理機能のマニフェストがある場所にコピーし、manifest-import
サービスを再起動します。
# mv oracledb12c.xml /lib/svc/manifest/site # svcadm restart manifest-import STATE STIME FMRI online 6:55:38 svc:/site/oracledb12c:default
次のコマンドを実行し、Oracle Databaseが実行されているかどうかを確認します。
# svcs oracledb12c
実行中のプロセスのリストが表示され、Oracle Databaseが実行されていることを確認できます。
OpenSCAPセキュリティ報告フレームワークがOracle Solaris 11.1で導入されました。SCAP(Secure Content Automation Protocol)は構成の管理とレポートのオープン標準で、もともとは米国防総省および米国標準技術局のために作成されたものです。フレームワークの開発は公共部門から始まりましたが、システム構成とセキュリティ管理を表現する標準の方法として、SCAPエコシステムの採用が主要ベンダーの間で急速に進んでいます。
Oracle Solaris 11.2では、便利な新しいコマンドcompliance
(1M)にOpenSCAPが組み込まれています。現在、この新しいcomplianceコマンドには次の3つの主要オプションがあります。
guide
:コンプライアンス標準(ベンチマークとも呼ばれます)に適合する方法が書かれた"ステップ・バイ・ステップ"ガイドを作成します。assess
:標準に含まれる一連のセキュリティ・チェック項目に照らしてシステムを評価します。assess
サブコマンドから出力されるXMLファイルは、コンプライアンス管理ツールにインポートすることができます。report
:XMLで表現された評価を、判読可能なHTMLファイルに変換します。これはXMLからHTMLにXML変換したファイルであり、それぞれの組織の要件に合わせて変更できます。Oracle Solaris 11.2からは、3つの重要なセキュリティ/コンプライアンス標準が導入されています。
では、既存のOracle Database VMインスタンスでコンプライアンス・レポートを実行してみましょう。Solarisベースライン・ポスチャーの評価を生成します。
# compliance assess Assessment will be named 'solaris.Baseline.2014-09-29,14:52' Package integrity is verified Test_1.1 fail The OS version is current Test_1.2 fail Package signature checking is globally activated Test_1.3 pass All local filesystems are ZFS Test_2.1 pass Address Space Layout Randomization (ASLR) is enabled Test_6.6 pass Check all default audit properties Test_7.1 pass
complianceコマンドのレポート内容を見てみましょう。
# compliance list Benchmarks: pci-dss solaris Assessments: solaris.Baseline.2014-09-29,14:52
これで、この評価についてのレポートを生成できます。
# compliance report /var/share/compliance/assessments/solaris.Baseline.2014-09-29,14:52/report.html
このコンプライアンス・レポートの出力をApacheのドキュメント・ルートにコピーし、Webブラウザで表示できるようにします。
# cp /var/share/compliance/assessments/solaris*/report.html /var/apache2/2.2/htdocs/
Webブラウザを開き、http://10.158.56.x/report.html
にナビゲートします。
図12:ブラウザでのコンプライアンス・レポートの表示
今度は、Solarisベースライン・ベンチマークを使用するのではなく、PCI-DSSベンチマークに対してレポートを実行します。
# compliance assess -b pci-dss Assessment will be named 'pci-dss.Solaris_PCI-DSS.2014-09-29,15:14' ...
最初のレポートが完了したら、PCI-DSSコンプライアンス・ガイドも作成できます。コンプライアンス・ガイドとは、PCI-DSSセキュリティ標準にマッピングされたOracle Solarisのセキュリティ管理項目を記述したドキュメントです。このドキュメントは、Oracle Solarisシステムの構成方法を決定する際に役立つ他、セキュリティ監査人に提示する生成物としても使用できます。
# compliance guide -b pci-dss /var/share/compliance/guides/pci-dss.html
統合アーカイブはOracle Solaris 11.2で追加された新機能で、システムのクローニング機能とディザスタ・リカバリ機能を提供するものです。統合アーカイブはGlanceイメージ管理サービスに統合されており、新しいVMインスタンスをOpenStackにデプロイするときは、必要なものがここからインストールされます。
初めに既存のインスタンスの統合アーカイブを取得します。
# archiveadm create myinstance.uar
次に、いくつかの環境変数を設定し、このアーカイブをGlanceにアップロードできるようにします。
# export OS_AUTH_URL=http://localhost:5000/v2.0/ # export OS_PASSWORD=glance # export OS_USERNAME=glance # export OS_TENANT_NAME=service
これらの環境変数を設定したら、統合アーカイブをGlanceにインポートできます。
# glance image-create --container-format bare --disk-format raw --is-public true \ --name "DB Zone" --property architecture=sparc64 \ --property hypervisor_type=solariszones \ --property vm_mode=solariszones < myinstance.uar +----------------------------+--------------------------------------+ | Property | Value | +----------------------------+--------------------------------------+ | Property 'architecture' | sparc64 | | Property 'hypervisor_type' | solariszones | | Property 'vm_mode' | solariszones | | checksum | 336bdfe5f76876fe24907e35479101e7 | | container_format | bare | | created_at | 2014-09-11T00:52:14.269232 | | deleted | False | | deleted_at | None | | disk_format | raw | | id | b42e47ee-d8dc-e50c-d6e0-9206d761ce41 | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | DB Zone | | owner | f17341f0a2a24ec9ec5f9ca497e8c0cc | | protected | False | | size | 1277245440 | | status | active | | updated_at | 2014-09-11T00:52:42.352947 | +----------------------------+--------------------------------------+
新しいイメージをGlanceにアップロードしたので、次は新しく作成したVMインスタンスにこれをデプロイします。HorizonのLaunch Instances画面に再度ナビゲートし、新しいインスタンスを起動します。先ほどはImage NameとしてBase Zone
を選択しましたが、今回は「DB Zone
」を選択します。
コンプライアンス・チェックを実行し、監査人から承認を受けた環境があり、その環境を取得してOpenStackにアップロードしたと仮定します。Oracle Solaris 11では、不変非大域ゾーンと不変大域ゾーンを通じて読取り専用の環境を作成できるようになりました。これは、セキュリティ権限がなければ変更できない改ざん防止環境を提供する機能です。
読取り専用機能としては多数のオプションがあります。たとえば、あらゆるものをロックする、特定のシステムの構成のみを修正する、いくつかの制約を伴う柔軟な構成にする、といったことができます。
不変ゾーンを作成するには、Horizonで新しいフレーバを作成する必要があります。dba
ユーザーからログアウトし、admin/secrete
でログインします。OpenStackのダッシュボード(Horizon)から、「Admin」→「Flavor」の順にページをナビゲートします。既存のOracle Solarisフレーバのいずれかを更新することも、新規にフレーバを作成することもできます。ここでは、Immutable Solaris non-global Zone
という名前の新しいフレーバを作成します(図13を参照)。
図13:新しいフレーバの作成
必ずFlavor Accessタブを使用して、このフレーバを使用するプロジェクトを含めるようにしてください。
次は、表のMoreメニューから「View Extra Specs」を選択します。
図14:Moreメニューの使用
図15に示すような画面が表示されます。
図15:Flavor Extra Specs画面
新しいフレーバをゼロから作成するため、このフレーバが属するゾーンのタイプも設定する必要があります。「Create」を選択し、図16に示す情報を入力して非大域ゾーンを設定します。
図16:ゾーンの設定
次に、先ほどと同様に、zonecfg:file-mac-profile
用のキーと値のペアを作成します。Valueはflexible-configuration
、fixed-configuration
(図17)、またはstrict
にします。
図17:キーと値のペアの作成
ここで、このフレーバを使用して新しいVMインスタンスを作成すれば、次のとおり、先ほど作成した非大域ゾーンの構成を確認できます。
# zonecfg -z instance-0000000f info zonename: instance-0000000f zonepath:/system/zones/instance-0000000f brand: solaris autoboot: false autoshutdown: shutdown bootargs: file-mac-profile: fixed-configuration ...
これでラボは終了です。お疲れ様でした。ご参加いただきありがとうございました。
また、次のリソースも参照してください。
Glynn Fosterは、Oracle SolarisのPrincipal Product Managerです。OpenStack、Oracle Solaris Image Packaging System、インストール、構成管理など、さまざまなテクノロジー領域を担当しています。
リビジョン1.0、2015/01/14 |