长安链离线部署思路

长安链离线部署基础思路

长安链离线部署思路_第1张图片

文章目录

  • 长安链离线部署基础思路
  • 第一部分
    • 管理台前端主备+后端双机+mysql高可用
      • nginx负载均衡:192.168.187.8(主) 192.168.187.9(备)虚拟ip:192.168.187.16
      • 前端:192.168.187.10 192.168.187.11
      • 后端:192.168.187.12; 192.168.187.13
      • MySQL:192.168.187.14(主) 192.168.187.15(备) 虚拟ip:192.168.187.17
        • 1.nginx部署
          • (1)执行部署脚本
          • (2)修改配置文件:
          • (3)启动nginx ##机器全部部署好后开启
          • (4)安装keepalived
          • (5)开启并测试keepalived
        • 2.前端部署 192.168.187.10 (记得改成自己的IP,两台部署过程一致,在这里仅列出一台)
          • (1)执行部署脚本
          • (2)修改配置文件:
          • (3)添加nginx upstream池,实现负载均衡。(proxy_pass 指定的反向代理的服务器地址为cm-mgmt-server-service,所以这里也是cm-mgmt-server-service)
          • (4)启动nginx ##六台机器全部部署好后开启
        • 3.后端部署 192.168.187.12 (记得改成自己的IP,两台部署过程一致,在这里仅列出一台)
          • (1)执行部署脚本
          • (2)修改config.yml文件
          • (3)添加执行权限并启动管理台后端
          • (4)设置环境变量
          • (5)配置并启动ide-server
          • (6)maven打包api jar包
          • (7)解压tar包并开启api
        • 4.MySQL部署高可用,两台机器执行相同操作:
          • (1)执行部署脚本
          • (2)修改/etc/my.conf
          • (3)重启数据库,设置开机自启动
          • (4)初始化设置mysql
            • 执行如下命令修改root密码:
            • 主机上:互为主备在每台机器上都做一遍
            • 备用机上:互为主备在每台机器上都做一遍
            • 启动从库失败,执行
          • (5)创建chainmaker数据库,在一台上做即可
          • (6)创建chainmaker用户,并赋予远程登陆权限
          • (7)kepplived安装配置:(在两台node节点上安装keepalived软件程序(两台安装步骤一致,在此只列出一台);)
          • 安装keepalived
          • (8)编写检测keepalived脚本文件
          • (9)开启并测试keepalived
      • 浏览器访问:192.168.187.16
  • 第二部分
    • ansible管理节点ip: 192.168.187.18
      • 1.执行部署脚本
      • 2. 配置镜像加速器,配置daemon.json文件
      • 3.重启服务
      • 4.awx安装
      • 5.登录awx(用户名admin,默认密码为password)
    • awx实践
      • 1.清单名称为测试区
      • 2.创建主机,分别新增被管主机192.168.134.11/12/13/14,指定登录用户和密码
      • 4.主机新增完毕
      • 5.执行命令,参数为:mkdir /root/ceshi
      • 6.命令执行完成
    • 使用awx批量部署区块链节点
      • 1.编写playbook剧本
      • 2.将安装包放到/var/lib/awx/projects/下
      • 3.创建项目,指定SCM类型和playbook目录
      • 4.创建任务模板
      • 5.执行并返回执行结果
  • 第三部分
    • 离线部署普罗米修斯+grafana 监控工具
      • 1.prometheus搭建步骤
        • (1).关闭防火墙
        • (2).编辑prometheus配置文件新增区块链节点ip及端口
        • (3).运行prometheus
        • (4).网页访问
      • 2.安装grafana
        • (1).解压安装包
        • (2).启动
        • (3).访问 IP + Port,grafana 默认的启动 port 是 3000,初始账号和密码都是 admin
        • (4).添加promethus数据源
        • (5).添加仪表 https://grafana.com/grafana/dashboards/9614

第一部分

管理台前端主备+后端双机+mysql高可用

nginx负载均衡:192.168.187.8(主) 192.168.187.9(备)虚拟ip:192.168.187.16

前端:192.168.187.10 192.168.187.11

后端:192.168.187.12; 192.168.187.13

MySQL:192.168.187.14(主) 192.168.187.15(备) 虚拟ip:192.168.187.17

1.nginx部署

(1)执行部署脚本

sh setup.sh
长安链离线部署思路_第2张图片

(2)修改配置文件:

vi /etc/nginx/conf.d/default.conf

