參考地址:https://blog.csdn.net/u013295690/article/details/121438951
藍鯨社區版(騰訊)部署簡述
藍鯨社區版,是藍鯨智雲提供的面向社區用戶的基於 PaaS 的運維技術解決方案套件。
它永久免費,支持公有雲環境、私有環境的獨立搭建部署。
本文檔主要介紹藍鯨社區版的初次安裝部署、日常維護、更新升級、故障排查等運維相關的內容。
關於藍鯨各大平台、SaaS 應用的相關使用說明,請參考藍鯨社區版產品白皮書。
一、機器評估
官網文檔建議配置:
詳見:https://bk.tencent.com/docs/document/5.1/20/650
PaaS:2 核 4G
CMDB:2 核 2G
JOB:2核 4G
BKDATA:4 核 12G
FTA:1 核 2G
個人部署推薦配置:
1 台 4 核 16G
2 台 4 核 8G
本部署手冊使用配置環境:
centos8.2 4核16G
centos8.2 4核8G*2
此處想說的是,電腦配置低了真玩不了,藍鯨這貨……
二、環境准備
1、獲取安裝包
藍鯨社區版包含部署腳本、產品軟件和開源組件。藍鯨提供完整包與分包的下載通道,請自行到下載地址按需獲取。新裝環境及新用戶建議下載完整包使用。
下載地址:https://bk.tencent.com/download/
2、配置 YUM 源(基礎源、epel)
在所有藍鯨服務器上配置好 YUM 源,要求該 YUM 源包含 EPEL。不能連外網 YUM 源的環境,可以配置一個內部的 YUM 源 或者本地 YUM 源。
yum install -y wget vim && \
mkdir -p /etc/yum.repos.d/bak && \
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ && \
cp /etc/yum.repos.d/bak/CentOS-Base.repo /etc/yum.repos.d/ && \
wget -O /etc/yum.repos.d/CentOS-Base7.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo && \
wget -O /etc/yum.repos.d/epel7.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo && \
yum install -y pssh rsync
pip源配置
mkdir -p ~/.pip
cat >> ~/.pip/pip.conf << EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
配置完畢pip后,需測試 curl https://mirrors.aliyun.com/pypi/simple/,確認返回結果
3、centos系統設置
3.1 selinux關閉
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3.2 防火牆關閉
systemctl stop firewalld && systemctl disable firewalld
3.3 安裝 rsync 命令
yum -y install rsync (已安裝可忽略)
3.4 停止並禁用 NetWorkManager(跳過,無須操作)
systemctl stop NetworkManager && systemctl disable NetworkManager
說明:(這一步虛擬機慎用)該操作前提需確保主機為靜態 IP,若為 DHCP 獲取的 IP,則無法直接 disable NetworkManager,否則會出現主機重啟后,或者主機運行一段時間 IP 租約地址到期后,網卡無法從網絡重新正常獲取 IP 地址的情況。
3.5 調整最大文件打開數(每台)
cat >> /etc/security/limits.conf << EOF
root soft nofile 102400
root hard nofile 102400
EOF
3.6 確認服務器時間同步(跳過)
ntpdate -d cn.pool.ntp.org
ntpdate cn.pool.ntp.org
這里可采用chronyd和ntpd任意一種同步時間即可
3.7 檢查是否存在全局 HTTP 代理
# 檢查 http_proxy https_proxy 變量是否設置,若為空可以跳過后面的操作。
echo "$http_proxy" "$https_proxy"
對於本機配置 http_proxy 變量的方式,請依次查找文件 /etc/profile、/etc/bashrc、$HOME/.bashrc 等是否有設置。 或者咨詢網絡管理員/IT 部門協助處理。
3.8 檢查 resolv.conf 是否有修改權限
檢查 /etc/resolv.conf 是否被加密無法修改(即便是 root),執行如下命令,檢查是否有“i”加密字樣:
lsattr /etc/resolv.conf
----i--------e-- /etc/resolv.conf
#有i則需執行以下
chattr -i /etc/resolv.conf
需要注意,在 resolv.conf 配置文件的首行,即第一個 DNS 地址需為 127.0.0.1,如下所示:
nameserver 127.0.0.1 ##此處很重要,可能會導致服務啟動失敗
nameserver 192.168.1.100
nameserver 192.168.2.100
備注說明:resolv 配置文件無需人工修改內容,后續安裝腳本會自動為主機進行配置 127.0.0.1,因此只需檢查是否允許修改即可。關於首行需要 127.0.0.1,這是由於后面藍鯨內部組件的調用所需,域名通過 consul 解析,會探測服務運行狀態,然后返回 IP 地址, 例如訪問 es,那么內部需要解析 es.service.consul 等,若首行不是 127.0.0.1,否則這些域名就通過外網去解析,無法返回正確的響應,導致服務運行異常,或者 SaaS 無法正常打開等情況。
3.9 解壓各個產品軟件包
cd /data/src/; for f in *gz;do tar xf $f; done
3.10 解壓證書包
前往藍鯨官網證書生成頁面(https://bk.tencent.com/download_ssl/),根據提示在輸入框中填入英文分號分隔的三個 MAC (最多就支持三個,再多就別想了)地址,生成並下載證書
通過 ifconfig 或者 ip addr 命令分別獲取 3 台機器第一個內網網卡 MAC 地址
上傳證書包至中控機 /data
install -d -m 755 /data/src/cert
tar xf /data/ssl_certificates.tar.gz -C /data/src/cert/
chmod 644 /data/src/cert/*
3.11 拷貝 rpm 包文件夾到/opt/目錄
cp -a /data/src/yum /opt
三、配置文件
在 install 目錄下,共有三個配置:
install.config
globals.env
ports.env
1、install.config
install.config:是模塊和服務器對應關系的配置文件,描述在哪些機器上安裝哪些模塊。
每行兩列,第一列是 IP 地址;第二列是以英文逗號分隔的模塊名稱。
詳情參考install.config.3IP.sample文件(可將 install.config.3IP.sample 復制為 install.config)。
cp -rp install.config.3ip.sample install.config
1
請根據實際機器的 IP 進行替換第一列的示例 IP 地址,確保三個 IP 之間能互相通信
或者
cat << EOF >/data/install/install.config
188.188.188.170 iam,ssm,usermgr,gse,license,redis,consul,mysql,lesscode
188.188.188.171 nginx,consul,mongodb,rabbitmq,appo,paas
188.188.188.172 cmdb,job,zk(config),appt,consul,nodeman(nodeman)
EOF
配置主機域名
##此步驟配置了,感覺沒卵用
cat << EOF >>/etc/hosts
188.188.188.171 paas.qjzhao.com cmdb.qjzhao.com job.qjzhao.com jobapi.qjzhao.com lesscode.qjzhao.com
188.188.188.172 nodeman.qjzhao.com
EOF
**gse 與 redis 需要部署在同一台機器上。**
增加機器數量時,可以將以上配置中的服務挪到新的機器上,分擔負載。要保證:kafka,es,zk 的每個組件的總數量為 3。
2、自定義域名、安裝目錄以及登陸密碼
部署前自定義域名以及安裝目錄
$BK_DOMAIN:需要更新的根域名。
$INSTALL_PATH:自定義安裝目錄。
#執行前請使用實際的頂級域名 (如:qjzhao.com) 和安裝目錄進行替換
cd /data/install
./configure -d $BK_DOMAIN -p $INSTALL_PATH
上面是官方文檔建議這么搞,迷糊不,但迷糊歸迷糊,關鍵配置了卵用都沒得……實際上只需替換global.env中的域名即可
[root@lanj001 install]# sed -i "s/bktencent.com/qjzhao.com/g" /data/install/bin/default/global.env
[root@lanj001 install]# grep -R "bktencent.com" /data/*
部署前自定義 admin 登陸密碼
請使用實際的自定義密碼替換 admin,以及使用實際的部署腳本路徑替換默認的腳本路徑 /data/install。
cat > /data/install/bin/03-userdef/usermgr.env << EOF
BK_PAAS_ADMIN_PASSWORD=admin
EOF
非標准私有地址處理方法
藍鯨社區版部署腳本中(install 目錄)有文件獲取 IP 的函數 get_lan_ip,非標准地址,需要在安裝部署前完成修改。
修改方法:
假設服務器的的 IP 是:138.x.x.x,它不在標准的私有地址范圍,那么需要修改 get_lan_ip () 函數為:
vim /data/install/functions
get_lan_ip () {
...省略
if ($3 ~ /^10\./) {
print $3
}
if ($3 ~ /^188\./) {
print $3
}
}
return $?
}
2、執行免密
cd /data/install
bash /data/install/configure_ssh_without_pass
四、開始部署
初始化並檢查環境
1、 初始化環境
rpm -qa|grep mysql|xargs rpm -e --nodeps (所有節點)
./bk_install common
2、校驗環境和部署的配置
./health_check/check_bk_controller.sh
3、安裝 PaaS 平台及其依賴服務
mkdir -p /data/bkce/cert && mkdir -p /data/src/open_paas && rpm -qa|grep mariadb|xargs rpm -e --nodeps
cp -rp /data/src/cert /data/bkce/cert #必做
./bkcli stop yum ##此步驟報錯忽略
./bkcli install yum ##此步驟必須做,生成自身yum源
Shell不執行
./bk_install paas
4 、部署 app_mgr
# 部署 SaaS 運行環境,正式環境及測試環境
./bk_install app_mgr
5 、部署權限中心與用戶管理
# 權限中心
./bk_install saas-o bk_iam
# 用戶管理
./bk_install saas-o bk_user_manage
6 、部署 CMDB
# 安裝配置平台及其依賴服務
./bk_install cmdb
7 、部署 JOB
# 安裝作業平台后台模塊及其依賴組件
./bk_install job
8 、部署 bknodeman
如需使用跨雲管控,請提前將節點管理的外網 IP 寫入至節點管理后台服務所在機器的/etc/blueking/env/local.env 文件,詳細請參考 開啟 proxy。否則請忽略該步驟
# 安裝節點管理后台模塊、節點管理 SaaS 及其依賴組件
./bk_install bknodeman
9、部署標准運維及流程管理
依次執行下列命令部署相關 SaaS。
# 標准運維
./bk_install saas-o bk_sops
# 流程管理
./bk_install saas-o bk_itsm
10、加載藍鯨相關維護命令
source ~/.bashrc
11、初始化藍鯨業務拓撲
./bkcli initdata topo
12、部署 lesscode (可選)
./bk_install lesscode
13、檢測相關服務狀態
cd /data/install/ && echo bkssm bkiam usermgr paas cmdb gse job consul | xargs -n 1 ./bkcli check