CentOS に OpenVZ をインストールし、OpenVZ Web パネルを構成する

CentOS に OpenVZ をインストールし、OpenVZ Web パネルを構成する

注: このチュートリアルは、KVM ベースの VPS または専用サーバーに基づいています。
前提条件: CentOS 6 以上がインストールされた VPS またはサーバー。システムを更新し、vim エディターをインストールします。

1. selinuxをオフにしてiptablesを設定する(重要)

 vim /etc/sysconfig/selinux

追加されたコンテンツ:

 SELINUX=disabled

保存。
Iptables のポート 3000 を開きます。

 /sbin/iptables -I INPUT -p tcp --dport 3000 -j ACCEPT /etc/rc.d/init.d/iptables save /etc/init.d/iptables restart

2. OpenVZをインストールする

YUMリポジトリを構成する

cd /etc/yum.repos.d wget http://download.openvz.org/openvz.repo rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ yum update -y

OpenVZカーネルとvzctlやvzquotaなどのツールをインストールする

yum install vzkernel yum install vzctl vzquota

OSカーネルパラメータを設定し、/etc/sysctl.confファイルに入り、次の2つのパラメータを変更します。

VEが外部ネットワークにアクセスするには、IPを転送する必要がある

net.ipv4.ip_forward = 1

主にカーネルシステム情報のデバッグ機能を制御します

kernel.sysrq = 1

上記の設定ファイルを有効にする

modprobe bridge lsmod|grep bridge

次に再起動し、再起動後に VZ サービスが実行されているかどうかを確認します。

 chkconfig --list vz

以下の情報が返された場合は実行中であることを意味します。

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

開始する前に、OpenVZ サービスが開始されているかどうかを確認できます。

 service vz status service vz start

3. OpenVZ Webパネルをインストールする

wget -O - https://raw.githubusercontent.com/sibprogrammer/owp/master/installer/ai.sh | sh

インストールが完了したら、次の情報を使用してコントロールパネルにログインします。

 http://:3000

4. hw-daemon.rbのコンテンツを追加する

vim /opt/ovz-web-panel/utils/hw-daemon/hw-daemon.rb

次のコンテンツを追加します。

 #!/usr/bin/env ruby require 'webrick' require 'xmlrpc/server.rb' # workaround for clients with incorrect DNS records Socket.do_not_reverse_lookup = true ENV['PATH'] += ':/usr/sbin' DAEMON_VERSION = '1.3' CURRENT_DIR = File.expand_path(File.dirname(__FILE__)) + '/' CONFIG_FILE = CURRENT_DIR + 'hw-daemon.ini' PID_FILE = CURRENT_DIR + 'hw-daemon.pid' LOG_FILE = CURRENT_DIR + 'hw-daemon.log' SSL_CERT_FILE = CURRENT_DIR + "/certs/server.crt" SSL_PKEY_FILE = CURRENT_DIR + "/certs/server.key" $SERVER_ADDRESS = "0.0.0.0" $SERVER_PORT = 7767 $AUTH_KEY = "" $DEBUG = false $LOG = WEBrick::Log.new(LOG_FILE) $SSL_ENABLE = false $SSL_CERT = '' $SSL_PKEY = '' $THREADS = {} class HwDaemonApiHandler < XMLRPC::WEBrickServlet def version DAEMON_VERSION end def exec(command, args = '') output = `#{command} #{args} 2>&1` exit_code = $? $LOG.debug("Exec command: #{command} #{args}; code: #{exit_code}; output:\n#{output}") { 'exit_code' => exit_code >> 8, 'output' => output } end def job(command, args = '') job_id = generate_id t = Thread.new do result = self.exec(command, args) $THREADS[job_id]['result'] = result end $THREADS[job_id] = { 'thread' => t } { 'job_id' => job_id } end def job_status(job_id) found = $THREADS.has_key?(job_id) result = '' if found alive = $THREADS[job_id]['thread'].alive? result = $THREADS[job_id]['result'] unless alive end { 'found' => found, 'alive' => alive, 'result' => result } end def write_file(filename, content) File.open(filename, 'w') { |file| file.write(content) } $LOG.debug("Writing file: #{filename}") end def service(request, response) WEBrick::HTTPAuth.basic_auth(request, response, '') do |user, password| user == 'admin' && password == $AUTH_KEY end super end def handle(method, *params) $LOG.debug("Execute method: #{method}") super end private def generate_id symbols = [('0'..'9'),('a'..'f')].map{ |i| i.to_a }.flatten (1..32).map{ symbols[rand(symbols.length)] }.join end end class HwDaemonUtil def initialize check_environment if (0 == ARGV.size) do_help end load_config $LOG.level = WEBrick::Log::DEBUG if $DEBUG if $SSL_ENABLE require 'webrick/https' $SSL_CERT = OpenSSL::X509::Certificate.new(File.open(SSL_CERT_FILE).read) if File.readable?(SSL_CERT_FILE) $SSL_PKEY = OpenSSL::PKey::RSA.new(File.open(SSL_PKEY_FILE).read) if File.readable?(SSL_PKEY_FILE) end command = ARGV[0] case command when 'start' do_start when 'stop' do_stop when 'restart' do_restart when 'status' do_status else do_help end end def check_environment if RUBY_VERSION !~ /1\.8\..+/ puts "Ruby #{RUBY_VERSION} is not supported." exit(1) end if !File.exists?('/proc/vz/version') puts "Daemon should be run on the server with OpenVZ." exit(1) end end def do_start puts "Starting the daemon..." servlet = HwDaemonApiHandler.new servlet.add_handler("hwDaemon", servlet) servlet.set_default_handler do |name, *args| raise XMLRPC::FaultException.new(-99, "Method #{name} missing or wrong number of parameters!") end server = WEBrick::HTTPServer.new( :Port => $SERVER_PORT, :BindAddress => $SERVER_ADDRESS, :Logger => $LOG, :SSLEnable => $SSL_ENABLE, :SSLVerifyClient => ($SSL_ENABLE ? OpenSSL::SSL::VERIFY_NONE : nil), :SSLCertificate => $SSL_CERT, :SSLPrivateKey => $SSL_PKEY, :SSLCertName => [ [ "CN", WEBrick::Utils::getservername ] ] ) server.mount('/xmlrpc', servlet) ['INT', 'TERM'].each { |signal| trap(signal) { server.shutdown } } WEBrick::Daemon.start do write_pid_file server.start delete_pid_file end end def do_stop if (File.exists?(PID_FILE)) pid = File.read(PID_FILE) $LOG.debug("Killing process with PID #{pid.to_i}") Process.kill('TERM', pid.to_i) end puts "Daemon was stopped." end def do_restart do_stop do_start end def do_status if (File.exists?(PID_FILE)) puts "Daemon is running." else puts "Daemon is stopped." exit(1) end end def do_help puts "Usage: ruby hw-daemon.rb (start|stop|restart|status|help)" exit(1) end def load_config file = File.new(CONFIG_FILE, 'r') while (line = file.gets) key, value = line.split('=', 2).each { |v| v.strip! } case key when 'address' $SERVER_ADDRESS = value when 'port' $SERVER_PORT = value when 'key' $AUTH_KEY = value when 'ssl' $SSL_ENABLE = true if value == 'on' when 'debug' $DEBUG = true if value == 'on' end end file.close end def write_pid_file open(PID_FILE, "w") { |file| file.write(Process.pid) } end def delete_pid_file if File.exists?(PID_FILE) File.unlink PID_FILE end end end HwDaemonUtil.new

