Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ls1intum/artemis-ansible-collection
Ansible Collection to configure Artemis
https://github.com/ls1intum/artemis-ansible-collection
ansible
Last synced: about 1 month ago
JSON representation
Ansible Collection to configure Artemis
- Host: GitHub
- URL: https://github.com/ls1intum/artemis-ansible-collection
- Owner: ls1intum
- License: mit
- Created: 2021-11-29T12:28:22.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-26T18:32:51.000Z (about 2 months ago)
- Last Synced: 2024-12-01T07:05:02.604Z (about 1 month ago)
- Topics: ansible
- Language: Jinja
- Homepage: https://galaxy.ansible.com/ls1intum/artemis
- Size: 618 KB
- Stars: 6
- Watchers: 13
- Forks: 2
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ansible Collection - ls1intum.artemis
This collection contains all ansible roles necessary to deploy [Artemis](https://github.com/ls1intum/Artemis).
> This is a work in progress repository - Please open issues if you encounter problems.
# Installation
## Installation via [ansible-galaxy](https://galaxy.ansible.com/ls1intum/artemis):```
ansible-galaxy collection install ls1intum.artemis
```## Installation via git:
### Manual install:
```
ansible-galaxy collection install git+https://github.com/ls1intum/artemis-ansible-collection.git,main
```### Install via requirements file:
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!
```## Install dependencies
[Ansible does not support role dependencies for collections](https://github.com/ansible/ansible/issues/76030) - 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:
```bash
#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
```# Documentation
You can find the documentation for Artemis [here](https://docs.artemis.cit.tum.de).
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)**
# Deployment Strategies
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**
## Single Node installation
All Artemis components are deployed to a single host. This is the prefered deployment strategy for small installations or testing/evaluation purposes.## Multi Node installation (Cluster)
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.
## Version Control & Continuous Integration
Artemis relies on (external) services to handle version control and continuous integration. Currently three configurations are supported by Artemis:
- Integrated Code Lifecycle
- Gitlab, Jenkins
- GitlabCIThe 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**
## Test Servers
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`.## Tests
All roles have been tested on ubuntu 20.04 LTS
# Ansible Development Setup
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
```