搭建一套完整的Linux测试环境

语言: CN / TW / HK

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

背景

公司项目,搭建性能测试环境,架构比较简单,nginx负载均衡,采用权重轮询,redis缓存、MongoDB热库、Mysql、tomcat部署方式,jenkins集成打包部署环境、Nodejs、maven环境,应用软件比较多,但是没有采用dubbo或spring boot微服务架构或采用mq消息队列等中间件,所以纯粹的安装这些软件只消半天功夫,剩下的就是服务部署调试了。

1、首先准备需要的软件包(为了和预发布、现网环境,软件版本尽量保持一致),把所有安装包放在opt目录里,包是怎么放到linux系统的?介绍3种方式:一是wget 下载地址,会download到当前目录,二是先download本地,再通过xftp连接服务器工具上传到linux指定目录data下,三是仍旧是先download本地,在使用rz -bye 选择上传包文件到指定目录即可(yum -y install lrzsz):

JDK1.8Nginx1.9Tomcat8.0Jenkins2.156Nodejs11.5Maven3.5Redis2.8MySQL5.7MongoDB3.2.1

2、安装软件不分先后,MongoDB第一个安装,也是第一次安装(往后所有动作默认从opt目录开始):

``` [[email protected] opt]$ tar zxvf mongodb.tgz

[[email protected] opt]$ mv * /data/mongodb

[[email protected] opt]$ vim /etc/profile

在profile环境配置文件你新增以下配置

MONGODB_HOME="/data/mongodb"

PATH=$PATH:$MONGODB/bin

[[email protected] opt]$ source /etc/profile

[[email protected] opt]$ mkdir -p /data/mongodb/db /data/logs/mongodb

[[email protected] opt]$ vim /etc/mongod.conf #配置mongodb端口,log路径,db路径

logpath=/data/logs/mongodb/mongod.log

[[email protected] bin]$ ./mongod -f /etc/mongod.conf #启动mongodb数据库

[[email protected] opt]$ vim /etc/mongod.conf #开启认证,添加账号密码

authorization: "enabled"

mongodb > db.createUser({user:"root",pwd:"你的密码",roles:["root"]});

mongodb > db.auth("root","你的密码");

以上步骤完成从/opt临时文件解压安装包,mv移到/data/目录下,配置环境变量、MongoDB配置、帐号密码

1. 数据库用户角色:read、readWrite;

2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4. 备份恢复角色:backup、restore;

5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

```

3、安装mysql痛苦的记忆,想当年在linux系统玩安装mysql,花了一个月时间都没安装成功,各种百度各种资料,实在汗颜,最后尝试安装得到提示:mysql的版本不一致,安装方式也略有不同,点击这里查看不同版本的mysql安装步骤,这步还是贴上:

``` [[email protected] opt]$ tar zxvf mysql5.7

[[email protected] opt]$ mv * /data/mysql

[[email protected] opt]$ groupadd mysql

[[email protected] opt]$ useradd -r -g mysql mysql

[[email protected] mysql]$ mkdir -p /var/lib/mysql

[[email protected] mysql]$ chown -R mysql:mysql /var/lib/mysql

[[email protected] mysql]$ ./bin/mysqld --user=mysql --basedir=/data/mysql --atadir=/var/lib/mysql --initialize

[[email protected] opt]$ vim /etc/my.cnf #[mysqld] 下添加变更mysql默认端口3306为10011

[[email protected] opt]$ service mysqld start #mysql服务启动

[[email protected] opt]$ ./bin/mysql -u root -p

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user 'root'@'localhost' identified by '你的密码';

mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

/usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)

chown -R mysql:mysql /var/run/mariadb/

mysql.sock问题(3):Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock ```

4、除去自己常部署的jdk、tomcat、nginx、apache、mysql、php、maven、ant、jmeter、jenkins等环境,redis、MongoDB、nodejs都是首次安装,安装测试环境,安装得多了也就熟悉了,唯手熟尔,在贴出redis安装步骤:

