|
1 | | -# TuxLab |
| 1 | +# TuxLab-Infra |
| 2 | +Platform for creating Interactive Linux Courses. |
2 | 3 |
|
3 | | -TuxLab is an open source platform for creating Interactive Linux Courses. This repository |
4 | | -contains the infrastructure configuration (done using Ansible). It will automatically |
5 | | -create the necessary network configuration, security groups, provision and install Ansible |
6 | | -Tower and configure Elastic Load Balancing and Autoscaling groups for the application in |
7 | | -AWS EC2. |
8 | | - |
9 | | -If you are instead looking for the application source code itself, visit the [App Repository](https://github.com/learnlinux/tuxlab-app). |
10 | | - |
11 | | -The TuxLab infrastructure is configured as follows: |
12 | | - |
13 | | - |
14 | | - |
15 | | -## Running the Development Environment |
16 | | -In order to make development easier, we have created a Vagrant Environment to simulate the servers needed to run the TuxLab Site. You can get this up and running by first installing the following pre-requisites: |
17 | | - * Vagrant |
18 | | - * VirtualBox (netadp, netflt, guest-iso) |
19 | | - * Vagrant Guests Plugin |
20 | | - * VirtualBox |
21 | | - * Ansible (Version 2.3 or above) |
22 | | - * SSHPass |
23 | | - |
24 | | -You can then initialize this environment by running `vagrant up`. The TuxLab site will be |
25 | | -visible at `10.100.1.10:8080`. |
26 | | - |
27 | | -## Running on your own Infrastructure |
28 | | - |
29 | | -## Running on AWS Cloud |
30 | | -You need the following things: |
31 | | - * Install Python, pip and Ansible (Version 2.3 or above) via your package manager. |
32 | | - * Install boto and tower-cli using pip (`sudo pip install -U boto ansible-tower-cli`) |
33 | | - * Place your Ansible Tower license in /aws/keys/tower.txt, and add the JSON property `"eula_accepted" : true`, indicating you have read and accepted the Ansible Tower EULA. |
34 | | - * Edit the `aws/vars/` files based on your configuration. |
35 | | - * Set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY Enviornment Variables, and run the ansible playbook: |
36 | | - ``` |
37 | | - export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXX |
38 | | - export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX |
39 | | - ansible-playbook site.yml |
40 | | - ``` |
41 | | - * Finally, create DNS records to route your domain to the TuxLab instance. If you wanted for the tuxlab app to be displayed at domain.com. |
42 | | - ``` |
43 | | - NS *.domain.com <SWARM_NODE_IP> |
44 | | - A domain.com <LOAD_BALANCER_DNS_NAME> |
45 | | - ``` |
46 | | - Alternatively, If you are using Amazon Route 53, you can use [Aliases](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-domain-names-with-elb.html#dns-associate-custom-elb) to more easily configure these IP addresses. |
| 4 | +## [Documentation Here](tuxlab.org) |
0 commit comments