1.kvmの展開1.1 kvmのインストール// ファイアウォールと selinux をオフにする [root@kvm ~]# systemctl を無効にします --now ファイアウォールd.service /etc/systemd/system/multi-user.target.wants/firewalld.service を削除しました。 /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service を削除しました。 [root@kvm ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@kvm ~]# 再起動 //epel ソースとツールキットをダウンロードします [root@kvm ~]# yum -y install epel-release vim wget net-tools unzip zip gcc gcc-c++ //CPU が KVM をサポートしているかどうかを確認します。結果に vmx (Intel) または svm (AMD) が含まれている場合、CPU がそれをサポートしていることを意味します [root@kvm ~]# egrep -o 'vmx|svm' /proc/cpuinfo //kvm をインストール [root@kvm ~]# yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils libguestfs-tools //ブリッジネットワークカード、br0 を使用して ens160 ネットワークカードをブリッジします [root@kvm ~]# cd /etc/sysconfig/network-scripts/ [root@kvm ネットワーク スクリプト]# cp ifcfg-ens33 ifcfg-br0 [root@kvm ネットワーク スクリプト]# cat ifcfg-br0 TYPE=ブリッジ デバイス=br0 NM_CONTROLLED=いいえ BOOTPROTO=静的 名前=br0 ONBOOT=はい IPアドレス=192.168.237.131 ネットマスク=255.255.255.0 ゲートウェイ=192.168.237.2 DNS1=114.114.114.114 DNS2=8.8.8.8 [root@kvm ネットワーク スクリプト]# cat ifcfg-ens33 タイプ=イーサネット BOOTPROTO=静的 名前=ens33 デバイス=ens33 ONBOOT=はい ブリッジ=br0 NM_CONTROLLED=いいえ //ネットワークを再起動します[root@kvm ~]# systemctl restart network [root@kvm ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 UNKNOWN グループのデフォルト qlen 1000 リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 スコープ ホスト lo valid_lft 永久 preferred_lft 永久 inet6 ::1/128 スコープホスト valid_lft 永久 preferred_lft 永久 2: ens33: <BROADCAST、MULTICAST、UP、LOWER_UP> mtu 1500 qdisc pfifo_fast マスター br0 状態 UP グループ デフォルト qlen 1000 リンク/イーサ 00:0c:29:7b:10:a5 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe7b:10a5/64 スコープリンク valid_lft 永久 preferred_lft 永久 3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト qlen 1000 リンク/イーサ 00:0c:29:7b:10:a5 brd ff:ff:ff:ff:ff:ff inet 192.168.237.131/24 brd 192.168.237.255 スコープ グローバル br0 valid_lft 永久 preferred_lft 永久 inet6 fe80::20c:29ff:fe7b:10a5/64 スコープリンク valid_lft 永久 preferred_lft 永久 4: virbr0: <NO-CARRIER、BROADCAST、MULTICAST、UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 リンク/イーサ 52:54:00:1c:33:d6 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 スコープ グローバル virbr0 valid_lft 永久 preferred_lft 永久 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast マスター virbr0 状態 DOWN グループ デフォルト qlen 1000 リンク/イーサ 52:54:00:1c:33:d6 brd ff:ff:ff:ff:ff:ff //サービスを開始します [root@kvm ~]# systemctl enable --now libvirtd //インストール結果を確認する [root@kvm ~]# lsmod|grep kvm kvm_intel 188740 0 kvm 637289 1 kvm_intel irqバイパス 13503 1 kvm //テスト[root@kvm ~]# virsh -c qemu:///system list ID 名前 ステータス---------------------------------------------------- [root@kvm ~]# virsh --version 4.5.0 [root@kvm ~]# virt-install --version 1.5.0 [root@kvm ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm [root@kvm ~]# ll /usr/bin/qemu-kvm lrwxrwxrwx 1 root root 21 10月20日 23:14 /usr/bin/qemu-kvm -> /usr/libexec/qemu-kvm //ブリッジ情報を表示する [root@kvm ~]# brctl show ブリッジ名 ブリッジID STP対応インターフェース br0 8000.000c297b10a5 いいえens33 virbr0 8000.5254001c33d6 はい virbr0-nic 1.2 kvm Web管理インターフェースのインストールkvm の Web 管理インターフェースは、webvirtmgr プログラムによって提供されます。 //依存パッケージをインストールします[root@kvm ~]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx python-devel //githubからwebvirtmgrコードをダウンロードする [root@kvm ~]# cd /usr/local/src/ [root@kvm src]# git clone git://github.com/retspen/webvirtmgr.git 'webvirtmgr' にクローンしています... リモート: オブジェクトを列挙しています: 5614、完了。 リモート: 合計 5614 (デルタ 0)、再利用 0 (デルタ 0)、パック再利用 5614 オブジェクトの受信: 100% (5614/5614)、2.97 MiB | 29.00 KiB/s、完了。 処理デルタ: 100% (3606/3606)、完了。 //webvirtmgr をインストール [root@kvm src]# cd webvirtmgr/ [root@kvm webvirtmgr]# pip インストール -r requirements.txt django==1.5.5 を収集しています (-r requirements.txt (行 1) から) https://files.pythonhosted.org/packages/38/49/93511c5d3367b6b21fc2995a0e53399721afc15e4cd6eb57be879ae13ad4/Django-1.5.5.tar.gz (8.1MB) をダウンロードしています 100% |██████████████████████████████████████| 8.1MB 49kB/秒 ...... //sqlite3がインストールされているかどうかを確認する [root@kvm webvirtmgr]# python Python 2.7.5 (デフォルト、2020 年 11 月 16 日、22:23:17) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] linux2 上 詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。 >>> sqlite3をインポート >>> 終了() //アカウント情報を初期化する [root@kvm webvirtmgr]# python manage.py syncdb 警告:root:local_settings ファイルが見つかりません。 テーブルを作成しています... auth_permission テーブルを作成しています auth_group_permissions テーブルを作成しています auth_groupテーブルを作成しています auth_user_groups テーブルを作成しています テーブル auth_user_user_permissions を作成しています auth_user テーブルを作成しています テーブル django_content_type を作成しています テーブル django_session を作成しています テーブル django_site を作成しています テーブル servers_compute を作成しています テーブルinstance_instanceを作成しています テーブルcreate_flavorを作成しています Django の認証システムをインストールしたばかりなので、スーパーユーザーは定義されていません。 今すぐ作成しますか? (はい/いいえ): はい ユーザー名(「root」を使用する場合は空白のままにしてください): admin メールアドレス: [email protected] パスワード: パスワード(再度): スーパーユーザーが正常に作成されました。 カスタム SQL をインストールしています... インデックスをインストールしています... 1 つの器具から 6 つのオブジェクトをインストールしました //Webページを指定されたディレクトリにコピーします [root@kvm webvirtmgr]# mkdir /var/www [root@kvm webvirtmgr]# cp -r /usr/local/src/webvirtmgr /var/www/ [root@kvm webvirtmgr]# chown -R nginx.nginx /var/www/webvirtmgr/ //キーを生成[root@kvm ~]# ssh-keygen -t rsa 公開/秘密 RSA キー ペアを生成しています。 キーを保存するファイル (/root/.ssh/id_rsa) を入力します。 ディレクトリ '/root/.ssh' を作成しました。 パスフレーズを入力してください (パスフレーズがない場合は空白): 同じパスフレーズをもう一度入力してください: あなたの識別情報は /root/.ssh/id_rsa に保存されました。 公開鍵は /root/.ssh/id_rsa.pub に保存されました。 キーのフィンガープリントは次のとおりです。 SHA256:icyLAYmyxABKsogsIHmJqGjSby0ogFwf1p2zeiPwuxY ルート@kvm キーのランダムアート画像は次のとおりです。 +---[RSA 2048]----+ |O+ . . . . | |/ooo o . + | |&*+ o . o | |X+.. = . o | |= o..* S | |. . +oE o | | . .... = . | | か | ... | +----[SHA256]-----+ [root@kvm ~]# ssh-コピーID 192.168.237.131 /usr/bin/ssh-copy-id: INFO: インストールされるキーのソース: "/root/.ssh/id_rsa.pub" ホスト「192.168.237.131 (192.168.237.131)」の信頼性を確立できません。 ECDSA キーのフィンガープリントは SHA256:/AR9dYUN0PN9LOHYWfHeUe5LgyczVMH9mYv9+2GcAbM です。 ECDSA キーのフィンガープリントは MD5:30:f6:de:5a:7d:c2:08:b5:b7:31:61:4a:4e:dd:32:73 です。 本当に接続を続行しますか (はい/いいえ)? はい /usr/bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています /usr/bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください [email protected]のパスワード: 追加されたキーの数: 1 ここで、「ssh '192.168.237.131'」を使用してマシンにログインしてみます。 必要なキーだけが追加されたことを確認します。 //ポート転送を設定する [root@kvm ~]# ssh 192.168.237.131 -L localhost:8000:localhost:8000 -L localhost:6080:localhost:60 最終ログイン: 2021年10月20日水曜日 23:12:00 192.168.237.1から [root@kvm ~]# ss -anlt 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート 聞く 0 128 127.0.0.1:6080 *:* 聞く 0 128 127.0.0.1:8000 *:* 聞く 0 128 *:111 *:* 聞く 0 5 192.168.122.1:53 *:* 聞く 0 128 *:22 *:* 聞く 0 100 127.0.0.1:25 *:* 聞く 0 128 [::1]:6080 [::]:* 聞く 0 128 [::1]:8000 [::]:* 聞く 0 128 [::]:111 [::]:* 聞く 0 128 [::]:22 [::]:* 聞く 0 100 [::1]:25 [::]:* //nginx を設定する [root@kvm ~]# cd /etc/nginx/ [root@kvm nginx]# ls conf.d fastcgi_params mime.types scgi_params win-utf デフォルト.d fastcgi_params.default mime.types.default scgi_params.default fastcgi.conf koi-utf nginx.conf uwsgi_params fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default [root@kvm nginx]# cp nginx.conf nginx.conf-bak //バックアップ [root@kvm nginx]# cat nginx.conf ユーザー nginx; ワーカープロセスは自動です。 エラーログ /var/log/nginx/error.log; pid /run/nginx.pid; /usr/share/nginx/modules/*.conf をインクルードします。 イベント { ワーカー接続 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log メイン; ファイル送信オン; tcp_nopush オン; tcp_nodelay オン; キープアライブタイムアウト65; タイプハッシュの最大サイズは2048です。 /etc/nginx/mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; /etc/nginx/conf.d/*.conf を含めます。 サーバー{ 聞く 80; server_name ローカルホスト; /etc/nginx/default.d/*.conf を含めます。 位置 / { ルートhtml; インデックス index.html index.htm; } エラーページ 404 /404.html; 場所 = /40x.html { } エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { } } } [root@kvm conf.d]# pwd nginx.conf は、 [root@kvm conf.d]# vi webvirtmgr.conf [root@kvm conf.d]# cat webvirtmgr.conf サーバー{ 80 default_server をリッスンします。 サーバー名 $ホスト名; #access_log /var/log/nginx/webvirtmgr_access_log; 場所 /static/ { ルート /var/www/webvirtmgr/webvirtmgr; 有効期限が最大になります。 } 位置 / { プロキシパス http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; proxy_set_header ホスト $host:$server_port; proxy_set_header X-Forwarded-Proto $remote_addr; プロキシ接続タイムアウト 600; プロキシ読み取りタイムアウト 600; プロキシ送信タイムアウト 600; クライアントの最大ボディサイズ 1024M; } } // ローカルマシンのポート 8000 にバインドされていることを確認します [root@kvm ~]# vim /var/www/webvirtmgr/conf/gunicorn.conf.py bind = '0.0.0.0:8000' //この行を変更します backlog = 2048 //nginxを起動する [root@kvm ~]# systemctl enable --now nginx /etc/systemd/system/multi-user.target.wants/nginx.service から /usr/lib/systemd/system/nginx.service へのシンボリックリンクを作成しました。 [root@kvm ~]# ss -anlt 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート 聞く 0 128 127.0.0.1:6080 *:* 聞く 0 128 127.0.0.1:8000 *:* 聞く 0 128 *:111 *:* 聞く 0 128 *:80 *:* 聞く 0 5 192.168.122.1:53 *:* 聞く 0 128 *:22 *:* 聞く 0 100 127.0.0.1:25 *:* 聞く 0 128 [::1]:6080 [::]:* 聞く 0 128 [::1]:8000 [::]:* 聞く 0 128 [::]:111 [::]:* 聞く 0 128 [::]:22 [::]:* 聞く 0 100 [::1]:25 [::]:* //スーパーバイザーを設定する [root@kvm ~]# vim /etc/supervisord.conf #最後に次の内容を追加します [program:webvirtmgr] コマンド=/usr/bin/python2 /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.py ディレクトリ=/var/www/webvirtmgr 自動起動=true 自動再起動=true ログファイル=/var/log/supervisor/webvirtmgr.log ログ標準エラー=true ユーザー=nginx [プログラム:webvirtmgr-console] コマンド=/usr/bin/python2 /var/www/webvirtmgr/console/webvirtmgr-console ディレクトリ=/var/www/webvirtmgr 自動起動=true 自動再起動=true stdout_logfile=/var/log/supervisor/webvirtmgr-console.log リダイレクトstderr=true ユーザー=nginx //スーパーバイザを起動する [root@kvm ~]# systemctl enable --now supervisord /etc/systemd/system/multi-user.target.wants/supervisord.service から /usr/lib/systemd/system/supervisord.service へのシンボリックリンクを作成しました。 [root@kvm ~]# systemctl ステータス supervisord ● supervisord.service – プロセス監視および制御デーモン ロード済み: ロード済み (/usr/lib/systemd/system/supervisord.service; 有効; ベンダープリセット: 無効) アクティブ: 2021-10-20 水曜日 23:53:33 CST からアクティブ (実行中)、12 秒前 プロセス: 46734 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (コード=終了、ステータス=0/成功) メインPID: 46737 (スーパーバイザー) //nginxユーザーを設定する [root@kvm ~]# su - nginx -s /bin/bash -bash-4.2$ ssh-keygen -t rsa 公開/秘密 RSA キー ペアを生成しています。 キーを保存するファイル (/var/lib/nginx/.ssh/id_rsa) を入力します。 ディレクトリ '/var/lib/nginx/.ssh' を作成しました。 パスフレーズを入力してください (パスフレーズがない場合は空白): 同じパスフレーズをもう一度入力してください: あなたの識別情報は /var/lib/nginx/.ssh/id_rsa に保存されました。 公開鍵は /var/lib/nginx/.ssh/id_rsa.pub に保存されました。 キーのフィンガープリントは次のとおりです。 SHA256:S46h+CYFvCGW+6z68PXZgbKNLLdPdiPD6LmzPOpYBwI nginx@kvm キーのランダムアート画像は次のとおりです。 +---[RSA 2048]----+ | | | | |え..| |う+ | |o.o+ . S | | oo+ * . | |. =.* O * | | =oX=X * o | |++**%B= . | +----[SHA256]-----+ -bash-4.2$ touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config -bash-4.2$ chmod 0600 ~/.ssh/config -bash-4.2$ ssh-コピー-id [email protected] /bin/ssh-copy-id: INFO: インストールされるキーのソース: "/var/lib/nginx/.ssh/id_rsa.pub" /bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています /bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください 警告: '192.168.237.131' (ECDSA) が既知のホストのリストに永続的に追加されました。 [email protected]のパスワード: 追加されたキーの数: 1 ここで、「ssh '[email protected]'」を使用してマシンにログインしてみます。 必要なキーだけが追加されたことを確認します。 -bash-4.2$ 終了 ログアウト[root@kvm ~]# vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla [リモート libvirt SSH アクセス] アイデンティティ=unix-user:root アクション=org.libvirt.unix.manage 結果Any=はい 結果非アクティブ=はい 結果アクティブ=はい [root@kvm ~]# chown -R root.root /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla [root@kvm ~]# systemctl nginxを再起動します [root@kvm ~]# systemctl libvirtdを再起動します 1.3 kvm ウェブインターフェース管理IPアドレス経由でブラウザからKVMにアクセスする 1.3.1 kvm 接続管理SSH 接続を作成します。 1.3.2 kvm ストレージ管理ストレージの作成: ストレージを入力: リモート接続ソフトウェアを使用して、ISOイメージファイルをストレージディレクトリ/var/lib/libvirt/images/にアップロードします。 [root@kvm ~]# ls /var/lib/libvirt/images/ CentOS-8.4.2105-x86_64-dvd1.iso WebインターフェースにISOイメージが存在するかどうかを確認する システムインストールイメージを作成する 1.3.3 kvm ネットワーク管理ブリッジネットワークの追加 1.3.4 インスタンス管理インスタンス(仮想マシン)の作成 CDを仮想マシンに挿入しますウェブ上の仮想マシンにアクセスするためのパスワードを設定する仮想マシンを起動するコンソールを開く仮想マシンのインストールインストール完了故障Web インターフェイスにアクセスできず、コマンド ラインでエラーが報告されます (受け入れ: 開いているファイルが多すぎます) nginxを設定する[root@kvm ~]# vim /etc/nginx/nginx.conf ユーザー nginx; ワーカープロセスは自動です。 エラーログ /var/log/nginx/error.log; pid /run/nginx.pid; worker_rlimit_nofile 655350; //この行を追加 [root@kvm ~]# systemctl restart nginx.service システムパラメータを設定する [root@kvm ~]# vim /etc/security/limits.conf # ファイルの終わり //次の2行を追加 * soft nofile 655350 * ハード ノーファイル 655350 仮想マシンを再起動すると、[root@kvm ~]# reboot に正常にアクセスできるようになります。 上記は、KVM 仮想化のインストール、展開、管理チュートリアルの詳細な内容です。KVM 仮想化のインストール、展開、管理の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: ウェブ開発者やデザイナーにとって欠かせないオンラインウェブツールとアプリケーション
序文この記事では、DBA がいないチームが参考にできるように、MySQL の一般的な使用に関するヒン...
1. ユーザーにルーチン作成権限がある場合は、プロシージャ | 関数を作成できます。 2. ユーザー...
High Performance MySQL バージョン 3 (セクション 4.1.7) を見ると、...
序文この記事では、SQL インジェクションを回避するために pdo の前処理メソッドを使用します。詳...
Centos6.4 で mysql5.7.18 をインストールするための具体的な手順が全員に共有され...
Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...
目次1. データベースプログラミングの基本条件2. Java でのデータベースプログラミング: JD...
目次概要CommonJS 仕様Node の CommonJS 仕様の実装モジュールのエクスポートとイ...
1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...
公式ドキュメント: https://dev.mysql.com/doc/refman/5.7/en/...
目次イメージの作成ファイル構造Dockerファイルエントリポイント関数ファイルを生成するイメージを構...
勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...
dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...
このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...
目次序文1. 現在の時刻を取得する1.1 現在の日付と時刻を返す1.2 現在の日付を取得する1.3 ...