騰訊藍鯨智雲-單機離線部署測試

官方簡介:

騰訊藍鯨智雲,簡稱藍鯨,是騰訊互動娛樂事業群(Interactive Entertainment Group,簡稱 IEG)自研自用的一套用於構建企業 研發運營一體化體系的 PaaS 開發框架, 提供了 aPaaS(DevOps 流水線、運行環境託管、前後台框架)和 iPaaS(持續集成、CMDB、作業平台、容器管理、數據平台、AI 等原子平台)等模組,幫助企業技術人員快速構建基礎運營 PaaS。

我的實驗環境:

  • 虛擬主機配置: CentOS Linux release 7.7.1908 (Core) IP Address:192.168.1.6 Memory Size:16G CPUs:4
  • 下載CentOS 7的iso鏡像文件: http://mirrors.huaweicloud.com/centos/7.7.1908/isos/x86_64/
  • 下載EPEL的鏡像文件: https://bk.tencent.com/docs/document/5.1/20/635?r=1 目前最新只有7.5,所以這裡選擇下載7.5版本的 bk_offline_repo-7.5.1804.iso,一般情況下問題不大。
  • 下載藍鯨完整安裝包並上傳到虛擬主機的/data目錄下: https://bk.tencent.com/download/ 5.1.26 穩定版 2020-01-04 2.3G MD5: 6d87399219fa2bd10cc84190084ccd79 scp /public/ISO/software/bkce_src-5.1.26.tar.gz [email protected]:/data/
  • 配置本地YUM 源要求包含 EPEL 在所有藍鯨伺服器上配置好 YUM 源,要求該 YUM 源包含 EPEL,因為我這裡測試選擇單機部署,所以只需配置這一台機器。 此外,因為要求是離線部署,所以默認機器不能連外網,需要配置本地 YUM 源。
mkdir -p /media/cdrom  mount -o loop -t iso9660 /data/CentOS-7-x86_64-DVD-1908.iso /media/cdrom    mkdir -p /media/cdrom-epel  mount -o loop -t iso9660 /data/bk_offline_repo-7.5.1804.iso /media/cdrom-epel

新建repo配置文件:vi /etc/yum.repos.d/CentOS.repo,編輯內容如下:

[CentOS7]  name=CentOS7  baseurl=file:///media/cdrom/  enabled=1  gpgcheck=0    [CentOS7-epel]  name=CentOS7-epel  baseurl=file:///media/cdrom-epel/  enabled=1  gpgcheck=0

可以創建一個bak目錄,將其他的repo配置文件都統一mv備份到bak目錄中。

配置好 YUM 源,包含 EPEL 倉庫(可以通過 yum info nginx 測試下)。

--如果沒有包含EPEL倉庫,就會報錯:  [root@bkcmdb1 install]# yum info nginx  Loaded plugins: fastestmirror  Loading mirror speeds from cached hostfile  Error: No matching Packages to list    --如果包含了EPEL倉庫,就會正常顯示資訊:  [root@bkcmdb1 data]# yum info nginx  Loaded plugins: fastestmirror  Loading mirror speeds from cached hostfile  Available Packages  Name        : nginx  Arch        : x86_64  Epoch       : 1  Version     : 1.12.2  Release     : 2.el7  Size        : 530 k  Repo        : CentOS7-epel  Summary     : A high performance web server and reverse proxy server  URL         : http://nginx.org/  License     : BSD  Description : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and              : IMAP protocols, with a strong focus on high concurrency, performance and low              : memory usage.
  • 下載證書: 輸入GSE/LICENSE所在伺服器的MAC地址,多個MAC地址使用換行或英文分號分隔 https://bk.tencent.com/download_ssl/ 下載的證書在後面正式安裝之前需要導入。

正文分為3部分:

1.系統相關設置

環境準備已經安裝完原生 CentOS 系統並配置了符合要求的本地YUM源。現在需要對初始系統做一些配置,保證後續安裝過程的順暢和藍鯨平台的運行。 這一部分基本官方文檔寫的比較清楚,按其一步步檢查設置即可。

1.1 關閉 SELinux

# 檢查 SELinux 的狀態,如果它已經禁用,可以跳過後面的命令  sestatus    # 通過命令臨時禁用 SELinux  setenforce 0    # 或者修改配置文件  sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.2 關閉默認防火牆(firewalld)

