首页 > 技术文章 > 1.2 蓝鲸智云部署

bjcdn 2021-07-05 17:06 原文

蓝鲸智云搭建(自动化运维平台)

蓝鲸智云简介:

腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(Interactive Entertainment Group,简称 IEG)自研自用的一套用于构建企业研发运营一体化体系的 PaaS 开发框架,提供了 aPaaSDevOps 流水线、运行环境托管、前后台框架)和 iPaaS(持续集成、CMDB、作业平台、容器管理、数据平台、AI 等原子平台)等模块,帮助企业技术人员快速构建基础运营 PaaS

1>硬件要求:

Centos7.xx以上

Cpu核数:6

内存空间:16G

硬盘空间:50G

2>蓝鲸智云版本:

官网地址:https://bk.tencent.com

下载地址:https://bk.tencent.com/download/

官网文档地址:https://bk.tencent.com/docs/document/5.1/20/613

此次安装版本:bkce_src-5.1.27.tar

3>环境准备:

1.配置Yum源:

将之前的yum源备份:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

 

     配置centos7腾讯yum源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo                           

2.配置腾讯epel源:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

 

3.清理缓存及建立元数据:

      yum clean all && yum makecache

4>关闭SELINUX

[root@rbtnode1 ~]#sestatus  #查看selinux状态,如果已关闭,可以跳过后面的命令

[root@rbtnode1 ~]# setenforce 0  #临时关闭selinux

