Prerequisites
These are the prerequisites to setting up a full private LTE Magma deployment. Additional prerequisites for developers can be found in the developer's guide.
Development Tools
Install the following tools:
- Docker and Docker Compose
- Homebrew only for MacOS users
- VirtualBox
- Vagrant
Replace brew
with your OS-appropriate package manager as necessary.
brew install go@1.13 pyenv
# Replace .zshrc with your appropriate shell RC file
# IMPORTANT: Use .bash_profile, not .bashrc for bash
echo 'export PATH="/usr/local/opt/go@1.13/bin:$PATH"' >> ~/.zshrc
echo 'if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)"; fi' >> ~/.zshrc
exec $SHELL
pyenv install 3.7.3
pyenv global 3.7.3
pip3 install ansible fabric3 jsonpickle requests PyYAML
vagrant plugin install vagrant-vbguest
If you are on MacOS, you should start Docker for Mac and increase the memory allocation for the Docker engine to at least 4GB (Preferences -> Advanced). If you are running into build/test failures with Go that report "signal killed", you likely need to increase Docker's allocated resources.
Downloading Magma
You can find Magma code on Github.
To download Magma current version, or a specific release do the following:
git clone https://github.com/magma/magma.git
cd magma
# in case you want to use a specific version of Magma (for example v1.4)
git checkout v1.4
# to list all available releases
git tag -l
Build/Deploy Tooling
We support building the AGW and Orchestrator on MacOS and Linux host operating systems. Doing so on a Windows environment should be possible but has not been tested. You may prefer to use a Linux virtual machine if you are on a Windows host.
First, follow the previous section on developer tools. Then, install some
additional prerequisite tools (replace brew
with your OS-appropriate package
manager as necessary):
brew install aws-iam-authenticator kubectl helm terraform
python3 -m pip install awscli boto3
aws configure
Orchestrator and NMS
Orchestrator deployment depends on the following components
- AWS account
- Docker image repository (e.g. Docker Hub, JFrog)
- Helm chart repository (e.g. JFrog, Github)*
- Registered domain for Orchestrator endpoints
* We describe setting up a private GitHub repository as a Helm repository in the building Orchestrator section.
We recommend deploying the Orchestrator cloud component of Magma into AWS. Our open-source Terraform scripts target an AWS deployment environment, but if you are familiar with devops and are willing to roll your own, Orchestrator can run on any public/private cloud with a Kubernetes cluster available to use. The deployment documentation will assume an AWS deployment environment - if this is your first time using or deploying Orchestrator, we recommend that you follow this guide before attempting to deploy it elsewhere.
Provide the access key ID and secret key for an administrator user in AWS
(don't use the root user) when prompted by aws configure
. Skip this step if
you will use something else for managing AWS credentials.
Production Hardware
Access Gateways
Access gateways (AGWs) can be deployed on to any AMD64 architecture machine which can support a Debian Linux installation. The basic system requirements for the AGW production hardware are:
- 2+ physical ethernet interfaces
- AMD64 dual-core processor around 2GHz clock speed or faster
- 2GB RAM
- 128GB-256GB SSD storage
In addition, in order to build the AGW, you should have on hand:
- A USB stick with 2GB+ capacity to load a Debian Stretch ISO
- Peripherals (keyboard, screen) for your production AGW box for use during provisioning
RAN Equipment
We currently have tested with the following EnodeB's:
- Baicells Nova 233 TDD Outdoor
- Baicells Nova 243 TDD Outdoor
- Assorted Baicells indoor units (for lab deployments)
Support for other RAN hardware can be implemented inside the enodebd
service
on the AGW, but we recommend starting with one of these EnodeBs.