服務(wù)器基本安裝命令
centos 安裝node 12.0
curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs
node -v
# 自己編譯安裝node 12.16.1
mkdir download
cd download
wget http://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.gz
tar -zxvf node-v12.16.1-linux-x64.tar.gz
mv node-v12.16.1-linux-x64 nodejs
cd nodejs/bin // 切換路徑
./node -v
vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/root/download/nodejs/bin
source ~/.bash_profile
基本服務(wù)器搭建
# jdk 11
yum install java-11-openjdk-devel.x86_64
# 寶塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# nginx
登錄寶塔户誓,進(jìn)行nginx安裝即可
# node 12
curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs
node -v
# git
yum install git
# maven 需要自己導(dǎo)包安裝,yum安裝版本低
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar zxf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local/maven3
vim /etc/profile
export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
wq
source /etc/profile
mvn -v
# 更換阿里源鸠真,加快下載速度
cd /usr/local/maven3/conf
vim settings.xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
rabbmitMQ
# 安裝MQ(erlang與rabbitmq 的版本必須對應(yīng))
rpm -ivh erlang-22.3-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.8.3-1.el7.noarch.rpm
systemctl start rabbitmq-server #啟動
systemctl status rabbitmq-server #狀態(tài)
systemctl stop rabbitmq-server #停止
rabbitmq-plugins enable rabbitmq_management #啟用插件
# 修改looker 為空掷豺,讓所有人可以登錄
/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin rabbmit.app
修改為 {loopback_users, []},
# 或者命令行添加用戶
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 安裝延時插件
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/plugins
scp -r /root/download/rabbitmq_delayed_message_exchange-3.8.0.ez .
# 啟動插件
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/sbin
rabbitmq-plugins enable rabbitmq_management # 管理頁面
rabbitmq-plugins enable rabbitmq_delayed_message_exchange # 延時隊列
rabbitmq-plugins enable rabbitmq_stomp # stomp協(xié)議
# 重啟mq
systemctl restart rabbitmq-server
# 打開圖形頁面,創(chuàng)建新用戶
http://47.114.38.114:15672
# 添加 admin用戶,設(shè)置復(fù)雜密碼
# 刪除guest用戶
# 顯示所有的插件赎瑰,每一行一個
rabbitmq-plugins list
# 顯示所有的插件王悍,并且顯示插件的版本號和描述信息
rabbitmq-plugins list -v
# 顯示所有名稱含有 "management" 的插件
rabbitmq-plugins list -v management
# 顯示所有顯示或者隱式啟動的插件
rabbitmq-plugins list -e rabbit
rabbitmq-plugins enable [--offline] [--online] {plugin ...}
# --offline 僅僅修改啟動的插件文件
# --online 將與正在運行的代理連接失敗視為致命錯誤
# plugin 一個或者多個待啟用的插件
# 該命令將啟用指定的插件和他們所有依賴的插件
rabbitmq-plugins disable [--offline] [--online] {plugin ...}
# --offline 僅僅修改啟動的插件文件
# --online 將與正在運行的代理連接失敗視為致命錯誤
# plugin 一個或者多個待禁用的插件
# 該命令將禁用指定的插件和他們所依賴的插件
rabbitmq-plugin set [--offline] [--online] {plugin ...}
# --offline 僅僅修改啟用的插件文件
# --online 將與正在運行的代理連接失敗視為致命錯誤
# plugin 零個或者多個待啟用的插件
# 該命令將啟用待指定的插件和他們所依賴的插件。和 rabbitmq-plugins enable 不同餐曼,該命令忽略了和覆蓋了所有已存在的啟用的插件压储。
# rabbitmq-plugins set 沒有任何插件參數(shù)時,是合法的源譬,表示禁用所有的插件
# rabbitmq-plugins set rabbitmq_management
# 上述命令集惋,表示啟用management插件,并且禁用其他所有插件
快速部署腳本
java
#!/bin/bash
# jar包路勁
jarpath="/root/runtime"
# 日志名
logname="XXXX"
# 項目路徑
pgpath="xxxxx"
# git地址
gitpath="http://xx.xx.xx.xx:3000/xxx/$pgpath.git"
# 日志文件目錄
logpath="/root/logs/$logname"
# jar包備份目錄
jarbakpath="/root/jarbak/$pgpath"
# jar包名字
jarname="$pgpath-1.0.jar"
read -p "確定重啟( $pgpath )嘛?" flag if [[ "$flag" != "y" ]]; then echo "取消" exit fi
# 判斷踩娘,如果當(dāng)前項目目錄下芋膘,無對應(yīng)的項目,從git地址霸饲,拉取代碼到linux本地服務(wù)器
if [ ! -d "/root/$pgpath" ];then cd ~ git clone $gitpath read -p "請輸入要使用的分支: " branch git checkout $branch fi
if [ ! -d "$jarpath" ];then mkdir -p $jarpath fi
if [ ! -d "$logpath" ];then mkdir -p $logpath fi
if [ ! -d "$jarbakpath" ];then mkdir -p $jarbakpath fi
echo ================================= echo $logname備份自動化部署腳本啟動 echo =================================
echo 進(jìn)入~/$pgpath cd ~/$pgpath
echo 開始pull版本 git pull origin master
echo 開始編譯文件 mvn clean package -Dmaven.test.skip=true
echo 進(jìn)入編譯完成文件 cd ~/$pgpath/target
echo 結(jié)束以往進(jìn)程 ps -ef | grep $jarname | grep -v grep | awk '{print $2}' | xargs kill -9
#echo 復(fù)制日志文件內(nèi)容到新的文件中 #cp $logpath/$logname.log $logpath/$logname_`date +%Y%m%d%H%M%S`.log
echo 備份文件 cp $jarpath/$jarname $jarbakpath/$jarname.`date +%Y%m%d%H%M%S`
echo 刪除以往文件 rm -rf $jarpath/$jarname
echo 移動文件 mv $jarname $jarpath/
#echo 清空日志 #echo /dev/null > $logpath/$logname.log
echo 重啟服務(wù)器 nohup java -jar $JAVA_OPTS_PAY $jarpath/$jarname --spring.profiles.active=prod >>$logpath/$logname.log 2>&1 &
tail -100f $logpath/$logname.log
java版本回退
#!/bin/bash
jarpath="/root/runtime"
logname="xxx"
pgpath="xxx"
logpath="/root/logs/$logname"
jarbakpath="/root/jarbak/$pgpath"
jarname="$pgpath-1.0.jar"
ls -l $jarbakpath
read -p "請輸入要回滾的 ($pgpath) jar包的后綴:" version
echo "要回滾到的版本為:" $version
read -p "確定回滾( $pgpath )嘛?" flag
if [[ "$flag" != "y" ]];
then
echo "取消"
exit
fi
if [ ! -d "$jarpath" ];then
mkdir -p $jarpath
fi
if [ ! -d "$logpath" ];then
mkdir -p $logpath
fi
if [ ! -d "$jarbakpath" ];then
mkdir -p $jarbakpath
fi
echo =================================
echo $logname自動化回滾腳本啟動
echo =================================
#echo 復(fù)制日志文件內(nèi)容到新的文件中
#cp $logpath/$logname.log $logpath/$logname\_`date +%Y%m%d%H%M%S `.log
#echo 清空日志
#echo /dev/null > $logpath/$logname.log
echo 移動需要回滾的jar包到運行目錄下
cp -f $jarbakpath/$jarname.$version $jarpath/$jarname
echo 結(jié)束以往進(jìn)程
ps -ef | grep $jarname | grep -v grep | awk '{print $2}' | xargs kill -9
echo 重啟服務(wù)器
nohup java -jar $JAVA_OPTS_PAY $jarpath/$jarname --spring.profiles.active=prod >>$logpath/$logname.log 2>&1 &
tail -100f $logpath/$logname.log
前端
#!/bin/bash
hostname="xxxxx"
webpath="/www/wwwroot/$hostname"
pgpath="xxxxxx"
gitpath="http://xx.xx.xx.xx:3000/xxxx/$pgpath.git"
echo ================================= echo Web自動化部署腳本啟動 echo =================================
if [ ! -d "/root/$pgpath" ];then cd ~ git clone $gitpath fi
if [ ! -d "$webpath" ];then mkdir -p $webpath fi
echo 進(jìn)入~/$pgpath cd ~/$pgpath
echo 強制更新線上最新
git fetch --all git reset --hard origin/master
#echo 替換url.js
cp -f ~/url.js ~/$pgpath/src/pages/url.js
echo 開始編譯文件 npm run build
echo 刪除以往文件 rm -rf $webpath/assets
rm -rf $webpath/css
rm -rf $webpath/js
rm -rf $webpath/index.html
rm -rf $webpath/favicon.png
echo 移動文件 mv build/* $webpath/ echo 部署完成