出典: http://www.facebooksx.com/centosopenvzopenvzwebpanel.html
これは非常に優れた実用的なチュートリアルですが、ブロガーが諦めてしまうのではないかと心配なので、ここに掲載します。

<<:  Demi Cloud: 199元/年/888MBメモリ/50GBスペース/200GBトラフィック/KVM/貴州

>>:  WootHosting: $11/年/500GBのスペース/5TBのトラフィック/ロサンゼルス

推薦する

Scorpioud: 35元/月/512MBメモリ/10GB SSDスペース/10TBトラフィック/KVM/サンノゼ

中国商人のScorpioudは新しく設立され、現在はサンノゼでのみKVM VPSを提供しています。そ...

Monitority: 無料のSMS通知によるウェブサイト監視

Monitority は、新しく設立された Web サイト監視サービス プロバイダーです。最も重要な...

Conoha.jp 1GB KVM ジャパン シンプルレビュー

詳細: Conoha.jp: 月額 930 円/2CPU/1GB メモリ/100GB スペース/無制...

ミンスクでの写真撮影はどんな感じでしょうか?ミンスクの写真レビューとウェブサイト情報

ミンスク写真ウェブサイトとは何ですか?ミンスク写真ウェブサイトでは、ベラルーシの写真家が撮影した古典...

ExCloud: 280元/月/2コア/2Gメモリ/20GB SSDスペース/無制限トラフィック/600Mbpsポート/ダイナミックIP/KVM/台湾HINET

ExCloudは2018年に設立された中国商社で、深セン-香港IPLC、上海-日本IPLC、上海-...

ブラックウォーターはどうですか?ブラックウォーターのレビューとウェブサイト情報

ブラックウォーターとは何ですか? Blackwater Worldwide は、1997 年に設立さ...

Wiiはどうですか? Wiiのレビューとウェブサイト情報

Wiiウェブサイトとは何ですか? Wii は任天堂が開発・製造した家庭用ビデオゲーム機です。初代Wi...

FlowVPS: 20ドル/四半期/4コア/4GBメモリ/30GB NVMeスペース/1TBトラフィック/KVM/オーストラリア

FlowVPS は、オーストラリアに焦点を当てた、モデレーターの trewq (別の元モデレーター ...

ロシアの新聞はどうですか?ロシアの新聞レビューとウェブサイト情報

ロシア通信社とは何ですか?ロシアのノーヴァヤ・ガゼータは1993年に創刊され、ロシアの政治や社会問題...

国内でよく使われるCDN公共図書館高速化サービス

1. Baidu CDN パブリック ライブラリ Baidu パブリック CDN は、世界で最も人気...

韓国環境省はどうでしょうか?韓国環境省の評価とウェブサイト情報

韓国環境省のウェブサイトとは何ですか?大韓民国の国家行政機関の一つで、保健福祉部、保健局、環境保健部...

RAKsmart: 月額 46 ドル / I3-2120 / 8GB メモリ / 1TB ハード ドライブ / 無制限トラフィック / 30Mbps 帯域幅 / DDOS / サンノゼ / 国内最適化

中国のホスティングプロバイダーであるRAKsmartは、サンノゼのサーバーに重点を置いており、VPS...

コロラド小児病院はどんなところですか?コロラド小児病院のレビューとウェブサイト情報

コロラド小児病院のウェブサイトとは何ですか?コロラド小児病院は、米国にある非営利の小児病院です。19...

シンガポールJiafu Groupはどうですか?シンガポール Jiafu Group のレビューとウェブサイト情報

シンガポールJiafuグループのウェブサイトは何ですか? QAF Limited はシンガポールの食...

マイクロノード: 月額 50 ドル / X3470 / 24 GB メモリ / 1 TB ハードドライブ / 10 TB 帯域幅 / ダラス

アメリカのホスティングプロバイダーである MicroNodes は、2016 年に設立されました。同...