Repository navigation
Spring: Progress Report 2
Overview:
For this progress report, we have implemented the basics of our capstone’s endpoint management system. As explained below, we were able to successfully deploy our backend service as well as monitoring agents on both of our Debian and Windows endpoint hosts. Both agents were able to connect to the backend server as well as check in and execute functions based on API calls from the backend server, with tasks queued from a management TUI.
Our next steps from this sprint would include implementing parity on features/functionality between Linux and Windows endpoints, fixing our ansible playbooks to ensure more reliable deployments of test environments, as well as fixing our current tasks so that they work properly on both Linux and Windows. In terms of later developments, we are researching MTLS or similar encryption to help secure communications between endpoint and backend server. Lastly, we are looking into setting up a Management Web UI to monitor and assign tasks for our endpoints (GUI version of our existing TUI Management interface).
Specific Tools Used and Implementation:
For this project sprint, we have decided to use and implement the following tools and technologies on top of our existing capstone project infrastructure:
Python (Backend), Golang (Endpoints), and Ansible (Rapid Test and Deployment of environment).
On our backend, we decided to develop this in Python as this was a programming language we were familiar with and could be implemented as a service fairly straightforward. We are using the APIFlask library as it provides convenience aliases to create a complete API with properly formatted data objects, response codes, etc.
We choose to use Golang for the endpoints due to its performance, its ease of learning, and ability to create executables. This enables us to create endpoint agents that are responsive and portable. Additionally, the endpoints only require a config file to provide the URL of the backend server that they connect to.
To assist us with consistent and reliable test deployments on our capstone environment, we created some Ansible playbooks to auto build and install our newest backend, management, and endpoint agents. This allows us to more quickly test and verify whether our code works within our example environment as well as troubleshoot any issues that may arise during testing.
Proof of Work/Documentation:
Ansible Playbooks Running
This is the output of the deploy-backend.yml playbook being run to set up the backend server for use. This playbook can be found here: https://github.com/capybarastone/ansible_deployment/blob/main/deploy-backend.yml
This is the (truncated) output of running the `deploy-agent.yml` playbook that can be found here: [https://github.com/capybarastone/ansible\_deployment/blob/main/deploy-agent.yml](https://github.com/capybarastone/ansible_deployment/blob/main/deploy-agent.yml)
**Management TUI \= Running and showing that tasks are in**
This screenshot shows the multi-select menu of our temporary TUI for testing task dispatch and results.
Once the endpoints are selected, you then choose the task you’d like to run![][image5]
The task is dispatched, then the UI holds until all endpoints execute the task
The stones are capped....