stream {

upstream web{

server 192.168.187.10:80 up;

server 192.168.187.11:80 up;

}

server {

listen 80;

proxy_connect_timeout 5s;

proxy_timeout 300s;

proxy_pass web;

}

upstream ide{

server 192.168.187.10:5000 up;

server 192.168.187.11:5000 up;

}

server {

listen 5000;

proxy_connect_timeout 5s;

proxy_timeout 300s;

proxy_pass ide;

}

}

(3)启动nginx ##机器全部部署好后开启

systemctl restart nginx

systemctl enable nginx

systemctl status nginx

(4)安装keepalived

tar xf keepalived.tar.gz

rpm -Uvh keepalived/*.rpm --nodeps --force

vim /etc/keepalived/keepalived.conf (记得改成自己的ip 192.168.187.10)

! Configuration File for keepalived

global_defs { //主要是配置故障发生时的通知对象以及机器标识

router_id db01 //标识本节点的字符串, 通常为hostname

}

vrrp_instance VI_1 {

//VRRP 实例state MASTER // MASTER 或BACKUP
state MASTER //表示主服务器

interface ens33 //节点固有IP(非VIP)的网卡,用来发VRRP包

virtual_router_id 51 //虚拟路由器的ID号,每一个keep组都不同,同组一致

priority 100 //优先级,数值越大优先级越高

advert_int 1// MASTER 与BACKUP 负载均衡器之间>同步检查的时间间隔,单位为秒。

advert_int 1 // MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。

authentication { //认证信息

auth_type PASS //认证类型

auth_pass 1111 //密码字串

}

virtual_ipaddress {

//虚拟ip 地址,可以有多个地址,每个地址占一行,不需要子网掩码

192.168.187.16

}

}

virtual_server 192.168.187.16 80 {

delay_loop 6 //健康检查间隔,单位为秒

persistence_timeout 50 // 会话保持时间,就是把用户请求转发给同一个服务器

protocol TCP //转发协议,有TCP 和UDP 两种,一般用TCP

real_server 192.168.187.8 80 {

notify_down /etc/keepalived/kill_keepalived.sh

TCP_CHECK { //通过tcpcheck 判断RealServer 的健康状态

connect_timeout 3 //连接超时时间

nb_get_retry 3 //重连次数

connect_port 80 //连接接口

delay_before_retry 3 //重连间隔时间

}

}

}

:wq

(5)开启并测试keepalived

systemctl start keepalived

ip a |grep 192.168.187.16

2.前端部署 192.168.187.10 (记得改成自己的IP,两台部署过程一致,在这里仅列出一台)

(1)执行部署脚本

sh setup2.sh
长安链离线部署思路_第3张图片

(2)修改配置文件:

vi /etc/nginx/conf.d/default.conf

server {
listen 5000;
root /usr/share/nginx/html/ide;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /amis {
proxy_read_timeout 300;
proxy_pass http://cm-ide-server-service;
client_max_body_size 0;
}
}

(3)添加nginx upstream池,实现负载均衡。(proxy_pass 指定的反向代理的服务器地址为cm-mgmt-server-service,所以这里也是cm-mgmt-server-service)

vim /etc/nginx/conf.d/ip_vs.conf

upstream cm-mgmt-server-service {

ip_hash;

server 192.168.187.13:9999 weight=1;

server 192.168.187.12:9999 weight=1;

}

vim /etc/nginx/conf.d/ide.conf

upstream cm-ide-server-service {

ip_hash;

server 192.168.187.13:13000 weight=1;

server 192.168.187.12:13000 weight=1;

}

(4)启动nginx ##六台机器全部部署好后开启

systemctl restart nginx

systemctl enable nginx

systemctl status nginx

3.后端部署 192.168.187.12 (记得改成自己的IP,两台部署过程一致,在这里仅列出一台)

(1)执行部署脚本

sh setup3.sh
长安链离线部署思路_第4张图片

(2)修改config.yml文件

vim mgmt-server/mgmt-server/configs/config.yml

db:

host: 192.168.187.17 //MySQL虚拟ip

port: 3306 //端口

database: chainmaker //可以使用的数据库

user: chainmaker //数据库用户

passwd: a123456 //密码

(3)添加执行权限并启动管理台后端

chmod +x mgmt-server/mgmt-server/bin/startup.sh

sh mgmt-server/mgmt-server/bin/startup.sh

ps -ef | grep mgmt

(4)设置环境变量

vim /etc/profile

在这里插入图片描述

source /etc/profile

(5)配置并启动ide-server

mvn clean package -DskipTests -Dgitinfo.skip=true

长安链离线部署思路_第5张图片

cp target/cp cm-ide-server-1.0.tar.gz /usr/local/

tar xf /usr/local/cm-ide-server-1.0.tar.gz

sh /usr/local/cm-ide-server-1.0/bin/app.sh

(6)maven打包api jar包

mvn clean package -DskipTests

长安链离线部署思路_第6张图片

(7)解压tar包并开启api

cp target/cm-api-1.0.tar.gz /usr/local/

tar xf cm-api-1.0.tar.gz

sh cm-api-1.0/bin/app.sh

在这里插入图片描述

4.MySQL部署高可用,两台机器执行相同操作:

(1)执行部署脚本

sh setup4.sh

长安链离线部署思路_第7张图片

(2)修改/etc/my.conf

vim /etc/my.cnf

[mysqld]

port=3306

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

#Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

disable-partition-engine-check=1

#只能用IP地址检查客户端的登录,不用主机名

skip_name_resolve=1

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

#设置client连接mysql时的字符集,防止乱码

init_connect=‘SET NAMES utf8mb4’

#是否对sql语句大小写敏感,1表示不敏感

lower_case_table_names=1

#最大连接数

max_connections=400

##最大错误连接数

max_connect_errors=1000

max_allowed_packet=200M

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭

#MySQL默认的wait_timeout值为8个小时, interactive_timeout参数需要同时配置才能生效

interactive_timeout=1800

wait_timeout=1800

#mysql binlog日志文件保存的过期时间,过期后自动删除

expire_logs_days=5

############################主从复制 设置########################################

#开启mysql binlog功能

log-bin=mysql-bin

#binlog记录内容的方式,记录被操作的每一行

#binlog_format = ROW

##作为从库时生效,想进行级联复制,则需要此参数

log_slave_updates = on

#作为从库时生效,中继日志relay-log可以自我修复

#relay_log_recovery = 1

server-id=1

#任意自然数n,只要保证两台MySQL主机不重复就可以

auto_increment_increment=2

#步进值auto_imcrement。一般有n台主MySQL就填n

auto_increment_offset=1

#起始值。一般填第n台主MySQL。此时为第一台主MySQL

(3)重启数据库,设置开机自启动

systemctl restart mysqld

systemctl enable mysqld

(4)初始化设置mysql

grep password /var/log/mysqld.log

mysql -uroot -p 输入上面的临时密码

执行如下命令修改root密码:

SET GLOBAL validate_password_policy=0;

SET GLOBAL validate_password_length=4;

ALTER USER user() IDENTIFIED BY ‘a123456’;

grant replication slave on . to ‘root’@‘192.168.187.%’ identified by ‘a123456’;

FLUSH PRIVILEGES;

quit

systemctl restart mysqld

主机上:互为主备在每台机器上都做一遍

mysql -uroot -pa123456

show master status;

备用机上:互为主备在每台机器上都做一遍

change master to master_host=‘192.168.187.14’,master_user=‘root’,master_password=‘a123456’,master_log_file=‘mysql-bin.000003’,master_log_pos=154;

start slave;

show slave status\G;

启动从库失败,执行

reset slave;

(5)创建chainmaker数据库,在一台上做即可

CREATE DATABASE IF NOT EXISTS chainmaker DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
##修改字符集为utf8mb4,它utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序

(6)创建chainmaker用户,并赋予远程登陆权限

CREATE USER ‘chainmaker’@‘%’ IDENTIFIED BY ‘a123456’;

GRANT ALL ON chainmaker.* TO ‘chainmaker’@‘%’;

(7)kepplived安装配置:(在两台node节点上安装keepalived软件程序(两台安装步骤一致,在此只列出一台);)
安装keepalived

vim /etc/keepalived/keepalived.conf (记得改成自己的ip 192.168.187.14)

! Configuration File for keepalived

global_defs { //主要是配置故障发生时的通知对象以及机器标识

router_id db01 //标识本节点的字符串, 通常为hostname

}

vrrp_instance VI_2 {

//VRRP 实例state MASTER // MASTER 或BACKUP,为了防止脑裂现象,主备均需要设置为backup 模式,master 模式会抢占VIP

state BACKUP

interface ens33 //节点固有IP(非VIP)的网卡,用来发VRRP包

virtual_router_id 52 //取值在0-255 之间,用来区分多个instance的VRRP组

priority 100 //优先级,同一个vrrp_instance 的MASTER优先级必须比BACKUP 高

nopreempt //非抢占,配合backup,防止切换后,主库服务恢复正常后,IP 漂移过来

advert_int 1// MASTER 与BACKUP 负载均衡器之间>同步检查的时间间隔,单位为秒。

advert_int 1 // MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

//虚拟ip 地址,可以有多个地址,每个地址占一行,不需要子网掩码

192.168.187.17

}

}

virtual_server 192.168.187.17 3306 {

delay_loop 6 //健康检查间隔,单位为秒

persistence_timeout 50 // 会话保持时间,就是把用户请求转发给同一个服务器

protocol TCP //转发协议,有TCP 和UDP 两种,一般用TCP

real_server 192.168.187.14 3306 {

notify_down /etc/keepalived/kill_keepalived.sh

TCP_CHECK { //通过tcpcheck 判断RealServer 的健康状态

connect_timeout 3 //连接超时时间

nb_get_retry 3 //重连次数

connect_port 3306 //连接接口

delay_before_retry 3 //检测端口

}

}

}

:wq

(8)编写检测keepalived脚本文件

vim /etc/keepalived/kill_keepalived.sh

#!/bin/bash

systemctl stop keepalived

echo -e “$(ip a |grep ens32 |grep inet |awk ‘{print $2}’|awk -F’/’ ‘{print $1}’) (httpd) is down on $(date +%F-%T)” >>/root/check_httpd.log

:wq

chmod 755 /etc/keepalived/kill_keepalived.sh

(9)开启并测试keepalived

systemctl start keepalived

ip a |grep 192.168.187.17

浏览器访问:192.168.187.16

第二部分

ansible管理节点ip: 192.168.187.18

1.执行部署脚本

sh setup5.sh

长安链离线部署思路_第8张图片
长安链离线部署思路_第9张图片

2. 配置镜像加速器,配置daemon.json文件

mkdir -p /etc/docker

vi daemon.json

{

“registry-mirrors”: [“https://v16stybc.mirror.aliyuncs.com”]

}

3.重启服务

systemctl daemon-reload

systemctl restart docker

4.awx安装

cd /usr/local/ansible/awx-10.0.0/installer

ansible-playbook -i inventory install.yml

长安链离线部署思路_第10张图片

docker ps

长安链离线部署思路_第11张图片

5.登录awx(用户名admin,默认密码为password)

长安链离线部署思路_第12张图片

awx实践

1.清单名称为测试区

长安链离线部署思路_第13张图片

2.创建主机,分别新增被管主机192.168.134.11/12/13/14,指定登录用户和密码

长安链离线部署思路_第14张图片

4.主机新增完毕

长安链离线部署思路_第15张图片

5.执行命令,参数为:mkdir /root/ceshi

长安链离线部署思路_第16张图片

6.命令执行完成

长安链离线部署思路_第17张图片

使用awx批量部署区块链节点

1.编写playbook剧本

cd /var/lib/awx/projects/

mv /usr/local/ansible/consensus.playbook ./

在这里插入图片描述

vi consensus.playbook/consensus.yml

长安链离线部署思路_第18张图片

长安链离线部署思路_第19张图片
长安链离线部署思路_第20张图片

2.将安装包放到/var/lib/awx/projects/下

mv /usr/local/ansible ./
在这里插入图片描述

3.创建项目,指定SCM类型和playbook目录

长安链离线部署思路_第21张图片

4.创建任务模板

长安链离线部署思路_第22张图片

5.执行并返回执行结果

长安链离线部署思路_第23张图片

在这里插入图片描述

第三部分

离线部署普罗米修斯+grafana 监控工具

1.prometheus搭建步骤

(1).关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i ‘s/enforcing/disabled/g’ /etc/selinux/config

(2).编辑prometheus配置文件新增区块链节点ip及端口

vi prometheus/prometheus.yml
在这里插入图片描述

(3).运行prometheus

sh prometheus/start.sh
长安链离线部署思路_第24张图片

(4).网页访问

长安链离线部署思路_第25张图片

2.安装grafana

(1).解压安装包

rpm -Uvh grafana/*.rpm --force --nodeps

(2).启动

systemctl enable grafana-server

systemctl start grafana-server
在这里插入图片描述

(3).访问 IP + Port,grafana 默认的启动 port 是 3000,初始账号和密码都是 admin

(4).添加promethus数据源

长安链离线部署思路_第26张图片

(5).添加仪表 https://grafana.com/grafana/dashboards/9614

长安链离线部署思路_第27张图片

你可能感兴趣的:(nginx,运维)