# 檢查默認防火牆狀態,如果返回 not running,可以跳過後面的命令  firewall-cmd --state    systemctl stop firewalld    # 停止 firewalld  systemctl disable firewalld # 禁用 firewall 開機啟動

1.3 安裝 rsync 命令

# 檢查是否有 rsync 命令,如果有返回 rsync 路徑,可以跳過後面的命令  which rsync    # 安裝 rsync  yum -y install rsync

1.4 停止並禁用 NetWorkManager

# 檢查 NetworkManager 運行狀態  systemctl status NetworkManager    # 關閉並禁用 NetworkManager  systemctl stop NetworkManager  systemctl disable NetworkManager

1.5 調整最大文件打開數

# 檢查當前 root 帳號下的 max open files 值  ulimit -n    # 備份之前的配置文件  cp /etc/security/limits.conf /etc/security/limits.conf.bak    # 增加配置資訊  cat << EOF >> /etc/security/limits.conf  root soft nofile 102400  root hard nofile 102400  EOF

修改後,重新使用 root 登錄檢查是否生效。

1.6 確認伺服器時間同步

# 查看和ntp server的時間差異(需要外網訪問,如果內網有ntpd伺服器,自行替換域名為該服務的地址)  ntpdate -d cn.pool.ntp.org  如果輸出的最後一行 offset 大於 1s 建議校時。    # 和 ntp 伺服器同步時間  ntpdate cn.pool.ntp.org

更可靠的方式包括通過運行 ntpd 或者 chrony 等服務在後台保持時間同步。 具體請參考官方文檔 使用 ntpd 配置 NTP 或 使用 chrony 配置 NTP。 因為我這裡是單機部署的實驗,只需要確認時間正確即可。生產環境需嚴格設置時間同步。

1.7 檢查是否存在全局 HTTP 代理

藍鯨伺服器之間會有的 HTTP 請求,如果存在 HTTP 代理,且未能正確代理這些請求,會發生不可預見的錯誤。

# 檢查 http_proxy https_proxy 變數是否設置,若為空可以跳過後面的操作。  echo "$http_proxy" "$https_proxy"  對於本機配置 http_proxy 變數的方式,請依次查找文件 /etc/profile、/etc/bashrc、$HOME/.bashrc 等是否有設置。 或者諮詢網路管理員/IT 部門協助處理。

1.8 解壓安裝軟體

在這些主機中,選擇任意一台機器作為藍鯨的運維中控機。之後的安裝命令執行,如果沒有特別說明,均在這台中控機上執行。

將下載的藍鯨社區版完整包上傳到中控機,並解壓到 同級 目錄下。以解壓到 /data 目錄為例:

tar xf bkce_src-5.1.26.tar.gz  -C /data  解壓之後,得到兩個目錄:src,install    src:存放藍鯨產品軟體,以及依賴的開源組件    install:存放安裝部署腳本、安裝時的參數配置、日常運維腳本等

解壓安裝包:

[root@localhost data]# tar xf bkce_src-5.1.26.tar.gz -C /data

這裡看到主機名還是localhost,選擇修改主機名為bkcmdb1(可選項,因為後續安裝過程中發現會自動修改主機名)

[root@localhost data]# hostnamectl set-hostname bkcmdb1  [root@localhost data]# vi /etc/hosts  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  192.168.1.6 bkcmdb1    [root@bkcmdb1 ~]# hostname -i  192.168.1.6  [root@bkcmdb1 ~]# hostname  bkcmdb1

1.9 檢查resolv.conf是否有修改許可權

檢查 /etc/resolv.conf 是否被加密無法修改(即便是 root),執行如下命令,檢查是否有「i」加密字樣:

lsattr /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  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 無法正常打開等情況。

我這裡環境檢查 /etc/resolv.conf 許可權沒有問題,其中內容也無需手工修改:

[root@bkcmdb1 ~]# lsattr /etc/resolv.conf  ---------------- /etc/resolv.conf    [root@bkcmdb1 ~]# cat /etc/resolv.conf  # Generated by NetworkManager  nameserver 2408:8000:1010:1::8  nameserver 2408:8000:1010:2::8

2.其他配置確認並安裝

2.1 安裝配置文件install.config

# 文檔中提到的install.config配置文件示例:  [root@bkcmdb1 install]# ls -l install.config.*  -rw-r--r--. 1 root root 286 Jan  9 16:11 install.config.3ip.sample  -rw-r--r--. 1 root root 760 Jan  9 16:11 install.config.bcs.sample  -rw-r--r--. 1 root root 396 Jan  9 16:11 install.config.bcs.single.sample  -rw-r--r--. 1 root root 379 Jan  9 16:11 install.config.bizcluster.sample  -rw-r--r--. 1 root root 991 Jan  9 16:11 install.config.new.sample    # 複製並查看內容,發現是3個節點的配置:  [root@bkcmdb1 install]# cp install.config.3ip.sample install.config  [root@bkcmdb1 install]# cat install.config  [bkce-basic]  10.0.0.1 nginx,rabbitmq,kafka(config),zk(config),es,appt,fta,consul,bkdata(databus)  10.0.0.2 mongodb,appo,kafka(config),zk(config),es,mysql,consul,bkdata(dataapi),beanstalk  10.0.0.3 paas,cmdb,job,gse,license,kafka(config),zk(config),es,redis,influxdb,consul,bkdata(monitor)

最終實際測試並結合官方文檔其他章節的說明:

配置參數 install.config 這個文件安裝腳本會自動生成,無需自行配置。 globals.env 重點關注域名和 GSE 外網 IP 相關的配置,詳情參考 環境準備-配置文件 一節。 ports.env 一般不用修改。

最終確認了這個配置文件在單機部署中,並不需要手工配置,會自動生成,自動生成的內容是類似這樣:

[root@rbtnode1 install]# cat install.config  192.168.1.6 nginx,rabbitmq,mongodb,cmdb,redis,gse,appo,appt,zk,mysql,paas,job,license,consul,kafka,es,bkdata(databus),bkdata(monitor),bkdata(dataapi),fta,beanstalk,influxdb

2.2 導入證書

  1. 通過 ifconfig 或者 ip addr 命令獲取 install.config 文件中,license 和 gse 模組所在伺服器的第一個內網網卡的 MAC 地址。如果分別屬於兩台伺服器,那麼兩個的 MAC 地址以英文;分隔。
  2. 在官網 證書生成頁面 根據輸入框提示填入 MAC 地址,生成並下載證書。
  3. 上傳證書到中控機,並解壓到 src/cert 目錄下。

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

前面已經下載了證書文件,現在直接上傳並解壓到 src/cert 目錄下:

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

2.3 執行安裝

如果部署全部組件,請執行:

$ cd /data/install  $ ./install_minibk -y

如果按需部署,假設只需要 PaaS,CMDB,JOB 平台,請執行:

$ cd /data/install  $ ./install_minibk  $ ./bk_install paas && ./bk_install cmdb && ./bk_install job

安裝過程中遇到失敗的情況,請先定位排查解決後,再重新運行失敗時的安裝指令。

如果安裝過程中意外停止,或是在下面提示的介面選擇了no,退出了安裝:

------------------------- 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 ? 

這時候也可以調用安裝腳本再次安裝,且還可以單獨進行安裝,從日誌中會有類似這樣安裝選擇的提示:

you can use following command to install whole blueking suit in one command  ./bk_install paas && ./bk_install app_mgr && ./bk_install cmdb && ./bk_install job && ./bk_install bkdata && ./bk_install fta && ./bk_install saas-o    OR you can install one by one manually:  ./bk_install paas  ./bk_install app_mgr  ./bk_install cmdb  ./bk_install job  ./bk_install bkdata  ./bk_install fta  ./bk_install saas-o

整個安裝過程還是比較靈活的。

2.4 訪問藍鯨 根據 install/globals.env 里配置的 PaaS 域名(PAAS_FQDN)、帳號 (PAAS_ADMIN_USER)、密碼(PAAS_ADMIN_PASS)資訊,登錄訪問(若域名沒設置 DNS 解析,需配置本機 hosts)。

# 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="bk.com"            # 藍鯨根域名(不含主機名)  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=0    # 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=0  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 )

我們看到這個配置文件實際會簡單介紹一些自定義的配置,比如如果所在區域網並沒有配置DNS伺服器,就需要在客戶端修改hosts文件,將藍鯨相關的域名和IP地址對應關係寫進去。是否安裝過程中會修改主機名之類(不過這個默認設置是0,但實際安裝還是發現改了主機名,懷疑可能是個bug但不影響使用)。

