LAMPスタックでのカスタムOracle Linuxマシン・イメージの構築


オプション



開始する前に

目的

このチュートリアルでは、後で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仮想マシンがプロビジョニングされます。

このチュートリアルでのタスクの概要は、次のとおりです。

  1. Oracle VM VirtualBoxでのVMの作成
  2. VMでのOracle Linuxのインストール
  3. インターネット・アクセス用のVMの構成
  4. MySQLのインストール
  5. Apache HTTPサーバーのインストール
  6. PHPのインストール
  7. ユーザーの作成、鍵ベースのSSHアクセスの構成、およびsudo権限の有効化
  8. デフォルトのカーネルの変更(オプション)
  9. VMのネットワーク設定のクリーンアップ
  10. VMディスクのマシン・イメージへの変換

必要なもの

  • Oracle VM VirtualBox

    Oracle VM VirtualBoxインストーラをダウンロードし、インストールの手順を確認するには、https://www.virtualbox.org/wiki/Downloadsにアクセスしてください。

    このチュートリアルの手順は、VirtualBox v4.3.28を対象としています。

  • Oracle LinuxインストーラISO

    1. https://edelivery.oracle.comに移動します。

    2. 「Sign In」をクリックし、Oracle.comの資格証明を使用してサインインします。

    3. 輸出規制を閲覧し、「Accept」をクリックします。

    4. 「Linux/OVM/VMs」チェック・ボックスを選択します。

    5. 「Productフィールドで、「Linux」を入力し、数秒待ちます。

    6. 表示されたドロップダウン・リストで、「Oracle Linux」を選択し、「Select Platform」をクリックします。

    7. 表示されたダイアログ・ボックスで、「x86 64 bit」チェック・ボックスを選択し、「Select」をクリックします。

      次のスクリーンショットに示すように、「Selected Products」ペインに「Oracle Linux x86 64 bit」が表示されます。

      このイメージの説明
    8. 「Continue」をクリックします。

    9. 表示されたページで、ダウンロードするOracle Linuxリリースを選択します。

      たとえば、Oracle Linux 6.6をダウンロードするには、「Select Alternate Release」をクリックします。次に、ドロップダウン・リストから、「Oracle Linux 6.6.0.0.0 for x86 64 bit」を選択し、「Continue」をクリックします。

    10. 条件と制限事項を閲覧して受諾してから、「Continue」をクリックします。

    11. 「File Download」ダイアログ・ボックスで、必要なISOファイルを識別し、サイズを書き留め、適切なpart_number.iso」リンクをクリックします。

      たとえば、前にOracle Linux 6.6を選択した場合、「V52218-01.iso」をダウンロードする必要があります。

    12. 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の作成

  1. Oracle VM VirtualBoxを起動します。

    「Oracle VM VirtualBox Manager」ウィンドウが表示されます。

    注意: ここからの手順は、Oracle VM VirtualBoxのバージョン4.3.28に基づいています。Oracle VM VirtualBoxの他のバージョンの場合、フィールド名が異なる可能性があります。Oracle VM VirtualBoxのドキュメントを参照してください。

  2. 「New」をクリックします。

  3. 「Name and operating system」画面で、VMの名前(「OL66」など)を入力し、「Type」として「Linux」「Version」として「Oracle (64-bit)」を選択し、「Next」をクリックします。

  4. 「Memory size」画面で、VMのRAMの量(1024MBなど)を選択し、「Next」をクリックします。

    ここで指定するRAMは、後でマシン・イメージを使用して作成するVMに割り当てられるメモリーには影響しません。このメモリー割当ては、Oracle Compute Coud ServiceでVMに指定するシェイプによって異なります。

  5. 「Hard drive」画面で、「Create a virtual hard drive now」を選択し、「Create」をクリックします。

  6. 「Hard drive file type」画面で、「VDI (VirtualBox Disk Image)」を選択し、「Next」をクリックします。

  7. 「Storage on physical hard drive」画面で、「Dynamically allocated」を選択し、「Next」をクリックします。

  8. 「File location and size」画面で、

    • VMディスクを格納するディレクトリを指定します。

      このディレクトリのパスと名前を書き留めます。これは、この手順の後半で必要になります。

    • 仮想ディスクのサイズを選択します。

      注意: この手順により、マシン・イメージのディスク・サイズが決まります。サイズは慎重に選択してください。マシン・イメージが大きくなると、Oracle Storage Cloud Serviceにアップロードするのに必要な時間が長くなり、消費されるストレージ領域が増えるだけでなく、Oracle Compute Cloudサービスでのインスタンスの作成に要する時間も長くなります。

  9. 仮想ディスクの場所とサイズを選択した後、「Create」をクリックします。

    新しいVMが作成され、Oracle VM VirtualBox Managerに表示されます。

    このイメージの説明

