CentOS7のKVM(仮想化)のCentOS7ゲストの雛型からブログ・サーバを作る

  1. ひな形からブログ鯖のゲストOSを作成
  2. ゲストを複製
    1. # virt-clone -o CentOS7.0 -n *ブログ鯖* -f /var/lib/libvirt/images/*ブログ鯖*.qcow2
      • 割り当て中 *ブログ鯖*.qcow2′ | 20 GB 00:31
      • *ブログ鯖*‘のクローニングに成功しました。
  3. クローン(複製)なのでユニークなハズのUUID、MACアドレス、マシン名までひな形と同じでは都合が悪すぎるのでオフライン(virt-edit)で書き換える
    1. 作成したゲストのMACアドレス確認
      1. # virsh domiflist *ブログ鯖*
        • インターフェース 種類 ソース モデル MAC
        • ——————————————————-
        • – bridge br0 virtio *MACアドレス*
  4. UUID生成
    1. # uuidgen
      • *****-**-*UUID*-**-******
  5. 作成したゲストのネットワークを設定
    1. # virt-edit -d *ブログ鯖* /etc/sysconfig/network-scripts/ifcfg-eth0
      • UUID=*****-**-*UUID*-**-******
      • HWADDR=”*MACアドレス*
  6. 作成したゲストのUDEV設定(MACアドレス変更)
    1. ※無かったけど環境次第かもしれない
      • # virt-edit -d *ブログ鯖* /etc/udev/rules.d/70-persistent-net.rules
        • SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”*MACアドレス*“, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
  7. ホスト名変更
    1. 作成したゲストのホスト名設定
    2. # virt-edit -d *ブログ鯖* /etc/hostname
      • *ホスト名*
    3. 作成したゲストを起動
      1. # virsh start *ブログ鯖*
      2. ドメイン *ブログ鯖* が起動されました
    4. ルータで*MACアドレス*192.168.*.*が割り当てられていた。
  8. ひな形のMACアドレスが残っていないか確認。
    1. grep *MACアドレス* -r
    2. /etc /lib にはなかった
  9. スナップショット作成
    1. # virsh snapshot-create-as *ブログ鯖* *スナップショット名* ”*コメント*
      • ドメインのスナップショット LAMP が作成されました
  10. LAMP(Apache+MariaDB(MySQL)+PHP)をインストールする
  11. phpをインストールする。 ※元ネタ http://server-setting.info/blog/lamp-wordpress-centos7.html
    1. # yum -y install php-mysql php php-gd php-mbstring
    2. # php –version
      • PHP 5.4.16 (cli) (built: Oct 31 2014 12:59:36)
      • Copyright (c) 1997-2013 The PHP Group
      • Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
  12. mariadb(mysql)をインストールする。
    1. # yum -y install mariadb mariadb-server
    2. # mysql –version
      • mysql Ver 15.1 Distrib 5.5.37-MariaDB, for Linux (x86_64) using readline 5.1
  13. DB起動
  14. # systemctl list-units |grep mariadb
  15. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  16. # systemctl start mariadb.service
  17. # systemctl list-units |grep mariadb
    • mariadb.service
    • loaded active running MariaDB database server
  18. # systemctl list-unit-files |grep mariadb
    • mariadb.service disabled
  19. # systemctl enable mariadb.service
    • ln -s ‘/usr/lib/systemd/system/mariadb.service’ ‘/etc/systemd/system/multi-user.target.wants/mariadb.service’
  20. # systemctl list-unit-files |grep mariadb
    • mariadb.service enabled
  21. データベースのrootのパスワードを設定
    • # mysql_secure_installation
  22. ブログのDBとアカウントを作成 ※なぜかこの方法で作成したアカウントは不調なのでphpMyAdminから作り直し
    1. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ1用DB作成シェル.sql
    2. # mysql -u*管理ユーザー* -p*管理ユーザーのパスワード* -Dmysql < ブログ2用DB作成シェル.sql
      • DB作成シェル参考
        /* ユーザを新規に作成します。パスワードも設定します。 */
        insert into user set user=”*ブログのDBユーザ*“, password=password(“*ブログのDBユーザのパスワード*“), host=”localhost”;
        /* wordpress用にデータベースを作成します。 */
        create database *ブログのデータベース*;
        /* データベースにユーザが常にアクセスできるようにします。 */
        grant all on *ブログのDBユーザのパスワード*.* to *ブログのDBユーザ*;
        /* 最新に更新 */
        FLUSH PRIVILEGES;
  23. ブログのDBとアカウントを確認
    1. # mysql -uroot -p*rootのパスワード*
    2. # mysql -u*ブログ1用ユーザ* -p*ブログ1用ユーザのパスワード* -D*ブログ1用データベース*
    3. # mysql -u*ブログ2用ユーザ* -p*ブログ2用ユーザのパスワード* -D*ブログ2用データベース*
  24. Apacheをインストールする。
    1. # yum -y install httpd 済みだった
  25. Apacheの設定を変更
    1. # vi /etc/httpd/conf/httpd.conf
      • ServerName *実際のマシン名*
  26. Apacheの起動
    1. # systemctl start httpd.service
    2. # systemctl list-units |grep httpd
      • httpd.service
      • loaded active running The Apache HTTP Server
    3. # systemctl list-unit-files |grep httpd
      • httpd.service disabled
    4. # systemctl enable httpd.service
      • ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
    5. # systemctl list-unit-files |grep httpd
      • httpd.service enabled
  27. iptablesは使わずfirewallをそのまま使うのでファイアーウォール設定
    1. # firewall-cmd –state
      • running
    2. # firewall-cmd –list-services
      • dhcpv6-client ssh
    3. # firewall-cmd –add-service=http –permanent
      • success
    4. # firewall-cmd –list-services
      1. dhcpv6-client http ssh
  28. /var/wwwにブログのバックアップを展開
    1. /etc/httpd/conf.dにブログ1用マルチドメイン設定.confをコピー
    2. /etc/httpd/conf.dにブログ2用マルチドメイン設定.confをコピー
      • マルチドメイン設定参考
        • #NameVirtualHost *:80 ←1つめのマルチドメインのみ#を取る
          <VirtualHost *:80>
              ServerName        *ブログのURL*
              DocumentRoot    “ブログのWordPressの展開先フォルダのフルパス名
              <Directory “ブログのWordPressの展開先フォルダのフルパス名“>
                  Options Includes ExecCGI FollowSymLinks
                  AllowOverride All
                  Order allow,deny
                  Allow from all
              </Directory>
              ErrorLog logs/ブログのエラ-ログ*
              CustomLog logs/*ブログのアクセスログ* combined env=!no_log
          </VirtualHost>
  29. 再起動
    1. # systemctl restart httpd
  30. とりあえずwordpressの設定画面 適当にインストしてテーブルを作る。
  31. phpmyadminをインスト
    1. # yum –enablerepo=epel install -y phpMyAdmin php-mysql php-mcrypt
    2. PC(Windows)からphpMyAdminを使える様に変更
    3. # vi /etc/httpd/conf.d/phpMyAdmin.conf
      • Require ip 127.0.0.1 *PCのIPアドレス*
      • Require ip ::1
  32.  PHPのアップデートサイズを拡張
    1. # vi php.ini
      • post_max_size = 8M ⇒ 16M
      • upload_max_filesize = 2M ⇒ 16M
    2. # systemctl restart httpd
  33. phpmyadminからDBのバックアップをリストアする。
    1. ブラウザ(http://192.168.*.*/phpmyadmin/index.php)からDBバックアップファイルをアップロードしリストア
  34. バックアップ中に白画面になったら・・・処理時間を大幅に拡張
    1. # vi /usr/share/phpMyAdmin/libraries/config.default.php
      • $cfg[‘ExecTimeLimit’] = 300; ⇒ 3600;
  35. WordPressからバックアップファイル付きのメールがうまく送信できない場合は、ブログのURLに対応するように内部?IPアドレスをhostsに追記
    1. # vi /etc/hosts
      • *.*.*.* ブログ1URL
      • *.*.*.* ブログ2URL
  36. クライアント側をシャットダウンし、ゲスト側からブログのスナップショットを作成 ※動作中でも可能だけど、非常に重い。
    1. # virsh snapshot-create-as *ブログ鯖* *スナップ名* “**コメント**”
  37. KVMホスト起動時に一緒に起動させる場合
    1. virsh autostart *ブログ鯖*



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA