ubuntu 修改默认用户名_Tars框架在Ubuntu上的部署小结
这几天倒腾了腾讯的开源RPC框架Tars,踩了不少坑,好不容易搭建好了,赶紧趁热记录下来!
一开始我图方便就想着用Docker来部署Tars,官方文档也建议这么做,可是最终死活运行不起来,后来便采用源码部署的方案了。
虽然也有些坑,但还好搞定了。
这里主要也是记录源码部署的过程!
1 Tars依赖安装
按照官方文档,源码编译过程需要安装一系列依赖包:gcc,glibc,bison,flex,cmake,ncurses-devel和zlib-devel。
Ubuntu系统的安装命令如下。
~$ sudo apt-get install build-essential bison flex cmake psmisc libncurses5-dev zlib1g-dev
接着安装MySQL数据库管理系统。
刚开始直接用Docker那一套方案的MySQL环境没有出现问题,可是后来搭建主从节点的时候才发现MySQL在Docker中的IP是本地虚拟网络,其他机子没办法连接,所以就在主节点本地安装了MySQL 5.7。
这里直接参考官方文档的MySQL APT安装指引就可以了,网页链接放在文末(其实直接搜索就行了:D)。
装好MySQL之后,为了让其他机子远程登录使用,还需要再做些配置工作。
(当然,如果只是在一台机子上搭建Tars的话,这一步可以跳过,只要本机能访问就行了。)
先打开MySQL的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,找到其中的bind-address,并把它注释掉。
如果不注释掉的话,MySQL只能监听本机,这样其他节点就没办法在此读写数据库了。
MySQL 8.0的配置文件貌似没有这一项,因此可以省略这一步!
紧接着登录MySQL,修改数据库用户的权限配置。
其中,[username]是需要授权的用户名,[password]是用户密码。
~$ mysql -u root -p
mysql> USE mysql;
mysql> GRANT ALL ON *.* TO '[username]'@'%'-> IDENTIFIED BY '[password]';
mysql> FLUSH privileges;
FLUSH privileges是刷新配置让授权生效,设置完之后要再重启一下MySQL服务。
~$ sudo systemctl restart mysqld.service
这样就能在其他机子上通过指定host连接上这个MySQL服务器了。
其中,[mysql-ip]是MySQL数据库所在机子的IP地址,[username]就是刚授权的用户名。
~$ mysql -h [mysql-ip] -u [username] -p
只要被Welcome就证明已经搞定了!
2 Tars框架安装与部署
依赖都装好之后,就可以下载源码开始编译安装了。
官方文档是从Github仓库下载,可是速度实在让人捉急。还好腾讯也把代码放在Gitee上了,国内下载还是建议用码云吧,速度快的不只是一星半点:D
~$ git clone https://gitee.com/TarsCloud/TarsFramework.git
我们需要手动在/usr/local路径下新建tars和app两个目录,以便框架安装使用。
~$ cd /usr/local/
~$ sudo mkdir tars app
切换回TarsFramework路径,进入build目录开始编译安装,[git-clone-path]是存放Tars源码的路径。
~$ cd [git-clone-path]/TarsFramework
~$ git submodule update --remote --recursive
~$ cd build && cmake ..
~$ make -j4 && sudo make install
框架会默认安装在/usr/local/tars/cpp目录下,而且框架部署的脚本、框架工具、依赖的库和头文件也都放置在这个目录下。
接着还是通过Gitee下载TarsWeb的代码,并拷贝到/usr/local/tars/cpp/deploy目录下,这里要注意将目录名改为web。
~$ git clone https://gitee.com/TarsCloud/TarsWeb.git
~$ sudo cp -rf TarsWeb /usr/local/tars/cpp/deploy/web
这样,框架部署前的工作就都准备好了。
刚开始试水时我只在自己的笔记本上部署单机主节点,成功后便尝试部署一主一从,把数据库和主节点都安装在实验室没用的主机上,自己的笔记本就部署从节点。
这样主节点就可以一直不关机了:D
接下来一键部署就很方便:
- [MYSQL_HOST]是MySQL数据库的IP地址。
- [MYSQL_USER]是MySQL的用户,也就是先前授权的用户,默认是root。
- [MYSQL_PASSWORD]是授权用户的密码。
- [MYSQL_PORT]是MySQL服务器端口,默认是3306。
- [INET]是网卡的名称,可以通过ifconfig来查看,比如我的是enp1s0。
- [REBULD]指是否重建数据库,通常为false,当然中途安装出错可以设为true重置。
- [SLAVE]指是否为从节点,主节点为false。
~$ cd /usr/local/tars/cpp/deploy
~$ chmod a+x linux-install.sh
~$ sudo ./linux-install.sh [MYSQL_HOST]
> [MYSQL_PASSWORD] [INET] [REBULD]
> [SLAVE] [MYSQL_USER] [MYSQL_PORT]
一键部署会自动把TarsWeb安装好,如果看到下面图片中的显示,就证明框架部署成功了!
现在可以通过主节点IP加端口号http://[IP]:3000来访问Web管理平台。
首次访问需要修改admin的密码,然后通过管理员用户名admin和新密码就可以登录到Web管理后台了!
按官方文档的说明,主节点会默认安装tarsAdminRegistry、tarspatch、tarsweb、tarslog、tarsstat、tarsproperty,这个几个服务在从节点上不会安装。
所以我的笔记本从节点上只部署了tarsregistry、tarsqueryproperty、tarsquerystat、tarsconfig、tarsnode、tarsnotify这几个服务。
部署过程中,脚本会根据所设的参数登录数据库,创建TarsAdmin账号并授权Tars相关的数据库来给框架使用。
登录MySQL数据库,会发现部署时创建了7个Tars相关数据库。
3 Tars安装后说明
框架部署完成后,Web模块需要用pm2来管理。可是在Ubuntu下因为权限的问题,执行pm2会出错。
首先需要让node环境变量生效,然后按指示修改pm2的用户权限,[user]是系统用户名。
~$ sudo -s source /etc/profile
~$ sudo chown [user]:[user] /home/[user]/.pm2/rpc.sock
> /home/[user]/.pm2/pub.sock
然后再用pm2 list命令就可以查看模块的状态了!
如果机器重启的话,框架服务和Web组件就需要我们手动启动,可以用框架的自带脚本启动框架。
~$ cd /usr/local/app/tars
~$ sudo ./tars-start.sh
Web组件可以通过pm2来启动监控,如果该模块有问题也可以查pm2的用法来对其操作。
~$ cd /usr/local/app/web
~$ npm run prd
~$ pm2 list
官方文档上写着通过npm run dev来启动,可是我怎么试都出错。最后在部署框架时的输出日志里发现命令改成了npm run prd...
不仔细看日志真的被坑的有点惨!!
登录Web管理平台,在访问服务监控和特性监控页面时可能会出现如下的报错。
从报错中可以看出是查询2020120400的数据时出错了,我是在12.05才搭好的框架,而Web默认查询数据库中关于12.04的数据,当然就报错了。
在TarsWeb GitHub仓库的Issues里有人提出将Web前端默认选中的当前日期改为根据服务器时间确定,而不是浏览器时间。
我们可以通过查询tars_stat数据库看到相应的状态。
还可以查看日志跟踪一下报错所在!
可是我根据报错日志,在web安装目录下定位了半天也不知道该在哪个地方修改默认的当天日期,菜的抠jio啊0.0
最后干脆偷了个懒,想着等到第二天它的默认日期就会同步到12.05了,最后果然不再报错!
看来Web组件还是讲武德的。
到这里,Tars算是部署完成了!回顾我的试水历程还是挺折腾的:
单机Docker数据库&Tars-->单机Docker数据库&源码Tars-->主从Dcoker数据库&源码Tars-->主从本地数据库&源码Tars ...
现在自己都可以不看文档直接敲命令配置了:D
安装完毕,可以开始HelloWorld了!
以上。
参考资料:
1. A Quick Guide to Using the MySQL APT Repository
2. Ubuntu 16.04.1 LTS 实现远程登录 MySQL
3. Tars框架部署方案
4. Tars GitHub仓库
5. TarsWeb Issues
6. pm2 - 用法大全
ubuntu 修改默认用户名_Tars框架在Ubuntu上的部署小结相关推荐
- ubuntu 修改默认用户名_Ubuntu默认的用户名和密码是什么?
满意答案 llw0601 2013.03.10 采纳率:49% 等级:12 已帮助:10408人 用这个办法试试 以下方法并非我当时解决的方法,因为当时尝试了很多,也走了不少弯路,有点乱,没能完 ...
- ubuntu 修改默认用户名_Ubuntu更改用户名的方法
首先这是个有危险的动作,刚刚试过修改用户名,发现网上搜索到的方法大部分是有错误的,所以觉得有必要分享出来. 下面讲的是不添加用户的情况下直接修改当前用户的用户名(大部分用户的ubuntu系统只有一个管 ...
- Click House设置远程登陆及修改默认用户名密码
最近在研究Click House,部署.配置及使用都整理一下. 1.设置远程登陆 默认安装完,是只能本地进行访问,即:127.0.0.1,如果想让其他机器访问就需要修改配置文件了,步骤如下: 修改co ...
- AI算力调度EasyCVR视频融合平台如何修改默认用户名?
EasyCVR视频融合云平台基于云边端一体化架构,兼容性高.拓展性强,可支持多类型设备.多协议方式接入,包括国标GB/T28181.RTMP.RTSP/Onvif协议,以及厂家的私有协议,如:海康Eh ...
- 树莓派4B系列2:修改默认用户名和密码+更换清华源+修改时区
一.修改默认用户名和密码 树莓派默认用户名为pi,密码是raspberry.当需要修改默认用户名和密码时,可进行如下操作: 1.启用root账号:密码不显示在屏幕上,输入两次回车即可激活root账号. ...
- Ubuntu修改默认源为国内
修改默认源,官方源由于网络原因太慢,修改为国内源 #以阿里为例 vim /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ focal ...
- ubuntu修改默认python为python3
1 ubuntu默认python ubuntu 大多镜像版本都会携带python解释器: ubuntu16.04 python指令进入python2.7,默认python3.5 如果没有python我 ...
- Ubuntu修改默认sh为bash
现在的Ubuntu版本默认sh都是使用的dash,用起来实在是别扭,所以找了一下,发现可以通过设置,修改为原来的bash. 首先查看系统的/bin/sh $ ls -al /bin/sh /bin/s ...
- linux 默认启动内核,ubuntu修改默认启动内核
一.序言 新换的笔记本由于太新的主板芯片,驱动还没有完善.每次升级系统内核都要小心谨慎.经常发生部分硬件驱动失败的事情. 系统Ubuntu 20.04.2 LTS x86_64 ,我现在使用的两个版本 ...
最新文章
- 代码改动两三行,AI数据秒换隐身衣!隐私计算+AI?中科院博士实践分享一键切换...
- 最小二乘拟合,L1、L2正则化约束--转
- MYSQL 与 Oracle 之间的数据类型转换
- 原来这些行业的“潜规则”是这样的...
- oracle 11gdata guard,Oracle 11g Data Guard配置
- C语言的atoi和C++的to_string
- asp.net如何生成图片验证码
- 今天的凉爽的学习环境 录音软件
- 50个直击灵魂的问题_直击灵魂的问题:“妈妈,我还能要个哥哥不!”
- python拓展库random_一分钟让你学会Python Random库的使用
- python123测试_【测码学院】python自动化测试学习-自动化测试模型
- 数据科学 IPython 笔记本 7.3 Pandas 数据操作
- 20180514 ++i和i++
- atitit.报表最佳实践oae 与报表引擎选型
- arduino 有源 蜂鸣器_Arduino 入门到精通 蜂鸣器发声
- php code128扫码不能识别,求助excel中code128字体打印出的条码扫描枪读不出
- C#调用支付宝转账接口 已调通
- 【基础系列】赏析刘洪普《PyTorch深度学习实践》与《实战:基于CNN的MNIST手写数字识别》(Python版)
- hdu 2502月之数
- 码医自学法V2.2(附名老中医)
热门文章
- 用delphi模仿.net的string.split
- 使用某些 DOCTYPE 时会导致 document.body.scrollTop 失效
- 给出如下公式的python表达式7+9i+2xcos66_这100道练习,带你玩转Numpy
- 右键菜单_右键菜单太长会导致电脑卡顿?轻松删除右键菜单无用项
- java private list_Java基础知识回顾之四 ----- 集合List、Map和Set
- android contextmenu listview,Android ListView ContextMenu
- 基于 Windows 7 的计算机可用内存低于安装内存
- 机器视觉:偏振片应用
- Halcon PDF文档(hdevelop_users_guide)学习总结之三——关于变量窗口的小知识
- regionserver.HRegionServer: Failed construction RegionServer