All Projects → Altoros → SelfPortal

Altoros / SelfPortal

Licence: Apache-2.0 License
One for all virtualization abstraction layer.

Programming Languages

PHP
23972 projects - #3 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
perl
6916 projects

Projects that are alternatives of or similar to SelfPortal

vmSafeguard
vmSafeguard is a management, planning, backup system for a Vmware ESXi(s) solution, orchestrated through a Web Admin Panel. RTFM for more info. Under develop since Jun 2020
Stars: ✭ 20 (-9.09%)
Mutual labels:  vmware, vmware-esxi, virtual-machine, vmware-vsphere
upstream-institute-virtual-environment
A Vagrant-based image creator for OpenStack Upstream Training sessions
Stars: ✭ 18 (-18.18%)
Mutual labels:  vmware, virtual-machine, openstack
Asm
Assembly Tutorial for DOS
Stars: ✭ 125 (+468.18%)
Mutual labels:  vmware, virtual-machine, virtualization
vmware guest auth bypass
Proof of concept of VMSA-2017-0012
Stars: ✭ 42 (+90.91%)
Mutual labels:  vmware, vmware-esxi
Node Libvirt
libvirt bindings for google v8 javascript engine (nodejs addon)
Stars: ✭ 162 (+636.36%)
Mutual labels:  vmware, virtualization
Awesome Vm Exploit
share some useful archives about vm and qemu escape exploit.
Stars: ✭ 239 (+986.36%)
Mutual labels:  vmware, virtual-machine
vic-ui
vSphere Integrated Containers Plug-In for vSphere Client provides information about your VIC setup and allows you to deploy VCHs directly from the vSphere Client.
Stars: ✭ 23 (+4.55%)
Mutual labels:  vmware, virtualization
AsBuiltReport.VMware.vSphere
Repository for AsBuiltReport VMware vSphere module
Stars: ✭ 75 (+240.91%)
Mutual labels:  vmware, vmware-vsphere
Microverse
macOS virtualization app for M1/Apple Silicon
Stars: ✭ 71 (+222.73%)
Mutual labels:  virtual-machine, virtualization
uvmm
Virtual machine monitor for L4Re
Stars: ✭ 22 (+0%)
Mutual labels:  virtual-machine, virtualization
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (+181.82%)
Mutual labels:  virtual-machine, virtualization
Vic Product
vSphere Integrated Containers enables VMware customers to deliver a production-ready container solution to their developers and DevOps teams.
Stars: ✭ 143 (+550%)
Mutual labels:  vmware, virtualization
ansible-role-vcenter
No description or website provided.
Stars: ✭ 20 (-9.09%)
Mutual labels:  vmware, virtualization
utility-scripts-for-freenas-and-vmware-esxi
All-In-One utility scripts for FreeNAS and VMware ESXi
Stars: ✭ 59 (+168.18%)
Mutual labels:  vmware, vmware-esxi
Cloud Portal
Self service web portal for different Cloud platforms like Azure, AWS and VMWare vSphere.
Stars: ✭ 60 (+172.73%)
Mutual labels:  vmware, virtual-machine
Manageiq
ManageIQ Open-Source Management Platform
Stars: ✭ 1,089 (+4850%)
Mutual labels:  vmware, openstack
Vic
vSphere Integrated Containers Engine is a container runtime for vSphere.
Stars: ✭ 607 (+2659.09%)
Mutual labels:  vmware, virtualization
Osx Vm Templates
macOS templates for Packer and VeeWee.
Stars: ✭ 1,050 (+4672.73%)
Mutual labels:  vmware, virtualization
icingaweb2-module-vspheredb
The easiest way to monitor a VMware vSphere environment.
Stars: ✭ 88 (+300%)
Mutual labels:  vmware, vmware-vsphere
ansible virtualization
Ansible Collection: Virtualization roles
Stars: ✭ 31 (+40.91%)
Mutual labels:  vmware, virtualization

About

SelfPortal is a service, that was created by an Altoros DevOps team in order to resolve problem with granting access to company resources for developers. It has started as a small, almost static web page, that helped developers to publish their websites into the global network, but over time became a utility, that provide wide possibilites to create virtual development environment, manage it and clear while necessary. Secure control over all the resources is a kind of main idea of our project.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

In order to get SelfPortal properly functional you need to have OpenStack and vSphere (vCenter) installations in your infrastructure and a Ubuntu Linux machine. At both installations you should have prepared Images (OpenStack) or Templates (vSphere).

Installation [MANUAL]

Using vSphere and OpenStack in SelfPortal are optional. You can skip points 9 or 10 (or both) of this instruction respectively.

  1. Install NGINX, PHP (curl, json, ldap, mysqli, xml modules), MySQL/MariaDB, Perl (JSON, YAML, LWP::Protocol::https, Socket6, Switch, IO::Socket::SSL modules).
