This collection contains all ansible roles necessary to deploy Artemis.
This is a work in progress repository - Please open issues if you encounter problems.
Installation via ansible-galaxy:
ansible-galaxy collection install ls1intum.artemis
ansible-galaxy collection install git+https://github.com/ls1intum/artemis-ansible-collection.git,main
Add the following to your ansible requirements:
collections:
- name: https://github.com/ls1intum/artemis-ansible-collection.git
type: git
version: main # You can also specify a spcific version here!
Ansible does not support role dependencies for collections - So you need to install the dependencies by hand :(.
The repository contains a requirements.yml
file which contains all the external roles used in artemis. Please install these with ansible galaxy:
#This command will only work if you installed the collections to the default location!
ansible-galaxy install -r ~/.ansible/collections/ansible_collections/ls1intum/artemis/requirements.yml
You can find the documentation for Artemis here. Each role includes a readme and default configuration. Consult these for more information.
Use the examples in the examples folder as starting point for your deployment (Warning: the examples are currently outdated and are being reworked)
Artemis can be deployed in different ways. Depending on the use case the ansible configuration differs.
You can find examples for each configuration in the examples
folder. Warning: the examples are currently outdated and are being reworked
All Artemis components are deployed to a single host. This is the prefered deployment strategy for small installations or testing/evaluation purposes.
Artemis components are installed on different hosts. Currently the following components need to be set up for an Artemis cluster:
- Artemis application servers (1..n - Also referred to as "Artemis node")
- Reverse Proxy (1)
- Message Broker (1)
- JHipster registry (1)
- Shared Storage Provider (1)
- Database (1)
This setup allows to scale Artemis to support many concurrent users.
Artemis relies on (external) services to handle version control and continuous integration. Currently three configurations are supported by Artemis:
- Integrated Code Lifecycle
- Gitlab, Jenkins
- GitlabCI
The ansible configuration has to be adapted accordingly. Again, you can find examples for both in the examples
folder. Warning: the examples are currently outdated and are being reworked
This collection also allows to provision test servers/clusters. To provision a test server or test cluster, set the
is_testserver: true
variable in your group_vars
.
All roles have been tested on ubuntu 20.04 LTS
It is a good idea to install ansible and ansible-lint to a venv:
virtualenv venv
. venv/bin/activate.fish
pip3 install -r requirements.txt