``` [[email protected] opt ]$ tar zxvf redis2.8 解压

[[email protected] opt ]$ mv redis2.8 /data/redis

[[email protected] opt ]$ yum install gcc cpp binutils glibc glibc-kernheaders glibc-common glibc-devel

fatal error: jemalloc/jemalloc.h: No such file or directory

[[email protected] data]$ yum install tcl

[[email protected] data]$ make && make test

[[email protected] data]$ make install #进入src目录

[[email protected] bin]$ ./redis-server &

[[email protected] bin]$ ./redis-server /data/redis/etc/redis.conf

1.访问redis根目录 cd /usr/local/redis-2.8.19

2.登录redis:redis-cli -h 127.0.0.1 -p 6379

5.清空整个 Redis 服务器的数据:flushall ```

5、JDK安装,解压即可,毋须编译,只需配置环境变量即可:

``` [[email protected] opt/]$ tar zxvf jdk1.8.tgz #解压

[[email protected] opt/]$ mv jdk /usr/local/jdk1.8

[[email protected] opt/]$ vim /etc/profile #配置环境变量

JAVA_HOME=/usr/local/jdk1.8

JAVA_BIN=/usr/local/jdk1.8/bin

JRE_HOME=/usr/local/jdk1.8/jre

PATH=$PATH:$JAVA_BIN:$JRE_HOME/bin

CLASSPATH=$JRE_HOME/lib:$JAVA_HOME/lib:$JRE_HOME/lib/charsets.jar

export JAVA_HOME JRE_HOME JAVA_BIN PATH CLASSPATH

[[email protected] opt/]$ source /etc/profile #生效

[[email protected] opt/]$ java -version #查看版本

这是windows系统的版本系统,凑合在linux用一下,查看正常显示

java version "1.8.0_20"

Java(TM) SE Runtime Environment (build 1.8.0_20-b26)

Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

```

6、Nginx安装

``` [[email protected] opt/]$ yum -y install zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre*

[[email protected] nginx/]$ ./configure --prefix=/usr/local/nginx_test --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module --with-http_stub_status_module --with-pcre

[[email protected] nginx/]$ make && make install

[[email protected] nginx/]$ ./sbin/nginx -t

[[email protected] opt/]$ vim /etc/profile

PATH=$PATH:$NGINX_HOME/sbin

[[email protected] opt/]$ source /etc/profile ```

7、Tomcat安装如下:

``` [[email protected] opt ]$ tar zxvf tomcat.tgz

[[email protected] opt ]$ mv apache-tomcat /data/tomcat8

[[email protected] opt ]$ cp -p /data/tomcat8/bin/catalina.sh /etc/init.d/tomcat

[[email protected] opt ]$ vim /data/tomcat8/conf/tomcat-user.xml

配置tomcat启动进入manager管理页面帐号密码及角色

[[email protected] opt ]$ vim /etc/init.d/tomcat

如下配置为了能add加入chkconfig服务列表

description: tomcat server init script

Source Function Library

JAVA_HOME=/usr/local/jdk1.8/

CATALINA_HOME=/data/tomcat8

[[email protected] opt ]$ chmod 755 /etc/init.d/tomcat

[[email protected] opt ]$ chkconfig --add tomcat

[[email protected] opt ]$ service tomcat start #启动tomcat服务 ```

8、Linux的jenkins启动的方式与在windows系统一样,java -jar jenkins.war --httpPort=8090,指定端口启动即可:

9、Nodejs首次安装,没想过这么简单粗暴,解压,移动到指定目录,创建软链接:

``` [[email protected] opt]$ tar xf node-v11.5.0-linux-.armv7.tar -C /usr/local/nodejs

[[email protected] opt]$ cd /usr/local/

[[email protected] opt]$ mv node-v5.10.1-linux-x64/ nodejs

[[email protected] opt]$ ln -s /usr/local/nodejs/bin/node /usr/bin

[[email protected] opt]$ ln -s /usr/local/nodejs/bin/npm /usr/bin ```

10、最后Maven部署:

``` [[email protected] opt]$ tar zxvf maven3.5.tgz

[[email protected] opt]$ mv /usr/local/maven

[[email protected] opt]$ vi /etc/profile

MAVEN_HOME=/usr/local/maven

PATH=$PATH:$MAVEN_HOME/bin

[[email protected] opt]$ source /etc/profile ```

11、整个测试环境需要的软件均以顺利安装完成,并没有很难的样子,一次性安装,都不带停歇的。