VMでのOracle Linuxのインストール

  1. Oracle VM VirtualBox Managerで、VMを選択し、「Start」をクリックします。

  2. 「Select start-up disk」ダイアログ・ボックスで、前にダウンロードしたOracle LinuxインストーラISOが含まれるディレクトリに移動し、「Start」をクリックします。

  3. インストール・ウィザードの手順に従います。

    インストール・プロセス中、インストール言語、キーボードのレイアウトおよびタイムゾーンを指定するよう求められます。また、ホスト名の定義、rootパスワードの設定、パーティション化タイプの選択なども行います。

    インストール・プロセス中に行う選択に関するヘルプが必要な場合は、『Oracle Linuxインストレーション・ガイド』を参照してください。

  4. インストール・プロセスが完了するまで待ちます。

    オペレーティング・システムがインストールされた後、次の画面が表示されます。

    このイメージの説明
  5. 「Reboot」をクリックします。

  6. 再起動後、VMにログイン・プロンプトが表示されます。インストール・プロセス中に指定したパスワードを使用して、rootユーザーとしてVMにログインします。

次に、インターネットにアクセスするためにVMを構成します。

インターネットにアクセスするためのVMの構成

VMでMySQL、Apache HTTPサーバーおよびPHPをインストールする前に、パブリック・インターネットへのアクセスを有効にするためにVMのネットワーク設定を構成する必要があります。

  1. VMを停止します。

    shutdown -P now
  2. Oracle VM VirtualBox Managerで、VMを選択し、「Settings」ボタンをクリックします。

  3. 「Settings」ダイアログ・ボックスで、左側のナビゲーション・ペインの「Network」を選択します。

  4. 「Adapter 1」タブで、次を実行します。

    • 「Enable Network Adapter」を選択します。

    • 「Attached to」フィールドで、「NAT」を選択します。

      このイメージの説明
  5. 「OK」をクリックします。

  6. VMを選択して「Start」ボタンをクリックし、VMを起動します。

  7. rootユーザーとしてログインします。

  8. 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
  9. 組織内でのインターネットへのアクセスがプロキシを介してルーティングされている場合、プロキシ・サーバーのURLを指定します。

    export http_proxy=http://proxy_host:port
    export https_proxy=https://proxy_host:port
  10. VMがOracleのパブリックyumサーバーにアクセスできることを確認します。

    ping -c5 public-yum.oracle.com

MySQLのインストール

  1. yumを介してMySQLのインストールを有効にします。

    1. 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
    2. /etc/yum.repos.d/public-yum-ol6.repoファイル内の[public_ol6_MySQL]セクションを探します。

    3. 次のように、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
  2. MySQLクライアントをインストールします。

    yum install -y mysql

    次のメッセージが表示されるまで待ちます。

    このイメージの説明
  3. MySQLサーバーをインストールします。

    yum install -y mysql-server

    次のメッセージが表示されるまで待ちます。

    このイメージの説明
  4. mysqlサービスがインストールされていることを確認します。

    chkconfig --list mysqld

    出力内容は次のようになります。

    mysqld 0:off	1:off	2:off	3:off	4:off	5:off	6:off
  5. データベースを初期化します。

    service mysqld start

    次のメッセージが表示されるまで待ちます。

    Starting mysqld: [ OK ]
  6. MySQLインストールのセキュリティを強化します。

    mysql_secure_installation
    1. rootユーザーの現在のパスワードを求められたら、[Enter]を押します。

    2. rootパスワードを設定するよう求められたら、「y」を入力します。パスワードを指定し、再入力します。

    3. 匿名ユーザーを削除するよう求められたら、「y」を入力します。

    4. リモートのrootログインを許可しないよう求められたら、「y」を入力します。

    5. テスト・データベースを削除するよう求められたら、「y」を入力します。

    6. 権限表を再ロードするよう求められたら、「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サーバーのインストール

  1. グループapacheを作成します。

    groupadd apache
  2. ユーザーapacheを作成します。

    useradd -g apache -s /bin/false apache
  3. httpdをインストールします。

    yum install -y httpd

    次のメッセージが表示されるまで待ちます。

    このイメージの説明
  4. httpdサービスを開始します。

    service httpd start

    出力内容は次のようになります。

    Starting httpd: [ OK ]
  5. プロセスが実行されていることを確認します。

    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
  6. サービスを起動します。

    chkconfig httpd on
  7. サービスが起動していることを確認します。

    chkconfig --list httpd

    出力内容は次のようになります。

    httpd 0:off	1:off	2:on	3:on	4:on	5:on	6:off

