ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用rpm打包nacos然后部署为systemd服务开机自动启动的方法

2021-10-31 09:01:21  阅读:210  来源: 互联网

标签:systemd service rpm nacos data HOME root


背景

Nacos是阿里开源的服务注册组件,能够简单的实现微服务的注册与发现机制.
但是官方并没有提供 sytemd的服务脚本, 也没有提供rpm包的方式. 
公司里面使用 nacos的场景越来越多, 部署起来服务开机启动与保活的要求越来越高
为了简单起见,加之最近一直在研究rpmbuild 索性直接使用rpmbuild打包进行处理
场景为:
可以一键安装, 设置服务开启自动启动. 但是需要页面自行修改密码.

编写systemd的脚本

编写systemd的脚本还是比较简单的 主要如下
注意 我这边不进行 cat > EOF的机制, 可以学习一下systemd脚本的路径以及文件信息
vim /etc/systemd/system/nacos.service
[Unit]
Description=nacos server
Wants=network-online.target
After=network.target

[Service]
Type=forking
WorkingDirectory=/data/nacos/bin/
ExecStart=/data/nacos/bin/startup.sh -m standalone
Restart=always

[Install]
WantedBy=multi-user.target

编写systemd的脚本

  • 注意事项:
1. 需要先期将nacos文件放置好位置 需要手工或者是 rpm install的方式安装与/data/nacos目录下.
2. 需要指定工作目录.
3. 需要修改startup.sh 内的启动脚本, 建议可以讲OpenJDK添加到 /data/nacos目录下.通过绝对路径指向
4. 注意需要设置严格的启动执行权限, 避免启动失败.

文件准备与启动脚本修改

/data/nacos
[root@k8s nacos]# tree -L 1
.
├── bin
├── conf
├── data
├── jdk1.8.0_302
├── LICENSE
├── logs
├── NOTICE
└── target

文件准备与启动脚本修改

注意需要修改 /data/nacos/bin 目录下面的 startup.sh 脚本添加 JAVA_HOME的路径才可以.
因为我这边是绝对路径, 修改起来比较简单. 
添加一句话即可.
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/data/nacos/jdk1.8.0_302
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
export JAVA_HOME=/data/nacos/jdk1.8.0_302
可以修改最上面一样, 也可以修改添加export的一行. 
注意最后面一定不要添加 / 不然服务会启动失败

文件准备与启动脚本修改

修改完成之后:
第一步
cd /data/nacos/bin
./startup.sh -m standalone 的方式验证服务可以启动.
第二步
将nacos.service 复制到 /etc/systemd/system/ 目录下(或者是直接编辑)
使用 systemctl restart nacos 
验证服务可以启动.
注意nacos的启动时间 应该在 10s-30s 之间, 耐心等待, 如果有问题需要查看 out.log
如果没问题, 可以进行下一步的操作. 

编写nacos.spec文件

与之前rabbitmq 一致 (那个文档少在rabbitmqctl等脚本里面少添加了HOME环境变量)
自行编辑一个 nacos.spec文件 内容如下 不在过多描述了
#DEFINES
%define _binaries_in_noarch_packages_terminate_build   0
%global __os_install_post %{nil}

Name:       nacos
Version:    data_2.0.3
Release:    1%{?dist}
Summary:    Rpm package for nacos ...

Group:      nacos
License:    Copyright © zhaobsh
URL:        https://www.zhaobsh.com/
Source0:    nacos/
Source1:    nacos.service
BuildArch:  x86_64
Autoreq:    no

%description    
Rpm package for nacos

%install
app_dir=%{buildroot}/data
%{__install} -p -D %{SOURCE1} $RPM_BUILD_ROOT/etc/systemd/system/nacos.service
mkdir -p $app_dir                               
echo pwd
echo %{SOURCE0}/nacos/
cp -r %{SOURCE0}/nacos/ $app_dir/
cp -r %{SOURCE1} /etc/systemd/system/nacos.service
%files
%defattr(777,root,root)
/data/nacos
/etc/systemd/system/nacos.service
%dir    
/data/nacos

打包nacos的rpm文件

注意与 spec 里面描述必须完全一致 需要在 /root/rpmbuild/SOURCES 里面添加内容一下,仅需要注意nacos相关的
注意 nacos下面需要有最新的nacos以及最新的jdk等内容.
[root@k8s SOURCES]# pwd
/root/rpmbuild/SOURCES
[root@k8s SOURCES]# ll
总用量 24
drwxr-xr-x 8 root root  116 10月 31 00:51 nacos
-rw-r--r-- 1 root root  242 10月 31 00:55 nacos.service
drwxr-xr-x 9 root root 4096 10月 30 23:43 nginx
-rw-r--r-- 1 root root  176 10月 31 00:12 nginx.service
drwxr-xr-x 8 root root 4096 10月 30 23:16 rabbitmq
-rw-r--r-- 1 root root  609 10月 30 23:17 rabbitmq.service
drwxr-xr-x 2 root root   61 10月 28 20:36 redis
-rw------- 1 root root  166 10月 31 00:15 redis.service

然后进入 /root/rpmbuild/SPECS
执行命令为:
time rpmbuild -bb nacos.spec
即可获取nacos的rpm包.

安装与使用

rpm -ivh nacos-data_2.0.3-1.el7.x86_64.rpm
systemctl enable nacos && systemctl restart nacos
使用 http://ip:8848/nacos 用户nacos 密码 nacos 登录
注意 第一次务必修改密码,已策安全

标签:systemd,service,rpm,nacos,data,HOME,root
来源: https://www.cnblogs.com/jinanxiaolaohu/p/15488308.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有