mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-04-16 18:23:40 +02:00
Update to 2024-05-02 11:01
This commit is contained in:
parent
649b1c50ee
commit
38d6895850
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