PHPのインストール

  1. phpおよびphp-mysqlをインストールします。

    yum install -y php php-mysql

    次のメッセージが表示されるまで待ちます

    このイメージの説明
  2. PHPテスト・ページを作成します。

    echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
  3. テスト・ページの所有権をapacheに変更します。

    chown -R apache:apache /var/www/html/phpinfo.php
  4. httpdを再起動し、phpで変更を反映します。

    service httpd restart
  5. ブラウザを起動し、アドレス・バーに「http://IP_address_of_the_VirtualBox_VM/phpinfo.php」を入力し、PHP環境変数がすべてリストされているかどうか確認します。

ユーザーの作成、鍵ベースのSSHアクセスの構成、およびsudo権限の有効化

  1. 必要なユーザーを作成します。

    たとえば、次のコマンドの場合、ユーザーmyadminが作成されます。

    useradd myadmin
  2. インスタンスの作成時には、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ファイルに鍵を追加するスクリプトを作成できます。

  3. ユーザーに対して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ファイルを編集し、デフォルトのカーネルを変更する必要があります。

  1. viなどのテキスト・エディタで/etc/grub.confを開きます。

  2. 次の行を探します。

    default=0

    数値0は、grub.confにリストされている最初のカーネルからVMが起動する必要があることを示します。

  3. 起動元にするRed Hat Compatible Kernelのgrub.conf内の位置を識別します。

    起動元にするカーネルがリスト内の2番目の位置にある場合、デフォルトのパラメータを1に変更します。起動元にするカーネルがリスト内の3番目の位置にある場合、デフォルトのパラメータを2に変更するなど、以下このように続きます。

  4. /etc/grub.confを保存して閉じます。

  5. VMを再起動します。

    shutdown -r now

VMがRed Hat Compatible Kernelから起動します。

カーネルを確認するには、次のコマンドを入力します。

uname -r

次の例のような出力が表示されます。

2.6.32-504.el6.x86_64

VMのネットワーク設定のクリーンアップ

rootユーザーとしてVMにログインし、次のタスクを実行します。

  1. SELinuxを無効にします。

    1. テキスト・エディタで/etc/selinux/configを開きます。

      vi /etc/selinux/config
    2. 次の行を探します。

      SELINUX=enforcing
    3. この行を次に変更します。

      SELINUX=disabled

      注意: SELinuxをpermissiveモードで実行すると、ログやコンソールが乱雑になる可能性があります。

    4. ファイルを保存して閉じます。

  2. iptablesサービスを停止します。

    注意: Oracle Compute Cloud Serviceでセキュリティ・リストおよびセキュリティ・ルールを使用して、インスタンスのファイアウォール・ルールを実装できます。

    1. 次のコマンドを入力します。

      service iptables stop

      次の出力が表示されるまで待ちます

      このイメージの説明
    2. 次のコマンドを入力します。

      chkconfig iptables off
  3. ハードコード化されたMACアドレスがないことを確認します。

    1. 次のコマンドを入力して、/etc/udev/rules.d/70-persistent-net.rulesを空のファイルに置き換えます。

      >| /etc/udev/rules.d/70-persistent-net.rules
    2. 次のコマンドを入力して、/lib/udev/rules.d/75-persistent-net-generator.rulesを空のファイルに置き換えます。

      >| /lib/udev/rules.d/75-persistent-net-generator.rules
  4. テキスト・エディタで/etc/sysconfig/network-scripts/ifcfg-eth0を開き、次を除き、すべての行を削除します。

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes

    この変更の後、/etc/sysconfig/network-scripts/ifcfg-eth0のコンテンツが正確に上記のとおりであることを確認します。

  5. テキスト・エディタで/etc/sysconfig/networkを開き、次の行のみが含まれるよう編集します。

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    IPV6_AUTOCONF=no
    NOZEROCONF=yes

    この変更の後、/etc/sysconfig/networkのコンテンツが正確に上記のとおりであることを確認します。

VMディスクのマシン・イメージへの変換

  1. VMの電源を切ります。

    shutdown -P now
  2. 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
  3. イメージ・ファイルをスパース形式に変換することにより、使用されるディスク領域を減らし、Oracle Storage Cloud Serviceにより速くアップロードできるようにします。

    cp --sparse=always /path/to/myImage.img /path/to/myImage_sparse.img

  4. .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