Mconf Network

Felipe Cecagno edited this page Mar 6, 2017 · 34 revisions

This page contains the technical documentation about the Mconf Global Network and contains information on how to join the network.

Basics

You can read the basic description of the network at our page at: http://mconf.org/about/mconf-network

Architecture

You can get details about how the network works in our wiki page that describes the scalable architecture of Mconf.

How to join the network

First of all, take some time to read about the Mconf Network at http://mconf.org/about/mconf-network.

Requirements for the Mconf-Live server

  • You must install it in a fresh Ubuntu Server 14.04 LTS 64 bits installation. It won't work on any other linux distributions or Ubuntu versions;
  • The server must be dedicated to host the Mconf Node (it can be a VPS);
  • The minimum hardware requirements are: 4 cores (real or virtual CPUs) (8 is better), 4GB of RAM memory and 100GB of disk;
  • The server must be connected to a high-speed network (at least symmetric 20Mbps is recommended);
  • Be sure that you have opened for external access the ports TCP 80 (HTTP), TCP 443 (HTTPS), TCP 9123 (Desktop Sharing), TCP 1935 (RTMP), UDP 5060 (SIP), UDP 16384-32768 (RTP), TCP 5066 (WS), TCP 7443 (WSS);
  • The server must have full access to the Internet (no outgoing firewall) - it means that the server must be able to connect in any port on remote sites;
  • Your server must answer ICMP (Ping), which is used to check if your server is UP or DOWN;
  • If you intend to use a domain name (like "mconf.org"), set that up before continuing;
  • Set the server hostname properly (as described on next section);
  • Set up the NTP service properly (see this link);
  • Subscribe to the Mconf Network members group (https://groups.google.com/d/forum/mconf-network).

Requirements for the Mconf Recording Server

If you already have a Mconf node integrated to the Mconf Network and want to support recordings, you will need to setup a recording server following these requirements:

  • You must install it in a fresh Ubuntu Server 14.04 LTS 64 bits installation. It won't work on any other linux distributions or Ubuntu versions;
  • The server must be dedicated to host the Mconf Node (it can be a VPS);
  • The minimum hardware requirements are: 4 cores (real or virtual CPUs) (8 is better), 4GB of RAM memory and as much disk as you can to host recordings (we recommend at least 500GB). Each hour of recording consume approximately 250MB, including the raw data and the processed format.
  • The server must be connected to a high-speed network (at least symmetric 20Mbps is recommended);
  • Be sure that you have opened for external access the ports TCP 80 (HTTP) and TCP 443 (HTTPS);
  • The server must have full access to the Internet (no outgoing firewall) - it means that the server must be able to connect in any port on remote sites;
  • Your server must answer ICMP (Ping), which is used to check if your server is UP or DOWN;
  • If you intend to use a domain name (like "mconf.org"), set that up before continuing;
  • Set the server hostname properly (as described on next section);
  • Set up the NTP service properly (see this link);

Setting up the hostname properly

Since the hostname + domain will identify the server on the Mconf Chef Server, it needs to be set up properly. Suppose that your server URL is mconf1.ufrgs.br, use the following code replacing mconf1.ufrgs.br by the domain name you are going to use:

HOSTNAME=mconf1.ufrgs.br
sudo hostname "$HOSTNAME"
echo "$HOSTNAME" | sudo tee /etc/hostname
sudo sed -i "/127.0.0.2/d" /etc/hosts
echo -e "127.0.0.2 `hostname` `hostname -s`" | sudo tee -a /etc/hosts

These configurations must be done before install the Chef Client - if you want to modify these configurations later, please contact support AT mconf.org.

Setting up the locale properly

Execute the following command:

echo 'LANG="en_US.UTF-8"' | sudo tee /etc/default/locale
sudo apt-get update && sudo apt-get -y install locales language-pack-en
sudo update-locale LANG=en_US.UTF-8

Then insert the following lines at the end of ~/.bashrc and ~/.profile:

cd
files=( ".profile" ".bashrc" )
properties=( "LC_ALL" "LANG" "LANGUAGE" )

for file in "${files[@]}"; do
    touch $file
    for property in "${properties[@]}"; do
        sed -i "/export $property=/d" $file
        echo "export $property=en_US.UTF-8" | tee -a $file
    done
done

Reboot the server before continue.

Deployment

Mconf-Live is installed using the Chef framework, and all the recipes used to deploy a Mconf Node are open source and available on GitHub (https://github.com/mconf/chef-recipes). We do not provide any other way to install Mconf-Live without Chef, and this service is currently only available for the Mconf Network partners.

The first step is to fill the metadata presented below and send it to support AT mconf.org:

{
  "metadata": {
    "server_alias":"UFRGS 1",
    "server_url":"http://mconf1.ufrgs.br",
    "server_hostname":"mconf1",
    "server_location":"Porto Alegre-RS, Brazil",
    "institution_name":"Universidade Federal do Rio Grande do Sul",
    "institution_website":"http://ufrgs.br",
    "institution_portal":"https://mconf.org",
    "responsible_name":"Felipe Cecagno",
    "responsible_email":"felipe AT mconf.org"
  }
}
  • server_alias: the alias for the server that will be presented on the Mconf Load Balancer
  • server_url: the URL for your server, including domain (or IP address, if it doesn't have a name) and port (when different than 80)
  • server_hostname: the hostname of the server, that can be checked on /etc/hostname - it identifies the server on Chef Server, as explained above
  • server_location: the high level location of the server (granularity of "city" is fine)
  • institution_name: name of the institution that is maintaining the server
  • institution_website: website of the institution
  • institution_portal: web portal used to access the webconference rooms - if your institution is using only the web portal mconf.org to access the conference rooms, leave it blank
  • responsible_name: the technician responsible for the server
  • responsible_email: e-mail contact of the responsible

It is responsibility of all partners to keep the metadata of their servers updated.

The second step is to install the Chef Client. For that we will send by e-mail a validation key, that will be used to register your server on the Mconf Chef Server. The validation key must be placed on /etc/chef/validation.pem.

If the given directory doesn't exist, create it. Do not continue before receiving the validation key.

Then copy the script below and paste it in a file named install-mconf-chef.sh:

#!/bin/bash

set -xe

if [ ! -f /etc/chef/validation.pem ]
then
      echo "No validation key found (/etc/chef/validation.pem), aborting..."
      exit 1
fi

sudo apt-get update
wget https://packages.chef.io/files/stable/chef/11.18.12/ubuntu/14.04/chef_11.18.12-1_amd64.deb
sudo dpkg -i chef_11.18.12-1_amd64.deb

cat > client.rb << EOF
chef_server_url "https://mconf-chef.nuvem.ufrgs.br:443"
EOF
sudo mkdir -p /etc/chef/
sudo mv client.rb /etc/chef/

cat > first_run.json << EOF
{
"run_list": [ "role[chef-server-child]" ]
}
EOF

sudo chef-client -j first_run.json

Then run:

$ chmod +x install-mconf-chef.sh
$ ./install-mconf-chef.sh

After that, your server will be registered on the Mconf Chef Server. Then we will assign the role "mconf-node" to your server, and both software and configuration will get installed and updated.

Troubleshooting

The log generated by the Chef Client is placed on /var/log/chef/client.log.

For troubleshooting, please visit the mailing list (see our contact page) or send a message to support AT mconf.org.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.