Skip to content
/ ovpl Public

ADS - Automated Deployment Service

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
license.org
Notifications You must be signed in to change notification settings

vlead/ovpl

Repository files navigation

Settings for ADS

Execute the following steps, to configure and then run ADS as a service:

Edit the ovpl/config/ directory

Copy ovpl/config/sample_config.json to ovpl/config/config.json and make the following changes:

  • To set the proxies.
"ENVIRONMENT": {
    "HTTP_PROXY":"http://proxy. vlabs.ac.in:8080",
    "HTTPS_PROXY":"http://proxy.vlabs.ac.in:8080"
},
  • if no proxies are used,
"ENVIRONMENT": {
    "HTTP_PROXY":"",
    "HTTPS_PROXY":""
},
  • Set the COOKIE_SECRET value in CONTROLLER_CONFIG to some long randomly generated string.
"COOKIE_SECRET": "<generate a long random UUID>",
  • Set the SERVER_IP in LOGSERVER_CONFIGURATION to the IP address of the

machine on which the ADS services are running.

"LOGSERVER_CONFIGURATION": {
            "SERVER_IP": "ads-server-private-ip",
	    },
  • Choose POOLID and ADAPTERID from VPOOLS section. Make the appropriate change in ADAPTER_TO_USE. The ADAPTERID for aws_adapter, centos_openvz_adapter and centos_bridged_adapter is 1, 2 and 3 respectively.
"ADAPTER_TO_USE" : {"POOLID" : 1, "ADAPTERID" : 2}

Settings for base_config

  1. Copy config/adapters/sample_base_config.py to config/adapters/base_config.py. For aws_adapter, no change in this file has to be done. For centos_openvz_adapter and centos_bridged_adapter make the following changes in the file:
    1. If the services are running on the base machine, set ADS_ON_CONTAINER to False and copy public key (id_rsa.pub) to authorized_keys
    2. If the services are running on a container, set ADS_ON_CONTAINER to True and copy the public key of the container to the authorized_keys of the base machine.
    3. Set BASE_IP_ADDRESS = “root@<IP>” where IP is the ip address of base machine on which containers are created.
    4. Set ADS_SERVER_VM_ID to CTID of container running ADS. ADS_SERVER_VM_ID = “<CTID>”
    5. SUBNET field to match with the subnet of your base machine If the ip address of your base machine is 10.2.58.XXX, SUBNET = [“10.2.58.12/28”]
    6. ADAPTER_NAME_SERVER, set the field to a specific nameserver that is used in the cluster or leave it as ‘inherit’ to use the nameserver configuration from the base machine.
    7. SECRET_KEY, used to authenticate the ADS WEB APP.

Settings for centos_bridged_adapter

Copy config/adapters/sample_centos_bridged_config.py to config/adapters/centos_bridged_config.py, and change the SUBNET_BRIDGE in the file.

Settings for centos_openvz_adapter

  • Copy config/adapters/sample_centos_openvz_config.py to config/adapters/centos_openvz_config.py.

Settings for aws_adapter

Copy config/adapters/sample_aws_config.py to config/adapters/aws_config.py, and edit the values accordingly. The private key key_file_name.pem should be copied inside src/ directory. See here for more details.

Commands to Manage the Service

  • As root, go into ovpl directory and run manage_services.sh file:
$ cd ovpl
$ ./manage_services (or) ./manage_services start
  • To stop the services
$ cd ovpl
$ ./manage_services stop
  • To stop or start specific service use ./manage_services.sh [action] [services]
    • [action] = start (or) stop
    • [services] = LOGGER (or) ADAPTER (or) CONTROLLER
$ cd ovpl
$ ./manage_services.sh start LOGGER
  • For more help use ./manage_services.sh --help.

Setting up ADS-web-app

Install dependencies

This assumes apache server is installed. If not, please install the apache server.

sudo su -
yum update -y
yum install epel-release
yum install "mod_wsgi" -y
yum install python-pip
cd /root/ovpl/src/ads-web-app
python setup.py install

rsync -avz --progress /root/ovpl/src/ads-web-app /var/www/html/
chmod -R 777 /var/www/html/ads-web-app

Setup Google Oauth credentials

  • Create a project at Google Dashboard and create Oauth credentails.
  • Provide CONSUMER_KEY and CONSUMER_SECRET in /var/www/html/ads-web-app/config.py.
CONSUMER_KEY = "<consumerkey>"
CONSUMER_SECRET = "<consumer secret key>"

Setup ADS credentials

  • Provide ADS running server IP/Domain name to variable ADS_URL.
  • Set secret key of ADS server to variable ADS_SECRET_KEY.
ADS_URL = "http://<ip/domain>:5000"
ADS_SECRET_KEY= "defaultadskey"

  • Add emails ids to AUTHORIZED_USERS
AUTHORIZED_USERS = [
    "heregoesemail@gmail.com"
]

Access ADS from browser

  • Restart Flask server
cd /var/www/html/ads-web-app/
python app.py &
  • Open the location http://ads-server-public-ip:8080 from the browser and provide the lab id, lab sources url and version/tag.
  • View the logs at /root/logs/ovpl.log by
tail -f /root/logs/ovpl.log

Other related documentation:

Steps to manually create a container


  1. vzctl create 101 –ostemplate ubuntu-12.04-custom-x86_64 –ipadd 10.2.58.3 –diskspace 10G:15.0G –hostname cse02.vlabs.ac.in
  2. vzctl start 101
  3. vzctl set 101 –nameserver inherit –ram 256M –swap 512M –onboot yes –save