veza/ansible/roles/sonarqube/tasks/install_sonarqube.yml
2025-12-03 22:56:50 +01:00

102 lines
2.5 KiB
YAML

---
# file: roles/sonarqube/tasks/install_sonarqube.yml
- name: "prerequisites"
ansible.builtin.apt:
name:
- unzip
update_cache: true
tags: sonarqube
- name: "group sonarqube"
ansible.builtin.group:
name: sonarqube
system: true
tags: sonarqube
- name: "user sonarqube"
ansible.builtin.user:
name: sonarqube
group: sonarqube
system: true
tags: sonarqube
- name: "folder tree"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: sonarqube
group: sonarqube
loop:
- "/opt/sonarqube/stateful"
- "/opt/sonarqube/stateful/logs"
- "/opt/sonarqube/stateless"
tags: sonarqube
- name: "Extract sonarqube from {{ sonarqube_download_url }} to /dev/shm"
ansible.builtin.unarchive:
src: "{{ sonarqube_download_url }}"
remote_src: true
dest: "/dev/shm"
owner: sonarqube
group: sonarqube
tags: sonarqube
- name: "move stateful folders 'data' and 'extensions' if they don't exist"
ansible.builtin.command: "mv /dev/shm/sonarqube-{{ sonarqube_version }}/{{ item }} /opt/sonarqube/stateful/{{ item }}"
args:
creates: "/opt/sonarqube/stateful/{{ item }}"
loop:
- data
- extensions
tags: sonarqube
- name: "remove stateful folders data, extensions and logs"
ansible.builtin.file:
path: "/dev/shm/sonarqube-{{ sonarqube_version }}/{{ item }}"
state: absent
loop:
- data
- extensions
- logs
tags: sonarqube
- name: "symbolic links data, extensions and logs"
ansible.builtin.file:
src: "/opt/sonarqube/stateful/{{ item }}"
dest: "/dev/shm/sonarqube-{{ sonarqube_version }}/{{ item }}"
state: link
owner: sonarqube
group: sonarqube
loop:
- data
- extensions
- logs
tags: sonarqube
- name: "put version of sonarqube in VERSION file"
ansible.builtin.copy:
content: "{{ sonarqube_version }}"
dest: "/dev/shm/sonarqube-{{ sonarqube_version }}/VERSION"
owner: sonarqube
group: sonarqube
tags: sonarqube
- name: "make sure /opt/sonarqube/stateless does not exist for now"
ansible.builtin.file:
path: "/opt/sonarqube/stateless"
state: absent
tags: sonarqube
- name: "move /dev/shm/sonarqube-{{ sonarqube_version }} to /opt/sonarqube/stateless"
ansible.builtin.command: "mv /dev/shm/sonarqube-{{ sonarqube_version }} /opt/sonarqube/stateless"
tags: sonarqube
- name: "make sure the folder /opt/sonarqube belongs to the user sonarqube"
ansible.builtin.file:
path: "/opt/sonarqube"
owner: sonarqube
group: sonarqube
recurse: true
state: directory
tags: sonarqube