在部署项目之前首先要知道自己的最大的挂载磁盘的位置
df -h
一般情况下都要将我们的项目放到最大的磁盘空间下,防止磁盘空间不足。
注意: 在部署中间件或者是程序的时候,没有特殊情况下不要使用root账户来进行部署。
注意: 各种中间件和服务,在没有特殊的情况下全部使用只读账号进行启动
useradd readaccount
passwd readaccount
3、 设置sudo权限
切换到root账户
注意: 注意在搭建完环境之后,记得关闭或者减少 只读账户的sudo的权限。
vim /etc/sudoers
输入/ 进行内容的搜索
回车 确认内容
输入n 下一个满足条件的内容
找到 root ALL=(ALL) ALL 在下面添加一行内容:
readaccount ALL=(ALL) NOPASSWD: ALL
3、将最大的磁盘空间的所有者换为只读账户
这样的话我们的只读账户就有了这个路径下的所有者权限。
chown readaccount:readaccount /dev/shm
4、 搭建中间件(单机版本)
注意:如果是要搭建集群环境的话,可以查看我的其他文章。我也会持续进行更新。
redis
zookeeper
kafka
mysql
Postgresql
fastDfs
jenkins
rocketMQ
(后续会持续更新)
注意: 所有的中间件和启动服务都要编辑启动脚本;并且在/dev/shm 路径下(也就是我们的最大磁盘路径下) 创建bash目录,放置所有脚本。
5、1 jar脚本jar包的启动脚本
#!/bin/bash
pid=$(pgrep -f XXXX.jar)
jarname="/dev/shm/xxxxx/xxxx" #jar包地址
jvmoption="-Xms256m -Xmx1021m" # jvm启动参数
springlocation="--server.port=8195" #spring的一些启动参数
echo "set java test"
if [ -n "$pid" ]
then
echo "current: jar is running $pid . now: killing."
kill -9 $pid
echo "current: jar is restarting now"
cd $jarname
nohup java $jvmoption -jar XXXX.jar $springlocation >/dev/null 2>&1 &
sleep 2
pid=$(pgrep -f XXXX.jar)
if [ -n "$pid" ]
then
echo "current: jar is started now, pid: $pid ."
else
echo "current: jar is start fail"
fi
else
echo "current: jar not running, is starting now"
cd $jarname
nohup java $jvmoption -jar XXXX.jar $springlocation >/dev/null 2>&1 &
sleep 2
pid=$(pgrep -f XXXX.jar)
if [ -n "$pid" ]
then
echo "current: jar is started now, pid: $pid ."
else
echo "current: jar is start fail"
fi
fi
jar包的关闭脚本
#!/bin/bash
pid=$(pgrep -f XXXX.jar)
if [ -n "$pid" ]
then
echo " now is kill"
kill -9 $pid
sleep 2
pid=$(pgrep -f XXXX.jar)
if [ -n "$pid" ]
then
echo "kill is fail"
else
echo "kill is success"
fi
else
echo "is success"
fi
5、2 中间件启动脚本
将下载的压缩包统一存储
将下载的压缩包在最大磁盘路径下,创建upload目录,进行统一的存放。
6、 口令归档、服务归档口令归档: 将所有的管理台ip地址路径和账号密码进行统一归档。
服务归档: 将每个服务的名称、地址和开通的端口进行归档。
测试在断点的情况下,所有服务是否可以自动开机自启。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)