另外,實際安裝某個組件,最後完成時也會提示如何訪問藍鯨的這個組件。比如下面安裝完某個模組組件就會有這樣的提示:

# a.安裝pass最後的提示:  [192.168.1.6] open_paas    paas                             RUNNING   pid 22697, uptime 0:00:36  [192.168.1.6] open_paas    appengine                        RUNNING   pid 22701, uptime 0:00:37  [192.168.1.6] open_paas    esb                              RUNNING   pid 22700, uptime 0:00:37  [192.168.1.6] open_paas    login                            RUNNING   pid 22699, uptime 0:00:38  [192.168.1.6] open_paas    apigw                            RUNNING   pid 22702, uptime 0:00:38    如果以上步驟沒有報錯, 你現在可以通過 http://paas.bk.com:80 訪問 paas 平台,  登陸用戶名(login user): admin  登陸密碼(login password): el3ZQgIN7r    # b.安裝cmdb最後的提示:  [192.168.1.6] server      cmdb_adminserver                 RUNNING   pid 13712, uptime 0:02:20  [192.168.1.6] server      cmdb_apiserver                   RUNNING   pid 13695, uptime 0:02:20  [192.168.1.6] server      cmdb_auditcontoller              RUNNING   pid 13678, uptime 0:02:20  [192.168.1.6] server      cmdb_datacollection              RUNNING   pid 13702, uptime 0:02:20  [192.168.1.6] server      cmdb_eventserver                 RUNNING   pid 13696, uptime 0:02:20  [192.168.1.6] server      cmdb_hostcontroller              RUNNING   pid 15789, uptime 0:02:05  [192.168.1.6] server      cmdb_hostserver                  RUNNING   pid 13673, uptime 0:02:20  [192.168.1.6] server      cmdb_objectcontroller            RUNNING   pid 15802, uptime 0:02:05  [192.168.1.6] server      cmdb_proccontroller              RUNNING   pid 13713, uptime 0:02:20  [192.168.1.6] server      cmdb_procserver                  RUNNING   pid 15788, uptime 0:02:05  [192.168.1.6] server      cmdb_toposerver                  RUNNING   pid 13674, uptime 0:02:20  [192.168.1.6] server      cmdb_webserver                   RUNNING   pid 13676, uptime 0:02:20    如果以上步驟沒有報錯, 你現在可以通過 http://cmdb.bk.com:80 訪問配置平台,   <- 這裡給出了訪問cmdb組件的方式    # c.安裝job最後的提示:  [192.168.1.6] job: RUNNING  [192.168.1.6]20200226-154845 163   get rabbitmqadmin done.    如果以上步驟沒有報錯, 你現在可以通過 http://job.bk.com:80 訪問作業平台,    <- 這裡給出了訪問job組件的方式

我們安裝完可以先看下這些主要web訪問介面: pass:

cmdb:

job:

2.5 卸載 如果不再測試想卸載或是想徹底清理環境重新安裝,在每台藍鯨後台伺服器上運行,這裡就是單機:

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

2.6 重新安裝 如果卸載後需要重新安裝,主要就是重新解壓軟體,導入證書,然後再次執行安裝腳本:

tar xf bkce_src-5.1.26.tar.gz -C /data  tar xf ssl_certificates.tar.gz -C /data/src/cert  cd /data/install  ./install_minibk -y

3.遇到的問題和解決方案

3.1 安裝過程中反覆要輸入密碼 無數次的 Enter passphrase for key '/root/.ssh/id_rsa': 這個實際是本機互信沒有配置,可以選擇手工配置,也可以選擇使用軟體中自帶的腳本配置:

[root@rbtnode1 ~]# cd /data/install/  [root@rbtnode1 install]# bash configure_ssh_without_pass  Generating public/private rsa key pair.  Created directory '/root/.ssh'.  Your identification has been saved in /root/.ssh/id_rsa.  Your public key has been saved in /root/.ssh/id_rsa.pub.  The key fingerprint is:  SHA256:OQ5Exyc1rVz5FlNhfG7ZhM8BjFUMFcfYPGDCnFzIEUM root@rbtnode1  The key's randomart image is:  +---[RSA 2048]----+  |      ....OEXOO&=|  |     . .o .XB.*=B|  |      .  + o . B*|  |     .   .o   o.*|  |      . S    . . |  |       o .       |  |        .        |  |                 |  |                 |  +----[SHA256]-----+  Warning: Permanently added '192.168.1.6' (ECDSA) to the list of known hosts.  [root@rbtnode1 install]# cd ~/.ssh  [root@rbtnode1 .ssh]# ls  authorized_keys  id_rsa  id_rsa.pub  known_hosts  [root@rbtnode1 .ssh]# ssh 192.168.1.6  Last login: Wed Feb 26 21:55:11 2020 from bkcmdb1  [root@rbtnode1 ~]# exit  logout  Connection to 192.168.1.6 closed.  [root@rbtnode1 .ssh]# 