[root@rbtnode1~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #修改配置文件可以永久关闭

5>关闭防火墙:安装和运行蓝鲸时,模块之间互相访问的端口策略较多,建议对蓝鲸后台服务器之间关闭防火墙。

[root@rbtnode1 ~]# firewall-cmd --state # 检查默认防火墙状态,如果返回 not running,可以跳过后面的命令

 

not running

如若未关闭则执行:

 

[root@rbtnode1 ~]# systemctl stop firewalld

[root@rbtnode1 ~]# systemctl disable firewalld

6>安装rsync命令

[root@rbtnode1 ~]# yum -y install rsync

7>停止并禁用NetWorkManager

[root@rbtnode1 ~]# systemctl stop NetworkManager

[root@rbtnode1 ~]# systemctl disable NetworkManager

备注说明:该操作前提需确保主机为静态 IP,若为 DHCP 获取的 IP,则无法直接 disable NetworkManager,否则会出现主机重启后,或者主机运行一段时间 IP 租约地址到期后,网卡无法从网络重新正常获取 IP 地址的情况

8>调整最大文件打开数:

 [root@rbtnode1 ~]# cat << EOF >> /etc/security/limits.conf

> root soft nofile 102400

> root hard nofile 102400

> EOF

重启生效:

[root@rbtnode1 ~]# reboot

 

9>.确认服务器时间同步:服务器后台时间不同步会对时间敏感的服务带来不可预见的后果。务必在安装和使用蓝鲸时保证时间同步。

[root@rbtnode1 ~]# yum -y install ntp

[root@rbtnode1 ~]# ntpdate cn.pool.ntp.org

10>10>检查是否存在全局 HTTP 代理:蓝鲸服务器之间会有的 HTTP 请求,如果存在 HTTP 代理,且未能正确代理这些请求,会发生不可预见的错误。

# 检查 http_proxy https_proxy 变量是否设置,若为空可以跳过后面的操作。

echo "$http_proxy" "$https_proxy"

 

于本机配置 http_proxy 变量的方式,请依次查找文件 /etc/profile/etc/bashrc$HOME/.bashrc 等是否有设置。 或者咨询网络管理员/IT 部门协助处理。

在这些主机中,选择任意一台机器作为蓝鲸的运维中控机。之后的安装命令执行,如果没有特别说明,均在这台中控机上执行

11>  解压安装包:

mkdir /data

tar xf bkce_src-5.1.26.tar.gz  -C /data

解压之后,得到两个目录:srcinstall

src:存放蓝鲸产品软件,以及依赖的开源组件

install:存放安装部署脚本、安装时的参数配置、日常运维脚本等

12> 检查resolv.conf是否有修改权限:检查 /etc/resolv.conf 是否被加密无法修改(即便是root),执行如下命令,检查是否有i”加密字样

roolsattr /etc/resolv.conf

----i--------e-- /etc/resolv.conf

如果有则执行命令,临时解密处理,执行如下命令:

chattr -i /etc/resolv.conf

需要注意,在 resolv.conf 配置文件的首行,即第一个DNS地址需为 127.0.0.1,如下所示:

nameserver 127.0.0.1

备注说明:resolv 配置文件无需人工修改内容,后续安装脚本会自动为主机进行配置 127.0.0.1,因此只需检查是否允许修改即可。关于首行需要 127.0.0.1,这是由于后面蓝鲸内部组件的调用所需,域名通过 consul 解析,会探测服务运行状态,然后返回IP地址, 例如访问 es,那么内部需要解析 es.service.consul 等,若首行不是 127.0.0.1,否则这些域名就通过外网去解析,无法返回正确的响应,导致服务运行异常,或者 SaaS 无法正常打开等情况。

13>配置ssh免密登录:

cd /data/install

bash configure_ssh_without_pass  # 根据提示输入各主机的 root 密码完成免密登陆配置

修改配置文件:

install.config

install.config 是模块和服务器对应关系的配置文件,描述在哪些机器上安装哪些模块。

每行两列,第一列是 IP 地址;第二列是以英文逗号分隔的模块名称。

[root@rbtnode1 ~]# cp install.config.3ip.sample install.config

[root@rbtnode1 install]# cat install.config

  • 172.24.120.157nginx,rabbitmq,mongodb,cmdb,redis,gse,appo,appt,zk,mysql,paas,job,license,consul,kafka该配置文件,ip 后面使用空格与服务名称隔开,含有多个内网 ip 的机器,默认使用 /sbin/ifconfig 输出中的第一个内网 ip,在 ip 后面写上该机器要安装的服务列表即可,部署过程中默认使用标准私有地址,若企业环境使用非标准私有地址,请参考 本章后续内容-非标准私有地址处理方法 的处理方法。
  • zk 表示 ZooKeeperes 表示 ElasticSearch
  • gse redis 需要部署在同一台机器上。
  • 增加机器数量时,可以将以上配置中的服务挪到新的机器上,分担负载。要保证:kafkaeszk 的每个组件的总数量为 3

,es,bkdata(databus),bkdata(monitor),bkdata(dataapi),fta,beanstalk,influxdb

14>.envglobals

该文件定义了各类组件的账号密码信息。 功能开关控制选项等。可根据实际情况进行修改。 配置项含义,请查看文件中的注释。

  • 该文件含密码信息,请保证除了 root 用户外,其他用户不可读。
  • 各类账号密码建议修改,注意设置的各类密码不能有 / $ ` < > & 等特殊字符。
  • 配置 HTTP 代理:若公司不能访问外网,但有自己的 proxy,在该配置文件的 BK_PROXY 选项中指定代理地址。
  • 若需要跨云管理功能(服务器在不同的 IDC,内网不互通的情况):
  • 需要将 gse 所在机器的外网 IP 填到该文件中 GSE_WAN_IP 配置项中的括号里 如:export GSE_WAN_IP=(1.2.3.4),若没有外网 IP 则留空。
  • HAS_DNS_SERVER 配置默认为 0,表示配置的蓝鲸域名需要通过 /etc/hosts 来解析,此时部署脚本会自动修改每台机器的 /etc/hosts 添加相关域名。如果想走自己的 dns 配置,改为非 0 即可。
  • HTTP_SCHEMA=http 默 认 HTTP_SCHEMA 设置为 HTTP 即蓝鲸软件全站为 HTTP,若设置为 HTTPS 则蓝鲸软件全站为 HTTPS,可支持 HTTP HTTPS 的切换。
  • 该配置文件中提供了访问蓝鲸三大平台的域名配置,需要提前准备好。

[root@rbtnode1 install]# cat globals.env   #红色的字体表示修改,其他不做更改

# vim:ft=sh

 

shopt -s nullglob

if [ -d $CTRL_DIR/third ]; then

    for f in $CTRL_DIR/third/globals_*.env; do

        source $f

    done

fi

 

if [ -d $CTRL_DIR/extra ]; then

    for f in $CTRL_DIR/extra/globals_*.env $CTRL_DIR/*/globals.env; do

        source $f

    done

fi

shopt -u nullglob

 

# 产品信息含义

#   PAAS    集成平台

#   CMDB    配置平台

#   JOB     作业平台

#   GSE     管控平台

#   BKDATA  数据平台

 

## environment variables

 

# 域名信息

export BK_DOMAIN="hy960.top"            # 蓝鲸根域名(不含主机名)

export PAAS_FQDN="paas.$BK_DOMAIN"       # PAAS 完整域名

export CMDB_FQDN="cmdb.$BK_DOMAIN"       # CMDB 完整域名

export JOB_FQDN="job.$BK_DOMAIN"         # JOB 完整域名

export DOCS_FQDN="docs.$BK_DOMAIN"       # 私有文档准备

export APPO_FQDN="o.$BK_DOMAIN"          # 正式环境完整域名

export APPT_FQDN="t.$BK_DOMAIN"          # 测试环境完整域名

 

# 设置HTTP/HTTPS模式

export HTTP_SCHEMA='http'

 

# HAS_DNS_SERVER 选项, 域名解析通过 DNS server 还是通过配置 hosts

# 通过 hosts 配置映射关系时, 一下默认为0, 表示没有自己的 DNS server

#  此时, 会在所有机器上的 /etc/hosts 文件中添加 paas,cmdb,job 等平台的映射关系

export HAS_DNS_SERVER=1

 

# UPDATE_HOST_NAME 选项,安装蓝鲸过程中是否修改主机名。

#默认为0,表示不修改主机名。非0,则会根据蓝鲸定义的规则修改主机名

export UPDATE_HOST_NAME=0

 

# DB 信息

export MYSQL_USER="root"                # mysql 用户名

export MYSQL_PASS='0N9LZr3ksu'

export REDIS_PASS='9LbyJHGpqg'

export MONGODB_USER="root"                # mongodb 用户名

export MONGODB_PASS='eVmA_GTjy6FYJh5HbelU'              # mongodb 密码

 

# 账户信息(建议修改)

export MQ_USER=admin

export MQ_PASS='I38uBPhbNY'

export ZK_USER=bkzk

export ZK_PASS='8RbWwZdXUV'

 

export PAAS_ADMIN_USER=admin

export PAAS_ADMIN_PASS='el3ZQgIN7r'

 

export GSE_AGENT_HOME=/usr/local/gse

 

#  以下windows相关路径中的反斜线,必须是4!!

export GSE_WIN_AGENT_HOME='C:\\\\gse'

export GSE_WIN_AGENT_DATA_DIR='C:\\\\gse\\\\data'

export GSE_WIN_AGENT_LOG_DIR='C:\\\\gse\\\\logs'

 

export GSE_AGENT_RUN_DIR=/var/run/gse

export GSE_AGENT_DATA_DIR=/var/lib/gse

export GSE_AGENT_LOG_DIR=/var/log/gse

 

export BIZ_ID=0

 

# 若不能直连往外, 请关闭该选项

# 若环境可以直连外网, 以下选项设置为1, 便于自动设置 NGINX 的外网 IP 的监听地址

export AUTO_GET_WANIP=1

export NFS_UID=10086

export NFS_GID=10087

 

# 默认共享文件系统类型,ceph nfs

export SHARED_STORAGE_TYPE="nfs"

 

# 若无法自动获取外网 IP, 在需要跨云管理时, 在以下数组中填写 gse, nginx 的外网 ip 地址.

export GSE_WAN_IP=()

export NGINX_WAN_IP=()

 

# 安装部署 SaaS 应用需要使用到的 pip

export PYPI_SOURCE='pypi.douban.com'

 

export BK_TIMEZONE="Asia/Shanghai"

 

# 设置访问网络资源如yum源所使用的HTTP代理地址, : BK_PROXY=http://192.168.0.1:8833

export BK_PROXY=

 

# 以下变量值不可以修改.每个企业统一

export IMAGE_NAME='bkbase/python:1.0'

export JAVA_IMAGE_NAME='bkbase/java:1.0'

 

# 设置app 部署时使用的脚本来源是已src 包下的为准还是以 install/appmgr目录下为准

# 若值为 src , app 安装的脚本从paas-agent目录下获取, 否则从agent_setup目录下获取

export APPMGR_SOURCE=src

 

# 设置工程的运行环境, 默认企业环境是prod

export RUN_MODE='prod'

 

# 在以下数组中填写NTP主服务器的上游时间服务器

#export NTP_SERVER=( 0.cn.pool.ntp.org 1.cn.pool.ntp.org 2.cn.pool.ntp.org 3.cn.pool.ntp.org )

 

说明:

BK_DOMAIN 的值不能为 "com" "net" 这种顶级域名,至少二级域名开始。

FQDN 的选择需要遵循 DNS 的命名规范,可选的字符集是 [A-Za-z0-9.] 以及 "-",特别要注意,下划线 (_) 是不允许的。

PAAS_FQDNCMDB_FQDNJOB_FQDN 的值都必须在 BK_DOMAIN 定义的根域名之下,保证登陆鉴权的 cookie 文件有效。

改。

ports.env

端口定义。默认情况下,不用修改。特殊场景下,若有端口冲突,可以自行定义。

非标准私有地址处理方法

蓝鲸社区版部署脚本中(install 目录)下有以下文件中有获取 ip 的函数 get_lan_ip,非标准地址,均需要在安装部署前完成修

./appmgr/docker/saas/buildsaas

./appmgr/docker/build

./functions

./scripts/gse/server/gsectl

./scripts/gse/plugins/reload.sh

./scripts/gse/plugins/start.sh

./scripts/gse/plugins/stop.sh

./scripts/gse/agent/gsectl

./scripts/gse/proxy/gsectl

./scripts/gse/agentaix/gsectl.ksh

./agent_setup/download#agent_setup_pro.sh

./agent_setup/download#agent_setup_aix.ksh

./agent_setup/download#agent_setup.s

这些文件列表,可能随版本迭代变动,也可以用以下命令查找出来包含这个函数的脚本文件有哪些:

grep -l 'get_lan_ip *()' -r /data/install

15>pip.conf:在线安装时,依赖 pip,需要配置可用的 pip

16>[root@rbtnode1 ~]# cat /data/src/.pip/pip.conf

[global]

index-url = http://mirrors.cloud.tencent.com/pypi/simple

trusted-host = mirrors.cloud.tencent.com

[root@rbtnode1 ~]# curl -I http://mirrors.cloud.tencent.com/pypi/simple

HTTP/1.1 302 Moved Temporarily

Server: tws

Date: Sun, 22 Mar 2020 06:53:38 GMT

Content-Type: text/html

Content-Length: 154

Connection: close

Location: https://mirrors.cloud.tencent.com/pypi/simple

获取证书:

1. 通过 ifconfig 或者 ip addr 命令获取 install.config 文件中,license gse 模块所在服务器的第一个内网网卡的 MAC 地址。如果分别属于两台服务器,那么两个的 MAC 地址以英文;分隔。

2. 在官网 证书生成页面 根据输入框提示填入 MAC 地址,生成并下载证书。

3. 上传证书到中控机,并解压到 src/cert 目录下

[root@rbtnode1 ~]# cat /sys/class/net/eth0/address

00:16:3e:00:2d:c7

 

 

 

 

 

 

 

tar xf ssl_certificates.tar.gz -C /data/src/cert/

17>安装前校验环境是否满足

[root@rbtnode1 ~]# cd /data/install/

[root@rbtnode1 install]# bash precheck.sh

start <<check_ssh_nopass>> ... [OK]

start <<check_password>> ... [OK]

start <<check_cert_mac>> ... [OK]

start <<check_get_lan_ip>> ... [OK]

start <<check_install_config>> ... [OK]

start <<check_selinux>> ... [OK]

start <<check_umask>> ... [OK]

start <<check_rabbitmq_version>> ... [OK]

start <<check_http_proxy>> ... [OK]

start <<check_open_files_limit>> ... [OK]

start <<check_domain>> ... [OK]

start <<check_rsync>> ... [OK]

start <<check_service_dir>> ... [OK]

start <<check_networkmanager>> ... [OK]

start <<check_firewalld>> ... [OK]

如果发现有 [FAIL] 的报错,按照错误提示和本文档修复。修复后,可继续跑 precheck.sh 脚本,直到不再出现 [FAIL]

如果需要从头开始检查,请使用 precheck.sh -r 参数。

18>安装 mysql-devel

[root@rbtnode1 ~]# yum install mysql-devel

[root@rbtnode1 ~]# rpm -qa | grep mariadb-devel

mariadb-devel-5.5.64-1.el7.x86_64

2. 建立软连接

ln -s /usr/lib64/mysql/libmysqlclient_r.so /usr/lib/libmysqlclient_r.so

ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so

ln -s /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

ln -s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so.18.0.0

19>执行安装

如果部署全部组件,则执行:

[root@rbtnode1 ~]# cd /data/install/

[root@rbtnode1 install]# ./install_minibk -y

如果按需部署,例如Paas cmdb job 平台

 cd /data/install

 ./install_minibk

 ./bk_install paas && ./bk_install cmdb && ./bk_install job

------------------------- agreements --------------------------------- Dear users, welcome to use the Tencent BlueKing Software. Please access http://bk.tencent.com/info/#laws to read the Tencent BlueKing Software License and Service Agreement carefully. You have no right to install or use the Software and related services unless you have read and accepted all the terms of this Agreement. By downloading, install- ing, using or logging in the Software, you shall be deemed to have read and agreed to be bound by the Agreement above. If you have under- stood the above content, please enter "yes" to continue installation, otherwise, please enter "no" to abort. Thank you for your understan- ding and support of the Tencent BlueKing Software. ---------------------------------------------------------------------- yes/no ?

回答:yes

如果没报错则表明安装成功

 

 

Windowns添加hosts文件

39.99.54.182 paas.hy960.top

39.99.54.182 job.hy960.top

39.99.54.182 cmdb.hy960.top

 

访问:20>http://paas.hy960.top

 

 

 

用户名:admin

密码:el3ZQgIN7r

 

安装模块讲解:

#故障自愈 

[root@rbtnode1 install]# ./bk_install saas-o bk_fta_solutions

#日志检索

[root@rbtnode1 install]# ./bk_install saas-o bk_log_search

 #节点管理

[root@rbtnode1 install]# ./bk_install saas-o bk_nodeman

#标准运维 [root@rbtnode1 install]# ./bk_install saas-o bk_sops

#蓝鲸监控

 [root@rbtnode1 install]# ./bk_install saas-o bk_monitor

 卸载
如果不再测试想卸载或是想彻底清理环境重新安装

cd /data/install/ && cp uninstall/uninstall.sh .

 bash uninstall.sh

推荐阅读