1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-10-31 19:44:16 +00:00
webvirtcloud/README.md

202 lines
4.8 KiB
Markdown
Raw Normal View History

2015-05-21 12:07:55 +00:00
## WebVirtCloud Beta
## Features
2015-05-27 13:41:08 +00:00
* User can add SSH public key to root in Instance (Tested only Ubuntu)
* User can change root password in Instance (Tested only Ubuntu)
### Warning!!!
2015-06-03 05:18:47 +00:00
How to update <code>gstfsd</code> daemon on hypervisor:
2015-05-27 13:41:08 +00:00
```bash
wget -O - https://clck.ru/9VMRH | sudo tee -a /usr/local/bin/gstfsd
sudo service supervisor restart
```
2015-03-27 14:17:28 +00:00
### Description
2015-05-21 12:07:55 +00:00
WebVirtMgr is a libvirt-based Web interface for managing virtual machines. It can delegate Virtual Machine's to users. A noVNC viewer presents a full graphical console to the guest domain. KVM is currently the only hypervisor supported.
2015-03-27 14:17:28 +00:00
2015-07-31 21:12:53 +00:00
### Install WebVirtCloud panel (Ubuntu)
2015-03-27 14:17:28 +00:00
```bash
2015-06-16 05:49:30 +00:00
sudo apt-get -y install git python-virtualenv python-dev libxml2-dev libvirt-dev zlib1g-dev nginx supervisor
2015-03-27 14:17:28 +00:00
git clone https://github.com/retspen/webvirtcloud
2015-05-08 07:43:43 +00:00
cd webvirtcloud
2015-03-27 14:17:28 +00:00
sudo cp conf/supervisor/webvirtcloud.conf /etc/supervisor/conf.d
sudo cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d
cd ..
2015-06-16 05:49:30 +00:00
sudo mv webvirtcloud /srv
sudo chown -R www-data:www-data /srv/webvirtcloud
cd /srv/webvirtcloud
virtualenv venv
source venv/bin/activate
pip install -r conf/requirements.txt
python manage.py migrate
2015-06-27 13:38:10 +00:00
sudo chown -R www-data:www-data /srv/webvirtcloud
sudo rm /etc/nginx/sites-enabled/default
2015-03-27 14:17:28 +00:00
```
Restart services for running WebVirtCloud:
```bash
sudo service nginx restart
sudo service supervisor restart
```
2015-03-27 14:23:49 +00:00
2015-07-31 21:12:53 +00:00
Setup libvirt and KVM on server
2015-03-27 14:23:49 +00:00
```bash
2015-05-19 19:39:47 +00:00
wget -O - https://clck.ru/9V9fH | sudo sh
2015-03-27 14:23:49 +00:00
```
2015-03-27 14:32:33 +00:00
2015-07-31 21:12:53 +00:00
### Install WebVirtCloud panel (CentOS)
```
$ sudo yum -y install python-virtualenv python-devel libxml2-dev libvirt-devel glibc gcc nginx supervisor git libxml2 libxml2-devel git
```
#### Creating directories and cloning repo
```
mkdir /srv && cd /srv
git clone https://github.com/retspen/webvirtcloud && cd webvirtcloud
```
#### Start installation webvirtcloud
```
virtualenv venv
source venv/bin/activate
pip install -r conf/requirements.txt
cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d/
python manage.py migrate
```
#### Configure the supervisor for CentOS
Add the following after the [include] line (after **files = ... ** actually):
```
vim /etc/supervisord.conf
[program:webvirtcloud]
command=/srv/webvirtcloud/venv/bin/gunicorn webvirtcloud.wsgi:application -c /srv/webvirtcloud/gunicorn.conf.py
directory=/srv/webvirtcloud
user=nginx
autostart=true
autorestart=true
redirect_stderr=true
[program:novncd]
command=/srv/webvirtcloud/venv/bin/python /srv/webvirtcloud/console/novncd
directory=/srv/webvirtcloud
user=nginx
autostart=true
autorestart=true
redirect_stderr=true
```
#### Edit the nginx.conf file
You will need to edit the main nginx.conf file as the one that comes from the rpm's will not work. Comment the following lines:
```
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}
```
Also make sure file in **/etc/nginx/conf.d/webvirtcloud.conf** has the proper paths:
```
server {
listen 80;
server_name servername.domain.com;
access_log /var/log/nginx/webvirtcloud-access_log;
location /static/ {
root /srv/webvirtcloud;
expires max;
}
location / {
proxy_pass 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 $host:$server_port;
proxy_set_header X-Forwarded-Proto $remote_addr;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 1024M;
}
}
```
Change permissions so nginx can read the webvirtcloud folder:
```
chown -R nginx:nginx /srv/webvirtcloud
```
Add required user to the kvm group:
```
usermod -G kvm -a webvirtmgr
```
#### Install final required packages for libvirtd and others
```
wget -O - https://clck.ru/9V9fH | sudo sh
```
Let's restart nginx and the supervisord services:
```
systemctl restart nginx && systemctl restart supervisord
```
And finally, check everything is running:
```
supervisorctl status
gstfsd RUNNING pid 24187, uptime 2:59:14
novncd RUNNING pid 24186, uptime 2:59:14
webvirtcloud RUNNING pid 24185, uptime 2:59:14
```
Done!!
Go to http://serverip and you should see the login screen.
2015-03-27 14:32:33 +00:00
### Default credentials
login: admin
password: admin
2015-05-18 19:00:30 +00:00
### How To Update
```bash
2015-05-27 13:41:08 +00:00
git pull
python manage.py migrate
sudo service supervisor restart
2015-05-18 19:08:14 +00:00
```