diff --git a/playbooks/captica-webserver.yml b/playbooks/captica-webserver.yml index d21424d..321b9f0 100644 --- a/playbooks/captica-webserver.yml +++ b/playbooks/captica-webserver.yml @@ -61,4 +61,23 @@ opengist_version: "lates" tasks: - name: "Install opengist application" + include_tasks: setup-docker-application.yml + +- hosts: "git" + tags: + - sonarqube + - install + vars: + service_name: sonarqube + service_directory: /opt/git/sonarqube + service_volume_dirs: + - appdata + - config + service_user_name: sonarqube + service_user_id: 1045 + service_group_name: sonarqube + service_group_id: 1045 + sonarqube_version: "10.6.0-community" + tasks: + - name: "Install sonarqube application" include_tasks: setup-docker-application.yml \ No newline at end of file diff --git a/templates/sonarqube/.env.j2 b/templates/sonarqube/.env.j2 new file mode 100644 index 0000000..ec4adee --- /dev/null +++ b/templates/sonarqube/.env.j2 @@ -0,0 +1,4 @@ +DB_NAME=lehmann_sonarqube +DB_URL=jdbc:postgresql://db:5432/lehmann_sonarqube +DB_USER={{sonarqube_db_user}} +DB_PASSWORD={{sonarqube_db_password}} \ No newline at end of file diff --git a/templates/sonarqube/docker-compose.yml.j2 b/templates/sonarqube/docker-compose.yml.j2 new file mode 100644 index 0000000..dceae30 --- /dev/null +++ b/templates/sonarqube/docker-compose.yml.j2 @@ -0,0 +1,55 @@ +version: '3.9' + +services: + app: + image: sonarqube:{{sonarqube_version}} + depends_on: + - db + - plugin-preparation + environment: + - USER_UID={{ service_user_id }} + - USER_GID={{ service_group_id }} + - SONAR_JDBC_URL=${DB_URL} + - SONAR_JDBC_USERNAME=${DB_USER} + - SONAR_JDBC_PASSWORD=${DB_PASSWORD} + restart: always + volumes: + - {{ service_directory }}/data/appdata:/opt/sonarqube/data + - {{ service_directory }}/data/extensions:/opt/sonarqube/extensions + - {{ service_directory }}/data/logs:/opt/sonarqube/logs + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - '127.0.0.1:9000:9000' + networks: + - default + + db: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER=${DB_USER} + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=${DB_NAME} + networks: + - default + volumes: + - {{ service_directory }}/data/db:/var/lib/postgresql/data + + plugin-preparation: + image: curlimages/curl:latest + init: true + environment: + - USER_UID={{ service_user_id }} + - USER_GID={{ service_group_id }} + command: ["curl", "-L", "-O", "--output-dir", "/plugins", "https://github.com/vaulttec/sonar-auth-oidc/releases/download/v2.1.1/sonar-auth-oidc-plugin-2.1.1.jar"] + volumes: + - {{ service_directory }}/data/extensions/plugins:/plugins + +networks: + default: + ipam: + driver: default + config: + - subnet: 172.3.0.0/16 + gateway: 172.3.0.1 \ No newline at end of file