搭建一套完整的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、整個測試環境需要的軟體均以順利安裝完成,並沒有很難的樣子,一次性安裝,都不帶停歇的。