mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-04-13 08:43:14 +02:00
Update to 2024-05-02 11:01
This commit is contained in:
parent
649b1c50ee
commit
38d6895850
roles/jmeter-server
12
roles/jmeter-server/defaults/main.yml
Normal file
12
roles/jmeter-server/defaults/main.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
|
||||
jmeter_version: 5.6.3
|
||||
jmeter_archive_url: https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-{{ jmeter_version }}.tgz
|
||||
jmeter_archive_sha512: 5978a1a35edb5a7d428e270564ff49d2b1b257a65e17a759d259a9283fc17093e522fe46f474a043864aea6910683486340706d745fcdf3db1505fd71e689083
|
||||
jmeter_manage_upgrade: true
|
||||
|
||||
jmeter_root_dir: /opt/jmeter
|
||||
jmeter_user: jmeter
|
||||
|
||||
jmeter_port: 9296
|
||||
jmeter_src_ip: []
|
4
roles/jmeter-server/handlers/main.yml
Normal file
4
roles/jmeter-server/handlers/main.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
|
||||
- name: restart jmeter-server
|
||||
service: name=jmeter-server state=restarted
|
17
roles/jmeter-server/tasks/archive_pre.yml
Normal file
17
roles/jmeter-server/tasks/archive_pre.yml
Normal 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
|
9
roles/jmeter-server/tasks/cleanup.yml
Normal file
9
roles/jmeter-server/tasks/cleanup.yml
Normal 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
|
15
roles/jmeter-server/tasks/directories.yml
Normal file
15
roles/jmeter-server/tasks/directories.yml
Normal 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
|
22
roles/jmeter-server/tasks/facts.yml
Normal file
22
roles/jmeter-server/tasks/facts.yml
Normal 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
|
||||
|
||||
|
42
roles/jmeter-server/tasks/install.yml
Normal file
42
roles/jmeter-server/tasks/install.yml
Normal 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
|
||||
|
8
roles/jmeter-server/tasks/iptables.yml
Normal file
8
roles/jmeter-server/tasks/iptables.yml
Normal 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
|
34
roles/jmeter-server/tasks/main.yml
Normal file
34
roles/jmeter-server/tasks/main.yml
Normal 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
|
5
roles/jmeter-server/tasks/services.yml
Normal file
5
roles/jmeter-server/tasks/services.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
|
||||
- name: Start and enable jmeter service
|
||||
service: name=jmeter-server state=started enabled=true
|
||||
tags: jmeter
|
9
roles/jmeter-server/tasks/user.yml
Normal file
9
roles/jmeter-server/tasks/user.yml
Normal 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
|
5
roles/jmeter-server/tasks/write_version.yml
Normal file
5
roles/jmeter-server/tasks/write_version.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
|
||||
- name: write installed version
|
||||
copy: content={{ jmeter_version }} dest={{ jmeter_root_dir }}/meta/ansible_version
|
||||
tags: jmeter
|
20
roles/jmeter-server/templates/jmeter-server.service.j2
Normal file
20
roles/jmeter-server/templates/jmeter-server.service.j2
Normal file
@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Jmeter server
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User={{ jmeter_user }}
|
||||
Group={{ jmeter_user }}
|
||||
Environment=JAVA_HOME=/usr/lib/jvm/jre-17
|
||||
ExecStart={{ jmeter_root_dir }}/app/bin/jmeter-server -Dserver.rmi.localport={{ jmeter_port }} -Dserver.rmi.ssl.disable=true -Dserver_port={{ jmeter_port }}
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
ProtectHome=yes
|
||||
NoNewPrivileges=yes
|
||||
SyslogIdentifier=jmeter-server
|
||||
Restart=on-failure
|
||||
SuccessExitStatus=143
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
5
roles/jmeter-server/vars/RedHat-9.yml
Normal file
5
roles/jmeter-server/vars/RedHat-9.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
|
||||
jmeter_packages:
|
||||
- java-17-openjdk-headless
|
||||
- tar
|
Loading…
x
Reference in New Issue
Block a user