一键部署十个服务脚本--可拆分---java+mysql+redis+nginx+rocketmq..等等
java + mysql +redis + minio + nginx + rocketmq + rocketmq-console + elasticsearch + kibana + logstash 一键部署可拆分
#!/bin/bash
## 作者:陈步云
## 微信:15648907522
##
##
## 将基本环境yum安装的包放入如下目录
## /Basic-package/basic-rpm
##
##
## 将基础环境服务包放入如下目录
## /Basic-package
##
##
##
function 0-basic-install () {
## 基础环境安装
cd /Basic-package/basic-rpm || exit
yum -y install *.rpm
systemctl disable firewalld
systemctl stop firewalld
}
function 1-java-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(java -version)" ]; then
echo "command \"java\" exists on system"
else
if [ -d "/cby/backend/base-service/" ]; then
echo "directory \"/cby/backend/base-service/\" exists"
else
## 安装Java程序
cd /Basic-package || exit
mkdir -p /cby/backend/base-service/
cp jdk-8u102-linux-x64.tar.gz /cby/backend/base-service/
cd /cby/backend/base-service/ || exit
tar -xf jdk-8u102-linux-x64.tar.gz
mv /cby/backend/base-service/jdk1.8.0_102/ /cby/backend/base-service/jdk8/
fi
if [ "$(grep "JAVA_HOME=/usr/local/jdk1.8.0_151" /etc/profile)" ]; then
echo 'JAVA_HOME in profile'
else
## 添加Java环境变量
echo 'export JAVA_HOME=/cby/backend/base-service/jdk8' >> /etc/profile
echo -e 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
echo -e 'export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
source /etc/profile
fi
fi
echo "java version:"
java -version
}
function 2-mysql-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(mysql -V)" ]; then
echo "command \"mysql\" exists on system"
else
cd /Basic-package || exit
if [ -x "mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar" ]; then
echo "file \"mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar\" is executable"
else
## 解压安装包的文件
tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
yum install ./*.rpm -y
fi
## 启动服务,并开机自启
if [ "$(mysql -V)" ]; then
systemctl start mysqld
systemctl enable mysqld
fi
## 查看MySQL默认密码
echo 'mysql password:'
sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $11}'
## 默认密码获取
mysqlpssswd=$(sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $11}')
## 一系列授权操作
mysql -u root -p$mysqlpssswd -e "set global validate_password_length=0;" --connect-expired-password
mysql -u root -p$mysqlpssswd -e "set global validate_password_policy=0;" --connect-expired-password
mysql -u root -p$mysqlpssswd -e "set password for 'root'@'localhost' = password('123456');" --connect-expired-password
mysql -u root -p$mysqlpssswd -e "use mysql;" --connect-expired-password
mysql -u root -p$mysqlpssswd -e "grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;" --connect-expired-password
mysql -u root -p123456 -e "flush privileges;" --connect-expired-password
fi
}
function 3-redis-install () {
## 作者:陈步云
## 微信:15648907522
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
if [ "$(redis-server --version)" ]; then
echo "command \"redis\" exists on system"
else
if [ -d "/cby/backend/base-service/" ]; then
echo "directory \"/cby/backend/base-service/\" exists"
else
mkdir -p /cby/backend/base-service/
fi
if [ -d "/cby/backend/base-service/" ]; then
## 解压安装服务
cd /Basic-package || exit
cp redis-5.0.12.tar.gz /cby/backend/base-service/
cd /cby/backend/base-service/ || exit
tar xf redis-5.0.12.tar.gz
mv /cby/backend/base-service/redis-5.0.12/ /cby/backend/base-service/redis/
else
mkdir -p /cby/backend/base-service/
fi
if [ -d "/cby/backend/base-service/redis/" ]; then
cd /cby/backend/base-service/redis/ || exit
## 写入配置文件
cat >redis.conf<<EOF
bind 0.0.0.0
protected-mode no
daemonize yes
EOF
## 编译此服务
make -j "$(cat /proc/cpuinfo |grep "processor"|wc -l)"
fi
if [ -d "/cby/backend/base-service/redis/src/" ]; then
cd /cby/backend/base-service/redis/src/ || exit
make install
fi
## 进入安装目录后启动服务
cd /cby/backend/base-service/redis/ || exit
redis-server redis.conf
fi
}
function 4-minio-install () {
#!/bin/bash
## 作者:陈步云
## 微信:15648907522
if [ "$(/cby/backend/base-service/minio/minio -v)" ]; then
echo "command \"minio\" exists on system"
else
if [ -d "/cby/backend/base-service/minio/" ]; then
echo "directory \"/cby/backend/base-service/minio/\" exists"
else
## 添加执行权限并将服务拷贝到目的地
cd /Basic-package || exit
mkdir -p /cby/backend/base-service/minio/
cp minio /cby/backend/base-service/minio/
cd /cby/backend/base-service/minio/ || exit
chmod +x minio
fi
if [ "$(grep "MINIO_ACCESS_KEY" /etc/profile)" ]; then
echo 'MINIO_ACCESS_KEY in profile'
else
## 将账号密码写入环境变量
echo -e 'export MINIO_ACCESS_KEY=minio' >> /etc/profile
echo -e 'export MINIO_SECRET_KEY=thinker@123' >> /etc/profile
source /etc/profile
fi
if [ -d "/cby/backend/base-service/minio/data" ]; then
echo "directory \"/cby/backend/base-service/minio/data\" exists"
else
mkdir -p /cby/backend/base-service/minio/data
fi
if [ -x "/cby/backend/base-service/minio/minio" ]; then
echo "file \"/cby/backend/base-service/minio/minio\" is executable"
source /etc/profile
nohup /cby/backend/base-service/minio/minio server --address 0.0.0.0:9000 /cby/backend/base-service/minio/data > minio.log 2>&1 &
fi
fi
}
function 5-nginx-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(/cby/backend/base-service/nginx/sbin/nginx -v)" ]; then
echo "command \"nginx\" exists on system"
else
if [ -d "/cby/backend/base-service/" ]; then
echo "directory \"/cby/backend/base-service/\" exists"
else
mkdir -p /cby/backend/base-service/
fi
if [ -d "/cby/backend/base-service/nginx-1.18.0/" ]; then
echo "directory \"/cby/backend/base-service/nginx-1.18.0/\" exists"
else
## 解压所需包并安装所需依赖
cd /Basic-package || exit
cp nginx-1.18.0.tar.gz /cby/backend/base-service/
cd /cby/backend/base-service/ || exit
tar -zxf nginx-1.18.0.tar.gz
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
fi
if [ -d "/cby/backend/base-service/nginx" ]; then
echo "directory \"/cby/backend/base-service/nginx\" exists"
else
mkdir -p /cby/backend/base-service/nginx
fi
if [ -d "/cby/backend/base-service/nginx-1.18.0/" ]; then
## Nginx编译
echo "directory \"/cby/backend/base-service/nginx-1.18.0/\" exists"
cd /cby/backend/base-service/nginx-1.18.0/ || exit
./configure --prefix=/cby/backend/base-service/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make -j "$(cat /proc/cpuinfo |grep "processor"|wc -l)"
make install
else
exit 1
fi
if [ "$(/cby/backend/base-service/nginx/sbin/nginx -v)" ]; then
echo "command \"nginx\" exists on system"
echo 'nginx version is :'
/cby/backend/base-service/nginx/sbin/nginx -v
fi
fi
}
function 6-rocketmq-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(ls /cby/backend/base-service/rocketmq/startup.sh)" ]; then
echo "command \"rocketmq\" exists on system"
else
if [ -d "/cby/backend/base-service/" ]; then
echo "directory \"/cby/backend/base-service/\" exists"
else
mkdir -p /cby/backend/base-service/
fi
if [ -d "/cby/backend/base-service/package/rocketmq/" ]; then
echo "directory \"/cby/backend/base-service/package/rocketmq/\" exists"
else
mkdir -p /cby/backend/base-service/package/rocketmq/
fi
if [ -d "/cby/backend/base-service/rocketmq/" ]; then
echo "directory \"/cby/backend/base-service/rocketmq/\" exists"
else
cd /Basic-package || exit
yum -y install unzip
cp -r rocketmq/ /cby/backend/base-service/package/
cd /cby/backend/base-service/package/rocketmq/ || exit
unzip rocketmq-all-4.5.2-bin-release.zip
mv rocketmq-all-4.5.2-bin-release/ /cby/backend/base-service/rocketmq/
cp *.sh /cby/backend/base-service/rocketmq/
cd /cby/backend/base-service/rocketmq/ || exit
sh /cby/backend/base-service/rocketmq/startup.sh
fi
## 测试消息
if [ -x "/cby/backend/base-service/rocketmq/bin/tools.sh" ]; then
echo "file \"/cby/backend/base-service/rocketmq/bin/tools.sh\" is executable"
echo '发送测试消息'
bash /cby/backend/base-service/rocketmq/bin/tools.sh /cby/backend/base-service/rocketmq/org.apache.rocketmq.example.quickstart.Producer
echo '接受测试消息'
bash /cby/backend/base-service/rocketmq/bin/tools.sh /cby/backend/base-service/rocketmq/org.apache.rocketmq.example.quickstart.Consumer
fi
fi
}
function 7-rocketmq-console-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(ls /cby/backend/base-service/rocketmq-console/startup.sh)" ]; then
echo "command \"rocketmq-console\" exists on system"
else
if [ -d "/cby/backend/base-service/" ]; then
echo "directory \"/cby/backend/base-service/\" exists"
else
mkdir -p /cby/backend/base-service/
fi
if [ -d "/cby/backend/base-service/rocketmq-console" ]; then
echo "directory \"/cby/backend/base-service/rocketmq-console\" exists"
else
## 将所需包拷贝过去并启动
cd /Basic-package || exit
cp -r rocketmq-console/ /cby/backend/base-service/rocketmq-console
cd /cby/backend/base-service/rocketmq-console/ || exit
sh startup.sh
fi
fi
}
function 8-Elasticsearch-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(ls /openes/elasticsearch)" ]; then
echo "command \"elasticsearch\" exists on system"
else
## 修改一些配置
cat >>/etc/security/limits.conf<<EOF
## 添加以下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
EOF
cat >"$(ls /etc/security/limits.d/*.conf)"<<EOF
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
EOF
cat >>/etc/sysctl.conf<<EOF
vm.max_map_count=655360
EOF
if [ -d "/openes/" ]; then
echo "directory \"/openes/\" exists"
else
cd /Basic-package || exit
mkdir -p /openes/
## 创建目录后将安装包拷贝过去
cp elasticsearch-7.13.2-linux-x86_64.tar.gz /openes/
## 添加用户并设置密码
useradd openes
echo "es" | passwd --stdin openes
chown -R openes:openes /openes/
sysctl -p
su - openes <<!
cd /openes
tar xf elasticsearch-7.13.2-linux-x86_64.tar.gz
mv elasticsearch-7.13.2/ elasticsearch/
if [ -d "/openes/es_repo/data" ]; then
echo "directory \"/openes/es_repo/data\" exists"
else
mkdir -p /openes/es_repo/data
fi
if [ -d "/openes/es_repo/logs" ]; then
echo "directory \"/openes/es_repo/logs\" exists"
else
mkdir -p /openes/es_repo/logs
fi
cat >>/openes/elasticsearch/config/elasticsearch.yml<<EOF
## 修改以下配置
node.name: node-1
## 数据目录位置
path.data: /openes/es_repo/data
## 日志目录位置
path.logs: /openes/es_repo/logs
cluster.initial_master_nodes: ["node-1"]
## 绑定到0.0.0.0,允许任何ip来访问
network.host: 0.0.0.0
EOF
/openes/elasticsearch/bin/elasticsearch -d
!
fi
sleep 20s
curl -I http://127.0.0.1:9200/
fi
}
function 9-Kibana-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(ls /openes/kibana)" ]; then
echo "command \"elasticsearch\" exists on system"
else
cd /Basic-package || exit
mkdir -p /openes/
## 创建目录后将安装包拷贝过去
## 并赋予权限
cp -r kibana/ /openes/package/
chown -R openes:openes /openes/
su - openes <<!
cd /openes/package/
tar xf kibana-7.13.2-linux-x86_64.tar.gz
mv kibana-7.13.2-linux-x86_64/ /openes/kibana/
mv *.sh /openes/kibana/
cat >>/openes/kibana/config/kibana.yml<<EOF
## 修改以下配置
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
EOF
cd /openes/kibana/
sh startup.sh
!
sleep 20s
## 测试验证
curl -I http://127.0.0.1:5601/
fi
}
function 10-Logstash-install () {
## 作者:陈步云
## 微信:15648907522
if [ "$(ls /openes/logstash)" ]; then
echo "command \"logstash\" exists on system"
else
cd /Basic-package || exit
mkdir -p /openes/
## 创建目录后将安装包拷贝过去
## 并赋予权限
cp logstash-7.13.2-linux-x86_64.tar.gz /openes/
chown -R openes:openes /openes/
## 切换用户在另一个用户中执行
su - openes <<!
cd /openes/
tar xf logstash-7.13.2-linux-x86_64.tar.gz
mv logstash-7.13.2/ /openes/logstash/
if [ -d "/openes/es_repo/data" ]; then
echo "directory \"/openes/es_repo/data\" exists"
else
mkdir -p /openes/es_repo/data
fi
if [ -d "/openes/es_repo/logs" ]; then
echo "directory \"/openes/es_repo/logs\" exists"
else
mkdir -p /openes/es_repo/logs
fi
cat >>/openes/logstash/config/logstash.yml<<EOF
## 修改以下配置
path.data: /openes/logstash_repo/data
path.logs: /openes/logstash_repo/logs
EOF
cat >/openes/logstash/config/logstash-data-govern.conf<<EOF
## Sample Logstash configuration for creating a simple
## tcp -> Logstash -> Elasticsearch pipeline.
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "data-govern-%{+YYYY.MM.dd}"
}
}
EOF
cd /openes/logstash/ || exit
chown -R openes:openes /openes/
source /etc/profile
nohup ./bin/logstash -f config/logstash-data-govern.conf > logstash.log 2>&1 &
!
"ps -aux|grep logstash"
fi
}
0-basic-install
1-java-install
2-mysql-install
3-redis-install
4-minio-install
5-nginx-install
6-rocketmq-install
7-rocketmq-console-install
8-Elasticsearch-install
9-Kibana-install
10-Logstash-install
一键部署十个服务脚本--可拆分---java+mysql+redis+nginx+rocketmq..等等的更多相关文章
- 一键部署open***服务
一键部署超级简单易用的openvpn服务器,支持多证书+多账号[密码]认证 一. 服务器端部署 项目地址:https://github.com/guoew/openvpn-install 1.1. 下 ...
- 初识Kafka----------Centos上单机部署、服务启动、JAVA客户端调用
作为Apach下一个优秀的开源消息队列框架,Kafka已经成为很多互联网厂商日志采集处理的第一选择.后面在实际应用场景中可能会应用到,因此就先了解了一下.经过两个晚上的努力,总算是能够基本使用. 操作 ...
- 安装部署Windows服务脚本
@echo off Installutil.exe 程序目录 F:\test\TestWindows.exe 服务程序目录 @sc start "服务名称" @sc config ...
- C# 安装部署Windows服务脚本
@echo off Installutil.exe 程序目录 F:\test\TestWindows.exe 服务程序目录 @sc start "服务名称" @sc config ...
- mq/mysql/redis/nginx常见服务&工具安装
单机版 3.1安装工具 3.1.1 安装Maven工具 3.1.1上传安装包 1)root用户创建安装目录如/usr/local /maven: mkdir -p /usr/local/maven ...
- centos7下搭建JAVA项目运行环境。 JAVA+MYSQL+TOMCAT+NGINX
环境: centos 7 64位 一.配置mysql 5.71.下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-e ...
- 105道BAT最新Java面试题(MySQL+Redis+nginx+ookeeper+MongoDB)
MySQL面试题 1. 主键 超键 候选键 外键 2.数据库事务的四个特性及含义 3. 视图的作用,视图可以更改么? 4. drop,delete与truncate的区别 5. 索引的工作原理及其种类 ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- 一键安装KMS服务
本文转载于 秋水逸冰 » 一键安装 KMS 服务脚本 KMS,是 Key Management System 的缩写,也就是密钥管理系统.这里所说的 KMS,毋庸置疑就是用来激活 VOL 版本的 Wi ...
- Java 实现Redis客户端,服务端
Java 实现Redis客户端,服务端 1.Java实现Redis发布订阅 1.1实例 2.[Redis]Java实现redis消息订阅/发布(PubSub) 3.java实现 redis的发布订阅 ...
随机推荐
- 1.2 Defining Computer Architecture
Genuine Computer Architecture: Designing the Organization and Hardware to Meet Goals and Functional ...
- IDEA2021 在jsp文件中 写out报错
报错原因: 是因为没有关联好服务器: 解决方案 File --> Project structure --> Modules --> 选中当前的模板 --> Dependenc ...
- jsp第十周
数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 Base ...
- C语言中的循环
1我觉得循环就是程序一直重复的执行一些语句,直到当符合条件时停止.循环总体分为while循环,do while循环和for循环. 2while循环和do while循环的区别:while是先判定是否符 ...
- 如何用虚拟机VMware Workstation安装CentOs-7
因为我是先安装虚拟机的,再安装CentOs的.在此建议大家先安装CentOs-7再安装虚拟机,比较方便. 1.首先进入centos官方网站下载,网站如下:https://www.centos.org/ ...
- Tomcat后端无法返回数据
以前使用的是Tomcat8和9,这次使用的10怎么就无法返回数据呢? 一开始以为是因为这个错误:Using CATALINA_OPTS: "" 但是后来发现怎么尝试都无法取出这 ...
- Qt之如何创建并显示一个柱状图
创建一个简单的柱状图 第一步:创建一个QBarSet对象:QBarSet类代表条形图中的一组条形. QBarSet *set0 = new QBarSet("Jane"); QBa ...
- python中创建列表、元组、字符串、字典
>>> a = ["aaa","bbb","ccc"] ## 列表,中括号,逗号 >>> type(a) ...
- web自动化--窗口切换
窗口切换 handles = driver.window_handles ------获取所有窗口句柄,返回的数据是一个列表类型 driver.switch_to.window(handles[-1] ...
- 1.3Dmax界面_试图操作
一.初始界面 1.菜单栏(软件的核心) 2.工具栏 3.石墨工具 4.命令板块 5.场景大纲 tools--> new Scene Explorer 创建的物体信息就会从出现在这里 6.视图窗口 ...