配置完成後即可解決此問題。

3.2 app_mgr組件安裝失敗

./bk_install app_mgr

Successfully installed meld3-1.0.2 supervisor-3.3.3  [192.168.1.6]20200226-223959 233   generate env variable settings.  [192.168.1.6]20200226-223959 151   exec: pip install --no-cache-dir  -r requirements.txt (/data/bkce/paas_agent/paas_agent)  Collecting Django==1.8.11 (from -r requirements.txt (line 1))    Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f18dec155d0>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /pypi/simple/django/    Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f18dec15c90>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /pypi/simple/django/    Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f18dec15e50>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /pypi/simple/django/    Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f18debc2050>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /pypi/simple/django/    Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.HTTPConnection object at 0x7f18debc2210>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /pypi/simple/django/    Could not find a version that satisfies the requirement Django==1.8.11 (from -r requirements.txt (line 1)) (from versions: )  No matching distribution found for Django==1.8.11 (from -r requirements.txt (line 1))  [192.168.1.6]20200226-224014 177   pip install (--no-cache-dir ) for paas_agent.  FAILED  [192.168.1.6]20200226-224014 47   Abort

從報錯來看是因為機器無法聯網報錯,後續需要進一步分析看是否有其他離線方式的解決方案。

3.3 bkdata組件安裝失敗

./bk_install bkdata

    copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants      running build_ext      building '_mysql' extension      creating build/temp.linux-x86_64-2.7      gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/opt/py27/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o      gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib -lmysqlclient -lpthread -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so      /usr/bin/ld: cannot find -lmysqlclient      collect2: error: ld returned 1 exit status      error: command 'gcc' failed with exit status 1        ----------------------------------------  Command "/data/bkce/.envs/bkdata-dataapi/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-X8uj9z/MySQL-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-f0aghb-record/install-record.txt --single-version-externally-managed --compile --install-headers /data/bkce/.envs/bkdata-dataapi/include/site/python2.7/MySQL-python" failed with error code 1 in /tmp/pip-build-X8uj9z/MySQL-python/  [192.168.1.6]20200226-231616 177   pip install (--no-cache-dir --no-index --find-links=/data/src/bkdata/support-files/pkgs) for bkdata-dataapi.  FAILED  [192.168.1.6]20200226-231616 47   Abort

3.4 saas-o組件安裝失敗

./bk_install saas-o

2020-02-26 23:17:42 113  INFO     resposne: {u'message': u"u5f53u524du6ca1u6709u53efu7528u7684[u6b63u5f0fu670du52a1u5668], u65e0u6cd5u8fdbu884cu5e94u7528u90e8u7f72u64cdu4f5c. u8bf7u5230<a href='/engine/server/'> [u84ddu9cb8u667au4e91-u5f00u53d1u8005u4e2du5fc3-u670du52a1u5668u4fe1u606f] </a>u6ce8u518cu5e76u6fc0u6d3bu670du52a1u5668", u'result': False}  Traceback (most recent call last):    File "deck/saas.py", line 236, in <module>      event_id, app_code = appmgr.deploy(deploy_url, saas_env[args.deploy_env])    File "deck/saas.py", line 116, in deploy      logg.info(u"{}".format(deploy_result["msg"]))  KeyError: 'msg'  [192.168.1.6]20200226-231742 153   Deploy saas bk_fta_solutions failed.  [192.168.1.6]20200226-231742 47   Abort

上面3個組件安裝失敗,先記錄下關鍵日誌,等後續有時間會再進一步分析根本原因和解決方案,如果大家有這方面的經驗,也歡迎留言交流心得。 目前paas、cmdb、job等基本組件均正常,可以先進行藍鯨基本的功能測試了。