開始する前に
目的
このチュートリアルでは、後でOracle Compute Cloud Serviceでインスタンス(仮想マシン)をプロビジョニングするために使用できるカスタムOracle Linuxマシン・イメージを構築する方法について説明します。
所要時間
必要なソフトウェアをダウンロードするために必要な時間を除き、約1時間。
背景
Oracle Compute Cloud Serviceには、事前作成されたマシン・イメージが複数用意されています。これらのイメージには、通常のエンタープライズ・ワークロードを実行するために必要なパッケージが含まれています。『Oracle Compute Cloud Serviceの使用』を参照してください。ただし、アプリケーションによっては、高度にカスタマイズされたオペレーティング・システムが必要な場合があります。このチュートリアルでは、このようなマシン・イメージの1つを作成する方法について説明します。このチュートリアルは、独自のマシン・イメージを開発するための参照フレームワークとして使用してください。
シナリオ
このチュートリアルでは、AMPスタック(Apache HTTPサーバー、MySQLおよびPHP)を使用してUnbreakable Enterprise Kernel (UEK)を実行してOracle Linux 6.6マシン・イメージを作成する方法について説明します。このマシン・イメージを使用してOracle Compute Cloud Serviceでインスタンスを作成する場合、LAMPスタックが完全にインストールおよび構成された状態でOracle Linux 6.6仮想マシンがプロビジョニングされます。
このチュートリアルでのタスクの概要は、次のとおりです。
- Oracle VM VirtualBoxでのVMの作成
- VMでのOracle Linuxのインストール
- インターネット・アクセス用のVMの構成
- MySQLのインストール
- Apache HTTPサーバーのインストール
- PHPのインストール
- ユーザーの作成、鍵ベースのSSHアクセスの構成、およびsudo権限の有効化
- デフォルトのカーネルの変更(オプション)
- VMのネットワーク設定のクリーンアップ
- VMディスクのマシン・イメージへの変換
必要なもの
-
Oracle VM VirtualBox
Oracle VM VirtualBoxインストーラをダウンロードし、インストールの手順を確認するには、https://www.virtualbox.org/wiki/Downloadsにアクセスしてください。
このチュートリアルの手順は、VirtualBox v4.3.28を対象としています。
-
Oracle LinuxインストーラISO
-
https://edelivery.oracle.comに移動します。
「Sign In」をクリックし、Oracle.comの資格証明を使用してサインインします。
輸出規制を閲覧し、「Accept」をクリックします。
「Linux/OVM/VMs」チェック・ボックスを選択します。
「Productフィールドで、「Linux」を入力し、数秒待ちます。
表示されたドロップダウン・リストで、「Oracle Linux」を選択し、「Select Platform」をクリックします。
表示されたダイアログ・ボックスで、「x86 64 bit」チェック・ボックスを選択し、「Select」をクリックします。
次のスクリーンショットに示すように、「Selected Products」ペインに「Oracle Linux x86 64 bit」が表示されます。
「Continue」をクリックします。
表示されたページで、ダウンロードするOracle Linuxリリースを選択します。
たとえば、Oracle Linux 6.6をダウンロードするには、「Select Alternate Release」をクリックします。次に、ドロップダウン・リストから、「Oracle Linux 6.6.0.0.0 for x86 64 bit」を選択し、「Continue」をクリックします。
条件と制限事項を閲覧して受諾してから、「Continue」をクリックします。
「File Download」ダイアログ・ボックスで、必要なISOファイルを識別し、サイズを書き留め、適切な「part_number.iso」リンクをクリックします。
たとえば、前にOracle Linux 6.6を選択した場合、「V52218-01.iso」をダウンロードする必要があります。
-
ISOをダウンロードしたディレクトリを書き留めます。
-
-
qemu-img
ユーティリティ(オプション)このユーティリティは、ほとんどのLinuxディストリビューションでデフォルトで使用できます。Windowsの場合、これをダウンロードしてインストールする必要があります。
-
Windowsの場合:
QEMUインストーラをhttp://qemu.weilnetz.de/からダウンロードします。
ダウンロードした
exe
ファイルをダブルクリックし、インストール・ウィザードの手順に従います。 -
Linuxの場合:
qemu-img
パッケージがインストールされているかどうか確認します。rpm -qa | grep qemu-img
-
qemu-img
がインストールされている場合、次の出力が表示されます。qemu-img-0.12.1.2-2.295.el6.x86_64
-
qemu-img
がインストールされていない場合、出力は表示されません。qemu-img
をインストールするには、次のコマンドを入力します。sudo yum install -y qemu-img
-
-
Oracle VM VirtualBoxでのVMの作成
-
Oracle VM VirtualBoxを起動します。
「Oracle VM VirtualBox Manager」ウィンドウが表示されます。
注意: ここからの手順は、Oracle VM VirtualBoxのバージョン4.3.28に基づいています。Oracle VM VirtualBoxの他のバージョンの場合、フィールド名が異なる可能性があります。Oracle VM VirtualBoxのドキュメントを参照してください。
-
「New」をクリックします。
-
「Name and operating system」画面で、VMの名前(「OL66」など)を入力し、「Type」として「Linux」、「Version」として「Oracle (64-bit)」を選択し、「Next」をクリックします。
-
「Memory size」画面で、VMのRAMの量(1024MBなど)を選択し、「Next」をクリックします。
ここで指定するRAMは、後でマシン・イメージを使用して作成するVMに割り当てられるメモリーには影響しません。このメモリー割当ては、Oracle Compute Coud ServiceでVMに指定するシェイプによって異なります。
-
「Hard drive」画面で、「Create a virtual hard drive now」を選択し、「Create」をクリックします。
-
「Hard drive file type」画面で、「VDI (VirtualBox Disk Image)」を選択し、「Next」をクリックします。
-
「Storage on physical hard drive」画面で、「Dynamically allocated」を選択し、「Next」をクリックします。
-
「File location and size」画面で、
-
VMディスクを格納するディレクトリを指定します。
このディレクトリのパスと名前を書き留めます。これは、この手順の後半で必要になります。
-
仮想ディスクのサイズを選択します。
注意: この手順により、マシン・イメージのディスク・サイズが決まります。サイズは慎重に選択してください。マシン・イメージが大きくなると、Oracle Storage Cloud Serviceにアップロードするのに必要な時間が長くなり、消費されるストレージ領域が増えるだけでなく、Oracle Compute Cloudサービスでのインスタンスの作成に要する時間も長くなります。
-
-
仮想ディスクの場所とサイズを選択した後、「Create」をクリックします。
新しいVMが作成され、Oracle VM VirtualBox Managerに表示されます。
VMでのOracle Linuxのインストール
-
Oracle VM VirtualBox Managerで、VMを選択し、「Start」をクリックします。
-
「Select start-up disk」ダイアログ・ボックスで、前にダウンロードしたOracle LinuxインストーラISOが含まれるディレクトリに移動し、「Start」をクリックします。
-
インストール・ウィザードの手順に従います。
インストール・プロセス中、インストール言語、キーボードのレイアウトおよびタイムゾーンを指定するよう求められます。また、ホスト名の定義、rootパスワードの設定、パーティション化タイプの選択なども行います。
インストール・プロセス中に行う選択に関するヘルプが必要な場合は、『Oracle Linuxインストレーション・ガイド』を参照してください。
-
インストール・プロセスが完了するまで待ちます。
オペレーティング・システムがインストールされた後、次の画面が表示されます。
-
「Reboot」をクリックします。
-
再起動後、VMにログイン・プロンプトが表示されます。インストール・プロセス中に指定したパスワードを使用して、
root
ユーザーとしてVMにログインします。
次に、インターネットにアクセスするためにVMを構成します。
インターネットにアクセスするためのVMの構成
VMでMySQL、Apache HTTPサーバーおよびPHPをインストールする前に、パブリック・インターネットへのアクセスを有効にするためにVMのネットワーク設定を構成する必要があります。
-
VMを停止します。
shutdown -P now
-
Oracle VM VirtualBox Managerで、VMを選択し、「Settings」ボタンをクリックします。
「Settings」ダイアログ・ボックスで、左側のナビゲーション・ペインの「Network」を選択します。
-
「Adapter 1」タブで、次を実行します。
-
「Enable Network Adapter」を選択します。
-
「Attached to」フィールドで、「NAT」を選択します。
-
-
「OK」をクリックします。
-
VMを選択して「Start」ボタンをクリックし、VMを起動します。
-
root
ユーザーとしてログインします。 -
VMの
eth0
ネットワーク・インスタンスが稼働しているかどうか確認します。ip address show eth0 | grep -w inet
このコマンドにより、次の例のような出力が表示されます。
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
コマンドによって出力が返されない場合、次のコマンドを入力します。
ifup eth0
-
組織内でのインターネットへのアクセスがプロキシを介してルーティングされている場合、プロキシ・サーバーのURLを指定します。
export http_proxy=http://proxy_host:port export https_proxy=https://proxy_host:port
-
VMがOracleのパブリックyumサーバーにアクセスできることを確認します。
ping -c5 public-yum.oracle.com
MySQLのインストール
-
yumを介してMySQLのインストールを有効にします。
-
vi
などのテキスト・エディタで/etc/yum.repos.d/public-yum-ol6.repo
を開きます。/etc/yum.repos.d/public-yum-ol6.repo
が存在しない場合は、ダウンロードします。cd /etc/yum.repos.d wget http://public-yum.oracle.com/public-yum-ol6.repo
-
/etc/yum.repos.d/public-yum-ol6.repo
ファイル内の[public_ol6_MySQL]
セクションを探します。 -
次のように、
enabled
パラメータを1
に設定し、public_ol6_MySQL
リポジトリを有効にします。[public_ol6_MySQL] name=MySQL 5.5 for Oracle Linux 6 ($basearch) baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/MySQL/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1
-
-
MySQLクライアントをインストールします。
yum install -y mysql
次のメッセージが表示されるまで待ちます。
-
MySQLサーバーをインストールします。
yum install -y mysql-server
次のメッセージが表示されるまで待ちます。
-
mysql
サービスがインストールされていることを確認します。chkconfig --list mysqld
出力内容は次のようになります。
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
データベースを初期化します。
service mysqld start
次のメッセージが表示されるまで待ちます。
Starting mysqld: [ OK ]
-
MySQLインストールのセキュリティを強化します。
mysql_secure_installation
-
rootユーザーの現在のパスワードを求められたら、[Enter]を押します。
-
rootパスワードを設定するよう求められたら、
「y」
を入力します。パスワードを指定し、再入力します。 -
匿名ユーザーを削除するよう求められたら、
「y」
を入力します。 -
リモートのrootログインを許可しないよう求められたら、
「y」
を入力します。 -
テスト・データベースを削除するよう求められたら、
「y」
を入力します。 -
権限表を再ロードするよう求められたら、
「y」
を入力します。MySQLインストールが完了したことを示す次のメッセージが表示されます。
All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
-
Apache HTTPサーバーのインストール
-
グループ
apache
を作成します。groupadd apache
-
ユーザー
apache
を作成します。useradd -g apache -s /bin/false apache
-
httpd
をインストールします。yum install -y httpd
次のメッセージが表示されるまで待ちます。
-
httpd
サービスを開始します。service httpd start
出力内容は次のようになります。
Starting httpd: [ OK ]
-
プロセスが実行されていることを確認します。
ps -fea |grep httpd
このコマンドにより、次の例のような出力が表示されます。
apache 20094 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20095 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20096 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20097 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20098 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20099 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20101 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd apache 20103 20092 0 12:26 ? 00:00:00 /usr/sbin/httpd
-
サービスを起動します。
chkconfig httpd on
-
サービスが起動していることを確認します。
chkconfig --list httpd
出力内容は次のようになります。
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
PHPのインストール
-
php
およびphp-mysql
をインストールします。yum install -y php php-mysql
次のメッセージが表示されるまで待ちます
-
PHPテスト・ページを作成します。
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
-
テスト・ページの所有権を
apache
に変更します。chown -R apache:apache /var/www/html/phpinfo.php
-
httpd
を再起動し、php
で変更を反映します。service httpd restart
-
ブラウザを起動し、アドレス・バーに「
http://IP_address_of_the_VirtualBox_VM/phpinfo.php
」を入力し、PHP環境変数がすべてリストされているかどうか確認します。
ユーザーの作成、鍵ベースのSSHアクセスの構成、およびsudo権限の有効化
-
必要なユーザーを作成します。
たとえば、次のコマンドの場合、ユーザー
myadmin
が作成されます。useradd myadmin
-
インスタンスの作成時には、1つ以上のSSH公開鍵を指定できます。指定する鍵は、メタデータとしてインスタンス上に格納されます。このメタデータには、
http://192.0.0.192/latest/meta-data/public-keys/{index}/openssh-key
にあるインスタンス内からアクセスできます。{index}
は、0
から始まる数字です。ユーザーの
authorized_keys
ファイルに追加する鍵については、インスタンスの起動時に自動的に実行され、インスタンス内のhttp://192.0.0.192/latest/meta-data/public-keys/{index}/openssh-key
から鍵を取得し、適切なユーザーのauthorized_keys
ファイルに鍵を追加するスクリプトを作成できます。 -
ユーザーに対して
sudo
権限を有効にするには、visudo
コマンドを使用して/etc/sudoers
ファイルを編集します。visudo -f /etc/sudoers
/etc/sudoers
で、次の行を探します。## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL
前述の行の直後に、次の行を追加します。
%myadmin ALL=(ALL) NOPASSWD: ALL
この場合、
myadmin
は、新しいmyadmin
ユーザーが属する自動作成グループです。
デフォルトのカーネルの変更(オプション)
Oracle Linux 5.5以降、デフォルトのUnbreakable Enterprise Kernel (UEK)またはRed Hat Compatible Kernelを使用してOracle Linux VMを起動することを選択できます。
デフォルトでは、Oracle Linux VMは、エンタープライズ・アプリケーション用の最新の高性能カーネルであるUEKを使用して起動します。
uname -r
3.8.13-44.1.1.el6uek.x86_64
Oracleでは要求の厳しいOracleワークロードを使用してUEKを集中的にテストしており、Oracleデプロイメントや他のすべてのエンタープライズ・デプロイメントにはUEKを使用することをお薦めします。UEKの詳細は、http://docs.oracle.com/cd/E37670_01/E37355/html/ol_about_uek.htmlを参照してください。
このマシン・イメージを使用して作成されたOracle Compute Cloud ServiceインスタンスがRed Hat Compatible Kernelをかわりに使用して起動するようにするには、/etc/grub.conf
ファイルを編集し、デフォルトのカーネルを変更する必要があります。
-
vi
などのテキスト・エディタで/etc/grub.conf
を開きます。 -
次の行を探します。
default=0
数値
0
は、grub.conf
にリストされている最初のカーネルからVMが起動する必要があることを示します。 -
起動元にするRed Hat Compatible Kernelの
grub.conf
内の位置を識別します。起動元にするカーネルがリスト内の2番目の位置にある場合、デフォルトのパラメータを1に変更します。起動元にするカーネルがリスト内の3番目の位置にある場合、デフォルトのパラメータを2に変更するなど、以下このように続きます。
-
/etc/grub.conf
を保存して閉じます。 -
VMを再起動します。
shutdown -r now
VMがRed Hat Compatible Kernelから起動します。
カーネルを確認するには、次のコマンドを入力します。
uname -r
次の例のような出力が表示されます。
2.6.32-504.el6.x86_64
VMのネットワーク設定のクリーンアップ
root
ユーザーとしてVMにログインし、次のタスクを実行します。
SELinuxを無効にします。
テキスト・エディタで
/etc/selinux/config
を開きます。vi /etc/selinux/config
次の行を探します。
SELINUX=enforcing
この行を次に変更します。
SELINUX=disabled
注意: SELinuxを
permissive
モードで実行すると、ログやコンソールが乱雑になる可能性があります。ファイルを保存して閉じます。
iptables
サービスを停止します。注意: Oracle Compute Cloud Serviceでセキュリティ・リストおよびセキュリティ・ルールを使用して、インスタンスのファイアウォール・ルールを実装できます。
次のコマンドを入力します。
service iptables stop
次の出力が表示されるまで待ちます
次のコマンドを入力します。
chkconfig iptables off
ハードコード化されたMACアドレスがないことを確認します。
次のコマンドを入力して、
/etc/udev/rules.d/70-persistent-net.rules
を空のファイルに置き換えます。>| /etc/udev/rules.d/70-persistent-net.rules
次のコマンドを入力して、
/lib/udev/rules.d/75-persistent-net-generator.rules
を空のファイルに置き換えます。>| /lib/udev/rules.d/75-persistent-net-generator.rules
テキスト・エディタで
/etc/sysconfig/network-scripts/ifcfg-eth0
を開き、次を除き、すべての行を削除します。DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
この変更の後、
/etc/sysconfig/network-scripts/ifcfg-eth0
のコンテンツが正確に上記のとおりであることを確認します。テキスト・エディタで
/etc/sysconfig/network
を開き、次の行のみが含まれるよう編集します。NETWORKING=yes HOSTNAME=localhost.localdomain IPV6_AUTOCONF=no NOZEROCONF=yes
この変更の後、
/etc/sysconfig/network
のコンテンツが正確に上記のとおりであることを確認します。
VMディスクのマシン・イメージへの変換
-
VMの電源を切ります。
shutdown -P now
-
Oracle VM VirtualBoxインストール・ディレクトリに移動し、次のコマンドを入力します。
VBoxManage internalcommands converttoraw /path/to/myVM.vdi /path/to/myImage.img
-
/path/to/myImage.img
は、生成された.img
ファイルのフルパスおよび名前です。 -
/path/to/myVM.vdi
は、VMの仮想ディスク・ファイルのフルパスおよび名前です。.vdi
ファイルのパスおよび名前が分からない場合は、「Oracle VM VirtualBox Manager」ウィンドウでVMを選択し、「Settings」をクリックします。表示されたダイアログ・ボックスで、左側のナビゲーション・ペインから「Storage」を選択し、「Storage Tree」ペイン内の.vdi
ファイルを選択します。次の例に示す「Location」フィールドの値を書き留めます。
イメージが大きい場合は特に、VDIイメージをRAW形式に変換するプロセスには数分かかる可能性があります。変更後、
.img
ファイルが作成されます。このファイルのサイズは、VMの作成時に指定したディスク・サイズと一致します。Oracle VM VirtualBoxでVMを作成するときに、VMDKハード・ドライブ・タイプを選択した場合、VMDKディスクを
raw
形式に変換するには、次のコマンドを入力します。VBoxManage clonehd /path/to/myVM.vmdk /path/to/myImage.img
--format raw注意: または、
qemu-img
ユーティリティを使用してVMDKディスクをraw
形式に変換することもできます。qemu-img convert -f vmdk -O raw /path/to/myVM.vmdk /path/to/myImage.img
-
- イメージ・ファイルをスパース形式に変換することにより、使用されるディスク領域を減らし、Oracle Storage Cloud Serviceにより速くアップロードできるようにします。
cp --sparse=always /path/to/myImage.img /path/to/myImage_sparse.img
-
.img
ファイルに対してtar
およびgzip
を実行します。必ず、
-S
オプションを指定し、tar
ユーティリティによってスパース・ファイルが適切に格納されるようにしてください。tar -czSf /path/to/myImage.tar.gz /path/to/myImage_sparse.img
注意: イメージの重要な特性(OS名、OSバージョンおよびディスク・サイズなど)を後で簡単に識別するために使用できる
tar.gz
ファイル名を選択してください。たとえば、OL66_12GB_RE.tar.gz
という名前を使用することにより、12GBのディスクを使用したルート対応(RE
)のOracle Linux (OL
)バージョン6アップデート6 (6u6
)のイメージであることを表すことができます。
作成したマシン・イメージを使用してOracle Compute Cloud Service内のインスタンスをプロビジョニングするには、最初にtar.gz
イメージ・ファイルをOracle Storage Cloud Serviceにアップロードする必要があります。「Oracle Storage Cloud Serviceへのマシン・イメージ・ファイルのアップロード」を参照してください。
詳細
クレジット
-
主要カリキュラム開発者: Kumar Dhanagopal
-
他の貢献者: Andrei Costache、Tom Eliason、Andrei Isaev、Octave Orgeron、Julian Ortiz Iregui、Raja Mukherjee、Jeff Pleau、Nitin Tomar、Michael Yang、Jeff Welsch、Anamika MukherjeeS