一、背景
由于公司最近在做业务压力测试,由于测试部同事本机电脑无法达到要求,选择方案为使用jmeter分部署压测,master端安装在PC电脑上,slave安装多台linux电脑,slave安装麻烦。
协助测试部制作slave镜像,以达到快速部署、启动、卸载,同时降低同事操作linux命令为目的。
二、文档说明
Dockerfile: 镜像制作文件
install.sh: 安装脚本
start.sh: 启动容器脚本
stop.sh: 停止容器脚本
三、脚本
[root@localhost jmeter]# vim Dockerfile
FROM centos:7
MAINTAINER jmeter_slave
ARG JMETER_VERSION=5.4.1
RUN yum -y install wget && \
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \
wget -O /etc/yum.repos.d/CentOS-Base.repo <http://mirrors.aliyun.com/repo/Centos-7.repo> && \\
yum makecache && \
yum -y install java-1.8* socat telnet iputils-ping unzip net-tools procps vim net-tools openssh-client
RUN mkdir /jmeter \
&& cd /jmeter/ \
&& wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz \
&& tar -xvzf apache-jmeter-$JMETER_VERSION.tgz -C /jmeter \
&& rm apache-jmeter-$JMETER_VERSION.tgz \
&& sed -i "s/#server.rmi.ssl.disable=false/server.rmi.ssl.disable=true/g" /jmeter/apache-jmeter-$JMETER_VERSION/bin/jmeter.properties
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
ENV JRE_HOME ${JAVA_HOME}/jre
ENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION
ENV CLASSPATH $JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH $JMETER_HOME/bin:${JAVA_HOME}/bin:$PATH
WORKDIR $JMETER_HOME
EXPOSE 1098 50000
CMD $JMETER_HOME/bin/jmeter-server \
-Dserver.rmi.ssl.disable=true \
-Dserver.rmi.localport=50000 \
-Dserver_port=1098 \
-Djava.rmi.server.hostname=${HOST_IP}
[root@localhost jmeter]# vim docker_install.sh
#!/bin/bash
yum install -y yum-utils device-mapper-persistent-data lvm2 &&
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker
[root@localhost jmeter]# vim start.sh
#!/bin/bash
docker build -t jmeter_slave:latest .
ip=`hostname -I|awk '{print $1}'`
docker run -d -p 1098:1098 -p 50000:50000 --env HOST_IP=$ip --name jmeter_slave jmeter_slave:latest
[root@localhost jmeter]# vim stop.sh
#!/bin/bash
docker rm -f jmeter_slave
docker rmi jmeter_slave:latest
四、操作命令
[root@localhost jmeter]# bash install.sh
[root@localhost jmeter]# bash start.sh
[root@localhost jmeter]# bash stop.sh