วันอังคารที่ 19 กุมภาพันธ์ พ.ศ. 2556

จัดการ VirtualBox ผ่านเว็บไซต์ด้วย phpvirtualbox


 ก่อนอื่นเราต้องมี VirtualBox ก่อน ต้องใช้รุ่น Oracle เท่านั้น ใช้ Open Source Edition ไม่ได้นะครับ :)
แปลงร่างกันก่อน
sudo -s
จากนั้นใช้คำสั่ง wget เพื่อเอา VirtualBox มาติดตั้ง เลือกรุ่นที่ต้องการให้ดูจากหน้าดาวน์โหลดของ VirtualBox ของผมใช้ Ubuntu Server 12.04 LTS รุ่น Precise Pagolin ครับ
wget http://download.virtualbox.org/virtualbox/4.2.0/virtualbox-4.2_4.2.0-80737~Ubuntu~precise_amd64.deb
จากนั้นสั่งติดตั้งด้วยคำสั่ง
dpkg -i virtualbox-4.2_4.2.0-80737~Ubuntu~precise_amd64.deb
เมื่อติดตั้งได้แล้ว ให้เพิ่มผู้ใช้ vbox และกำหนดให้อยู่ในกลุ่ม vboxusers
useradd -m vbox -G vboxusers
กำหนดรหัสผ่านให้ผู้ใช้ vbox
passwd vbox
สร้างไฟล์ /etc/default/virtualbox เพื่อเก็บ config ของ VirtualBox
vi /etc/default/virtualbox
ใส่ข้อมูลลงไปดังนี้
VBOXWEB_USER=vbox
จากนั้นกำหนดให้ Web Services ของ VirtualBox ทำงานทุกครั้งที่เปิดเครื่อง และสั่ง start service โดยใช้คำสั่ง
update-rc.d vboxweb-service defaults /etc/init.d/vboxweb-service start
ตอนนี้เราก็ได้ VirtualBox ที่เราเรียกกันว่า VirtualBox Headless กันแล้ว ทีนี้มาติดตั้ง phpvirtualbox กันครับ ติดตั้งแพคเกจที่จำเป็นต้องใช้กันก่อน
apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apache2 apache2-doc apache2-suexec libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php5-common php5-mysql php5-suhosin php-pear wget
ดาวน์โหลด phpvirtualbox จากเว็บไซต์โครงการ http://code.google.com/p/phpvirtualbox
wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-10.zip
แตกไฟล์ zip แล้วคัดลอกไปยัง /var/www
unzip phpvirtualbox-4.1-10.zip mv phpvirtualbox-4.1-10 phpvirtualbox
แก้ไขค่า config ใน /var/www/phpvirtualbox ดังนี้
cp config.php-example config.php vi config.php
ใส่ข้อมูลในไฟล์ ดังนี้
var $username = 'vbox'; var $password = 'very-secret-password';
เมื่อตั้งค่าเสร็จให้คุณสั่ง start หรือ restart Apache
/etc/init.d/apache restart
แล้วเปิดเว็บ browser ไปยังเซิร์ฟเวอร์ของเราได้เลย ตัวอย่างเช่น http://my-virtualbox-server.com/virtualbox/ จะปรากฎหน้าจอให้เราใส่ username และ password คือ admin ที่เหลือก็เหมือนการทำงานบน GUI ปกติแล้วครับ :)

Epoptes (Master-Client) เสมือน Net support School บน Linux

Installation

Epoptes สามารถติดตั้ง Package ได้เลยใน Linux ตระกูล Debian และ Ubuntu  ส่วนรตระกูล Red Hat ต้องติดต้องส่วนเสริมก่อนดังนี้

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0350B375
series=$(lsb_release -s -c)test "$series" = squeeze && series=lucidtest "$series" = wheezy && series=oneiric
echo "deb http://ppa.launchpad.net/epoptes/ppa/ubuntu $series main" > \
     "/etc/apt/sources.list.d/epoptes-ppa-$series.list"
apt-get update

Server package installation

การติดตั้ง Server Package ต้องเป็น User Root  หรือเที่ยบเท่า Root ( ใช้ sudo บน Ubuntu หรือ su - on Debian):

==> now run the commands from the "Adding the epoptes PPA to your sources" step
sudo apt-get install epoptes

Configuration Server

ทำการแก้ไขไฟล์  /etc/default/epoptes   #( root only)

# Epoptes server will use the following group for the communications socket.
# That means that any user in that group will be able to launch the epoptes UI
# and control the clients.
SOCKET_GROUP=staff           # ยกตัวอย่าง Group ชื่อ staff


หมายเหตุ  SOCKET_GROUP คือ GROUP ที่ระบุให้ User มีสิทธ์ที่จะสามารถใช้งาน Program Epoptes ได้
การสร้าง Group ใน Ubuntu

--> sudo addgroup staff          # add group staff            
--> sudo gpasswd -a testuser staff     # set user "testuser " ในอยู่ในกลุ่มของ staff

Client package installation for standalone clients

==> now run the commands from the "Adding the epoptes PPA to your sources" stepsudo apt-get install epoptes-client

Configuration Client

