Metis0.3.0快速部署手册

运行如下命令进行快速安装

下载项目压缩包


wget https://coldcdn.com/api/cdn/mipfsdbkfx/ipfs/QmRazyHc14z75FPaiuY4UveXRwb8ketuhtqpQVcEe88b99?filename=Metis-Deploy.zip -O Metis-Deploy.zip

执行如下命令


# 解压项目目录

unzip Metis-Deploy.zip

# 先进入本项目目录

cd Metis-Deploy

# 安装 python 相关工具(Ubuntu 18.04 默认的 python 版本为 python2.7, python3 版本为 python3.6)

sudo apt install -y python python-pip python3 python3-pip

# 安装ansible

pip install ansible-2.7.11.tar.gz

# 安装其他依赖模块

pip install -r ./requirements.txt

安装并配置mysql

安装MySQL

  1. 检查系统中是否已经安装,在终端里面输入

sudo netstat -tap | grep mysql

若没有反映,没有显示已安装结果,则没有安装。如若已安装,可以选择删除。(删除方法放在下面)

  1. 如果没有安装,则安装MySQL。在终端输入

sudo apt-get install mysql-server mysql-client

在此安装过程中会让你输入root用户(管理MySQL数据库用户,非Linux系统用户)密码,按照要求输入即可。

  1. 测试安装是否成功,在终端输入

sudo netstat -tap | grep mysql

也可通过登录MySQL测试

在终端输入


mysql -uroot -p

接下来会提示你输入密码,输入正确密码,即可进入

修改远程访问mysql

  1. 修改配置文件的端口绑定

打开的目录可能会根据MySQL的版本稍有不同,可以先尝试打开/etc/mysql/my.cnf这个配置文件,若该文件不存在或文件内容为空,则尝试下面的文件路径。


sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在下面行的开头加上#,注释掉该行,然后保存退出vim:


bind-address = 127.0.0.1

  1. 修改访问权限

进入mysql,输入如下命令,输入密码,进入mysql命令行


mysql -u root -p

授权root用户访问权限,并刷新权限,此处的root可用其它MySQL用户替换,password部分需替换为该用户对应的密码


grant all privileges on *.* to root@"%"identified by"password"with grant option;

flush privileges;

exit;

  1. 重启mysql服务

service mysql restart

删除数据库 并清除操作

首先删除mysql:


sudo apt-get remove mysql-*

然后清理残留的数据


dpkg-l|grep ^rc|awk'{print $2}'|sudo xargs dpkg -P

它会跳出一个对话框,你选择yes就好了。然后安装mysql。

修改配置文件

配置数据库


# 登录数据库

mysql -u root -p

# 进入MySQL之后输入

## 授权root用户访问权限,并刷新权限

grant all privileges on *.* to root@"%"identified by"metis_root"with grant option;

## 创建新用户并授权访问权限

grant all privileges on *.* to metis_admin@"%"identified by"admin_123456"with grant option;

flush privileges;

exit;

# 重启MySQL服务

service mysql restart

添加test用户


sudo adduser test

这里的test,就是inventory.ini里面的ansible_ssh_user的值,要一一对应。

test的用户密码就是ansible_ssh_passansible_sudo_pass的值。

添加testsudoers


sudo vim /etc/sudoers

添加一行,并按:wq!退出


test  ALL=(ALL) ALL

修改inventory.ini配置文件

由于我开启了DMZ并指向服务器,因此配置文件中的xxx.xxx.xxx.xxx地址均为内网地址,各位可以按照说明自行修改。


# 库存文件,主要用来配置主机列表和主机组

# 网关,一个组织有一个网关服务

[via]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

# 调度,一个组织有一个调度服务

[carrier]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

# 管理台,一个组织有一个管理台服务

[admin]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

# 资源节点,一个组织可以配置多个资源服务

[data]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

# 计算节点,一个组织可以配置多个计算服务

[compute]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

# 注册中心,一个组织要配置奇数个(3,5,等)注册中心,方便 raft 选择leader

[consul]

xxx.xxx.xxx.xxx ansible_ssh_user="test" ansible_ssh_pass="123456" ansible_sudo_pass="123456"

## Global variables

[all:vars]

# 集群的名称,自定义即可

cluster_name = haypo

# 部署服务开关

enable_deploy_via = True

enable_deploy_carrier = True

enable_deploy_admin = True

enable_deploy_data = True

enable_deploy_compute = True

enable_deploy_consul = True

# consul 服务的端口,根据自己的部署情况进行设置,数量要和 consul 组里面的 ip 数量一致。

consul_server_port = [8200]

consul_serf_lan_port = [8300]

consul_serf_wan_port = [8400]

consul_http_port = [8500]

consul_dns_port = [8600]

# admin web 服务证书相关配置信息

enable_tls = False # 是否启用 https,启用设置为 True,需要配置证书和相应的域名,证书里面的密码套件等,不启用设置为 False,忽略下面的配置。

admin_server_name = metis-admin.demo.network

admin_ssl_protocols = "TLSv1 TLSv1.1 TLSv1.2"

admin_ssl_ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

# admin web 的 mysql 相关用户名密码

mysql_root_password = metis_root

amin_user = metis_admin

admin_password = admin_123456

# admin web 服务端口号

admin_web_port = 9090

# carrier 外网 ip 地址

carrier_external_ip = xxx.xxx.xxx.xxx

# carrier 服务端口号

carrier_pprof_port = 7701

carrier_rpc_port = 10030

carrier_grpc_gateway_port = 7702

carrier_p2p_udp_port = 10031

carrier_p2p_tcp_port = 10032

# via 外网 ip 地址

via_external_ip = xxx.xxx.xxx.xxx

# via 服务端口号

via_port = 10040

# data 端口号,根据自己的部署情况进行设置,数量要和 data 组里面的 ip 数量一致。

data_port = [30000]

# compute 端口号,根据自己的部署情况进行设置,数量要和 compute 组里面的 ip 数量一致。

compute_port = [40000]

开始运行节点

Metis-Deploy目录下执行


ansible-playbook -i inventory.ini deploy.yml

ansible-playbook -i inventory.ini start.yml

此时RPC端口为10030,可以在浏览器里输入服务器地址:80即可访问页面。

账号密码都是admin,验证码随便写。

2 Likes

写的不错,给你点个赞。

【来自尊贵的 LatticeX 论坛 Lv3 活跃用户】

2 Likes