sudo -i
apt install nginx php php-curl php-json php-ldap php-mysqli php-xml -y
apt install mysql-server
apt install make gcc libssl-dev
cpan install CPAN
cpan reload cpan
cpan install JSON
cpan install YAML
cpan install LWP::Protocol::https
cpan install IO::Socket::SSL
cpan install Switch
cpan install Socket6

Do not hesitate to use php -m to verify and check all php libraries installed.

  1. Create log folder, grant writing access to www-data and setup logrotate as well.

  2. Clone this repo to /var/www/selfportal. Import database from /var/www/selfportal/db/portal.sql

  3. Setup nginx to display selfportal at /var/www/selfportal. It's better to use https, you know it.

  4. Rename /var/www/selfportal/config/config.php.example to /var/www/selfportal/config/config.php, change all values in accordance to your infrastruscture settings.

  5. Copy config/sites-enabled/proxy.conf to /etc/nginx/sites-enabled/proxy.conf. Setup writing access for www-data.

  6. Use sudo visudo command to add line to sudouers file:

www-data ALL=NOPASSWD: /usr/sbin/nginx, /usr/bin/crontab, /bin/grep

  1. Optional. If you want SelfPortal to terminate your VMs - please, add those lines to the root crontab:

0 8 */1 * * /usr/bin/php /var/www/selfportal/modules/tasks.php --action notify

1 0 */1 * * /usr/bin/php /var/www/selfportal/modules/tasks.php --action disable

5 0 */1 * * /usr/bin/php /var/www/selfportal/modules/tasks.php --action delete

10 0 */1 * * /usr/bin/php /var/www/selfportal/modules/tasks.php --action shutdown_vm

15 0 */1 * * /usr/bin/php /var/www/selfportal/modules/tasks.php --action terminate_vm

  1. Optional. Install Python OpenStack client. Go to https://pypi.python.org/pypi/python-openstackclient for details.
sudo -i
apt install python-pip
pip install python-openstackclient
  1. Optional. Install VMware vSphere Perl SDK (download it from vmware.com. Here is a link for vSphere 6.0 SDK).

Prerequisites:

sudo apt-get install lib32z1 build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

Extract the archive you've downloaded from VMware website. Install SDK executng vmware-install.pl file.

sudo vmware-vsphere-cli-distrib/vmware-install.pl

There are two common issues in the installation proccess:

  1. While executing vmware-install.pl file you will be prompted to install required dependencies. When you will agree to do this - each dependency will be install for 1-2 minutes. But one of them, called Soap::Lite will be installed. Нажать Ctrl+C один раз.

  2. Perl will throw warnings, until you change one line at /usr/share/perl//VMware/VICommon.pm, where is a version of your Perl. For 6.0 - it was a line #2332.

Original line:

return defined $user_agent->cookie_jar and $user_agent->cookie_jar->as_string ne '';

Line to replace:

return (defined $user_agent->cookie_jar and $user_agent->cookie_jar->as_string ne '');

Installation [SEMI-AUTOMATIC]

You can use install.sh file for semi-automatic install. Nevertheless, you'll still have to install Perl SDK (last point of instruction) manually.

Testing and using

Once deployed, you can open SelfPortal at your web browser. The login window will appear:

Login

But do not hurry to celebrate - it's just a static web page, that doesn't require even a database connection. Input your credentials and press "Login" button. If the following window appears without causing any problems, such as incessant page refreshing, you're probably installed everything correctly.

Dashboard

But, just to be sure, lets start some virtual machines:

Deploying vms

Warning! vSphere VM creation is asynchronous and OpenStack is not. This part of instruction is based on vSphere VM creation.

Just wait a little (VM creation time is really depends on multiple conditions, such as image size, host performance and so on), then press refresh icon at the top right corner of the page. If your vCenter shows, that VM is ready, but SelfPortal (within a time of one minute) it doesn't - you've probably forgot to add www-data permissions to modify root crontab.

Success deployment

That's it! Now you can check your notifications...

Dashboard

...or go to admin panel and check the VMs of other users (if you have sufficient permissions, of course😉).

Contributing

We are freely opened to any contributor, who wants to help us to improve our product.

Authors

  • Alex Merguriev - Idea, initial development - Merguriev
  • Arsenii Petrovich - Initial&Further development, bug fixing - Petrovich

See also the list of contributors who participated in this project.

License

This project is licensed under Apache 2.0 License. See license file for details.

Acknowledgments && Built-ins

Development plans

  • Acrhitecture&Interface
  • Splitted rights between user and administrator, admin panel
  • HTTP website proxy, blacklist
  • User list in admin panel
  • OpenStack provider - VM creation, modification, deletion
  • vSphere provider - VM creation, modification, deletion
  • Terminator - delete old unused websites and VMs
  • VMs Backups
  • Info for users about why vSphere VM was failed to create
  • HTTPS website proxy using wildcard certificates
  • WebSocket proxy
  • VMs Backups
  • Mounting ISO images to vSphere VMs
  • Info for users about why vSphere VM was failed to create
  • Limits for departments
  • Support more providers
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].