ทำการแก้ไขไฟล์  /etc/default/epoptes-client         #(root only)
# The server which epoptes-client will be connecting to.
# If unset, thin client user sessions running on the server will try to connect
# to "localhost", while thin client root sessions and fat or standalone clients
# will try to connect to "server".
# LTSP automatically puts "server" in /etc/hosts for thin and fat clients,
# but you'd need to put "server" in DNS manually for standalone clients.
SERVER= 192.168.253.1                           # which is the DNS name or IP address of the server 
    # save and exit
epoptes-client -c             # Fetches the OpenSSL certificate from the server                                                sh -n /etc/default/epoptes

Manually updating the OpenSSL certificate

update the epoptes OpenSSL certificate, but if you need to, here's a command to get you started

openssl req -batch -x509 -nodes -newkey rsa:1024 -days 1826 -keyout /etc/epoptes/server.key -out /etc/epoptes/server.crt

Install Google Chrome with YUM on CentOS 6.2

Enable Google YUM repository

Add following to /etc/yum.repos.d/ file:

# vi etc/yum.repos.d/CentOS-Base.repo

At the last line

(32-bit)
[google-chrome]
name=google-chrome - 32-bit
baseurl=http://dl.google.com/linux/chrome/rpm/stable/i386
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

(64-bit)
 [google-chrome]
name=google-chrome - 64-bit
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

 Note: Both 32-bit and 64-bit repos can be placed in the same file.


Install Google Chrome with YUM (as root user)  

## Install Google Chrome Stable version ##

# yum install google-chrome-stable

wait a min.....
And Done.....


    :P


 



Installing Fabric Control Client

Requirements
  • Python 2.5+ with the development headers
  • python-setuptools and pip (optional, but preferred)
  • gcc

CentOS/RHEL 6.x

# yum install gcc python-devel python-setuptools
# easy_install pip
# pip install fabric

Set Authorized_Keys
(server)

$ ssh-keygen -t rsa

Open file /root/.ssh/id_rsa.pub And copy your public key
        (Example)
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAztitxAcgo8TpH0FgJFYW/sieMTWLqdTczN2E/BrXdbUb/1zS2S23n02Yg8NHuezOrf+STJ/ejQGnIJ5px4TN1FULwSP+mv8CIscdnJfWc9UQYYw5Y55FHTGNyJDOSnda++mgoS0nbjewGcNkzxE4WvAKXlJNVBkJs7d0sb+XjCn0z822tQznum8b27A7p5e0wbhmNcz0R92JEShS9OSle/72mlmueYt5ERRAxgcG2W6Qhb/asd#R$R$FEfaffvfkD1tDyqHm4CdBjUlv55RalncgzmEq33vjJLyDmw+MeGcYE6PWVi5KK+JzegyEOCZiA30iIYTPDVcLNNWvEkJf9dMLPw== root@xxxxxxxxxxxxxx

(All Clients)
  Add a new file  /root/.ssh/authorized_keys. and copy server public key

    (file name authorized_keys)

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAztitxAcgo8TpH0FgJFYW/sieMTWLqdTczN2E/BrXdbUb/1zS2S23n02Yg8NHuezOrf+STJ/ejQGnIJ5px4TN1FULwSP+mv8CIscdnJfWc9UQYYw5Y55FHTGNyJDOSnda++mgoS0nbjewGcNkzxE4WvAKXlJNVBkJs7d0sb+XjCn0z822tQznum8b27A7p5e0wbhmNcz0R92JEShS9OSle/72mlmueYt5ERRAxgcG2W6Qhb/asd#R$R$FEfaffvfkD1tDyqHm4CdBjUlv55RalncgzmEq33vjJLyDmw+MeGcYE6PWVi5KK+JzegyEOCZiA30iIYTPDVcLNNWvEkJf9dMLPw== root@xxxxxxxxxxxxxx
Save And Exit

Creating a fabfile
Create a basic fabfile.py which runs uptime on each of the remote hosts.(Do it on the server.)
#!/usr/bin/env python

from fabric.api import env, run

env.hosts = [ '192.168.1.100', '192.168.1.101', '192.168.1.102' ]

def uptime():
  run('uptime')
env.hosts ,This array is used to store the ip address of the client.

Result :






การติดตั้งและใช้งาน SSL (HTTPS) บน CentOS

HTTPS เป็นการเรียกใช้งาน Web Application แบบโหมด Security โดยใช้ Secure Socket Layer (SSL) encrypt และ decrypt ข้อมูลที่ส่งเมื่อมี Client เรียกใช้งาน (HTTPS ใช้พอร์ต 443 แทนที่ HTTP พอร์ต 80 ซึ่งถ้าเราใช้ port 443 ในการเรียกใช้งานเว็บโปรเจ็คของเรา เราก็จะใช้พอต 80 ทำอย่างอื่นได้ แต่แนะนำให้ทำ Alias บน https ไปด้วยกันดีกว่า)

      โดยปกติการทำ การสร้าง SSL จะต้องลงทะเบียนเสียเงินให้กับพวก CA ต่างๆ แต่อันนี้เป็นการติดตั้งแบบไม่ไม่เสียเงิน คุณภาพอาจอยู่แค่ปานกลาง