Skip to content

ClarifiedSecurity/catapult

Repository files navigation

Clarified Security built tools:

CatapultProvidentia • EXPO

Catapult

Catapult is an infrastructure development tool using infrastructure-as-code (IaC) approach to build, deploy and (re)configure different types of environments, such as Cyber Exercises, Trainings, Labs or even Production environments. It is designed to be used by people with some experience with Ansible, but it's a force multiplier for experienced Ansible users. Catapult does the heavy lifting in dependency management, virtual machine creation or remote/cloud service configuration so the developer can focus on the actual content of the machine or service.

Catapult is definitely the tool for you if you have have one or more of the following problems:

  • It's becoming increasingly difficult to manage Ansible dependencies and requirements for different users.
  • You have been using Ansible for a while and have a lot of playbooks, roles and inventories but you are struggling to manage them and keep ending up copying similar code between different projects.
  • You'd rather use pre-built and maintained Ansible roles and collections instead of building your own from scratch.
  • You have multiple projects with different infrastructure environments and you want to manage them in parallel from the same place and with the same codebase.
  • You are just starting the with the infrastructure-as-code approach and you don't want to spend years building your own tool, instead you need to start building your own projects and content right away.

Catapult comes with a lot of pre-built and maintained Ansible roles that you can use in your projects. They are in an Ansible collection called nova.core.

Catapult supports VM creation and configuration on:

  • AWS EC2
  • Azure
  • Linode
  • Proxmox
  • vSphere
  • OpenStack (limited and experimental support)

If Catapult does not support VM creation for your needed environment, you can either:

  • Write it yourself (as a separate Ansible role to include) directly into your project and still be able to use all of the other features of Catapult.
  • Create the VM by other means and then use Catapult to configure the already existing virtual (or physical) machines.

Refer to Catapult Docs for full documentation.

TLDR (Quickstart)

Install

git clone https://github.com/ClarifiedSecurity/catapult && \
cd catapult && \
./install.sh

Run

make start

Clone a test project

cd /srv/inventories
git clone https://github.com/ClarifiedSecurity/catapult-project-example.git

Test that the project is working

cd /srv/inventories/catapult-project-example
ctp host list all

Start developing your own project

Create or clone your own project in /srv/inventories and start developing.

About

Powerful infrastructure development tool based on Ansible

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors