Update to 2024-05-02 11:01

This commit is contained in:
Daniel Berteaud
2024-05-02 11:01:29 +02:00
parent 649b1c50ee
commit 38d6895850
14 changed files with 207 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
---
- name: Create the archive dir
file: path={{ jmeter_root_dir }}/archives/{{ jmeter_current_version }} state=directory
tags: jmeter
- name: Archive previous version
synchronize:
src: "{{ jmeter_root_dir }}/{{ item }}"
dest: "{{ jmeter_root_dir }}/archives/{{ jmeter_current_version }}/"
recursive: true
delete: true
compress: false
loop:
- app
delegate_to: "{{ inventory_hostname }}"
tags: jmeter

View File

@@ -0,0 +1,9 @@
---
- name: Cleanup tmp and obsolete files
file: path={{ item }} state=absent
loop:
- "{{ jmeter_root_dir }}/tmp/apache-jmeter-{{ jmeter_version }}.tgz"
- "{{ jmeter_root_dir }}/tmp/apache-jmeter-{{ jmeter_version }}"
- "{{ jmeter_root_dir }}/archives/{{ jmeter_current_version }}"
tags: jmeter

View File

@@ -0,0 +1,15 @@
---
- name: Create directories
file: path={{ jmeter_root_dir }}/{{ item.dir }} state=directory owner={{ item.owner | default(omit) }} group={{ item.group | default(omit) }} mode={{ item.mode | default(omit) }}
loop:
- dir: /
owner: "{{ jmeter_user }}"
- dir: tmp
owner: "{{ jmeter_user }}"
mode: 700
- dir: app
- dir: meta
- dir: archives
mode: 700
tags: jmeter

View File

@@ -0,0 +1,22 @@
---
# Load distribution specific variables
- include_vars: "{{ item }}"
with_first_found:
- "{{ role_path }}/vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml"
- "{{ role_path }}/vars/{{ ansible_os_family }}-{{ ansible_distribution_major_version }}.yml"
- "{{ role_path }}/vars/{{ ansible_distribution }}.yml"
- "{{ role_path }}/vars/{{ ansible_os_family }}.yml"
tags: jmeter
# Detect installed version (if any)
- block:
- import_tasks: ../includes/webapps_set_install_mode.yml
vars:
- root_dir: "{{ jmeter_root_dir }}"
- version: "{{ jmeter_version }}"
- set_fact: jmeter_install_mode={{ (install_mode == 'upgrade' and not jmeter_manage_upgrade) | ternary('none',install_mode) }}
- set_fact: jmeter_current_version={{ current_version | default('') }}
tags: jmeter

View File

@@ -0,0 +1,42 @@
---
- name: Install dependencies
package: name={{ jmeter_packages }}
tags: jmeter
- when: jmeter_install_mode != 'none'
block:
- name: Download jmeter
get_url:
url: "{{ jmeter_archive_url }}"
dest: "{{ jmeter_root_dir }}/tmp/"
checksum: sha512:{{ jmeter_archive_sha512 }}
- name: Extract the archive
unarchive:
src: "{{ jmeter_root_dir }}/tmp/apache-jmeter-{{ jmeter_version }}.tgz"
dest: "{{ jmeter_root_dir }}/tmp/"
remote_src: true
- name: Install the app
synchronize:
src: "{{ jmeter_root_dir }}/tmp/apache-jmeter-{{ jmeter_version }}/"
dest: "{{ jmeter_root_dir }}/app"
delete: true
compress: false
delegate_to: "{{ inventory_hostname }}"
notify: restart jmeter-server
tags: jmeter
- name: Install systemd unit
template: src=jmeter-server.service.j2 dest=/etc/systemd/system/jmeter-server.service
notify: restart jmeter-server
register: jmeter_unit
tags: jmeter
- name: reload systemd
systemd: daemon_reload=true
when: jmeter_unit.changed
tags: jmeter

View File

@@ -0,0 +1,8 @@
---
- name: Handle jmeter ports
iptables_raw:
name: jmeter_ports
state: "{{ (jmeter_src_ip | length > 0) | ternary('present','absent') }}"
rules: "-A INPUT -m state --state NEW -p tcp --dport {{ jmeter_port }} -s {{ jmeter_src_ip | join(',') }} -j ACCEPT"
tags: firewall,jmeter

View File

@@ -0,0 +1,34 @@
---
- include_tasks: user.yml
tags: always
- include_tasks: directories.yml
tags: always
- include_tasks: facts.yml
tags: always
- include_tasks: archive_pre.yml
when: jmeter_install_mode | default('none') == 'upgrade'
tags: always
- include_tasks: install.yml
tags: always
- include_tasks: services.yml
tags: always
- include_tasks: iptables.yml
when: iptables_manage | default(true)
tags: always
- include_tasks: write_version.yml
tags: always
- include_tasks: archive_post.yml
when: jmeter_install_mode | default('none') == 'upgrade'
tags: always
- include_tasks: cleanup.yml
tags: always

View File

@@ -0,0 +1,5 @@
---
- name: Start and enable jmeter service
service: name=jmeter-server state=started enabled=true
tags: jmeter

View File

@@ -0,0 +1,9 @@
---
- name: Create jmeter system user
user:
name: "{{ jmeter_user }}"
system: True
#shell: /sbin/nologin
home: "{{ jmeter_root_dir }}"
tags: jmeter

View File

@@ -0,0 +1,5 @@
---
- name: write installed version
copy: content={{ jmeter_version }} dest={{ jmeter_root_dir }}/meta/ansible_version
tags: jmeter