工具

版本矩阵

SevOne Data Insight 版本 sevone-CLI 塞沃伊-吉 签名工具
3.13.x 2.1.x 2.4.x 1.1.0
6.5.x 2.3.x 2.6.x <最新版本> 例如 2.0.1
6.6.x 2.4.x 2.7.x <最新版本> 例如 2.0.1
6.7.x 2.5.x 2.8.x <最新版本> 例如 2.0.1
6.8.x 2.6.x 2.9.x <最新版本> 例如 2.0.2
7.0.x 2.8.x 2.9.x <最新版本> 例如 2.0.3

SevOne CLI

sevone-cli 工具提供了有关常见任务 (例如,设置 GUI 安装程序或管理 Kubernetes 集群) 的便利命令。 它还提供围绕 ansible 运行手册的包装器。

Pod 命令

CLI 工具会打包一些更复杂的命令,但在某些情况下,直接针对 pod 运行命令可能会很有用。


$ sevone-cli exec <pod_name> -- <cmd>

示例: 允许您登录到 MySQL pod


$ sevone-cli exec mysql -- mysql -uroot -pdatainsight datainsight
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQL 命令

mysql 子命令允许您直接从终端运行查询,而不是登录到 MySQL pod 并在其中运行命令。


$ sevone-cli mysql '<query>'

示例


$ sevone-cli mysql 'select count(*) from tenants'
+----------+
| count(*) |
+----------+
|        1 |
+----------+

Ansible 运行手册

/opt/SevOne/upgrade/ansible/playbooks 下找到的任何运行手册都可以通过仅提供其名称 (不带文件扩展名) 来执行。


$ sevone-cli playbook <name> [--extra-args]

示例: 运行 up.yaml 运行手册,将 args 传递到底层 ansible-playbook 命令


$ sevone-cli playbook up --tags apps

GUI 安装程序

更改端口

  1. /etc/sevone-guii/client.yaml 复制到 /etc/sevone-guii/client.custom.yaml/etc/sevone-guii/api.yaml 复制到 /etc/sevone-guii/api.custom.yaml
    
    $ cp /etc/sevone-guii/client.yaml /etc/sevone-guii/client.custom.yaml
    
    $ cp /etc/sevone-guii/api.yaml /etc/sevone-guii/api.custom.yaml
    
  2. 下表列出了客户机和 API 的缺省端口号及其各自的配置文件位置。
    名称 缺省端口 配置文件位置
    客户端 3000 /etc/sevone-guii/client.custom.yaml
    个 API 3001 /etc/sevone-guii/api.custom.yaml
  3. 如果需要更改端口号,请使用您选择的文本编辑器,编辑 .yaml 文件以更改设置并保存该文件。

    示例: 更改客户机的端口号

    
    $ vi /etc/sevone-guii/client.custom.yaml
    main:
      port: 3000 # <-- change port number
    

    示例: 更改 API 的端口号

    
    $ vi /etc/sevone-guii/api.custom.yaml
    main:
      port: 3001  # <-- change port number
    
  4. 重新启动客户机和 API 服务。
    重要信息: 如果发生任何配置更改,那么需要同时重新启动客户机和 API 服务。
    
    $ sudo systemctl restart sevone-guii-@api
    
    $ sudo systemctl restart sevone-guii-@client
    

重试失败的阶段

某些阶段在失败时无法重试。 可以通过在 /etc/sevone-guii/api.yaml 文件中修改该特定阶段的 retry 字段来绕过此行为。

  1. 使用您选择的文本编辑器,编辑 /etc/sevone-guii/api.yaml 文件。
    
    $ vi /etc/sevone-guii/api.yaml
    
  2. 对于此示例,假定 Upgrade 阶段已失败。 您将需要修改 retry 字段,即,将其切换为 true,对于 /etc/sevone-guii/api.yaml 文件中的 label: Upgrade
    
    - id: up.yaml
      label: Upgrade
      type: playbook
      order: 3
      retry: true      # <--- toggle this on
    
  3. 保存 /etc/sevone-guii/api.yaml 文件。
  4. 使用文本编辑器编辑/SevOne.info文件。 将 SevOne Data Insight / 版本还原为先前/更低版本。
    
    $ vi /SevOne.info
    
  5. 刷新 Web 浏览器页面。 现在应启用阶段的 重试 按钮。

管理服务

可以使用标准 systemd 命令启动/停止图形用户界面安装程序服务。


$ sudo systemctl status sevone-guii-@api

$ sudo systemctl status sevone-guii-@client

$ sudo systemctl start sevone-guii-@api

$ sudo systemctl start sevone-guii-@client

$ sudo systemctl stop sevone-guii-@api

$ sudo systemctl stop sevone-guii-@client

查看作业记录

可以使用 journalctl来查看日志。


$ journalctl -u sevone-guii-@api [-f]

$ journalctl -u sevone-guii-@client [-f]

清除 ARA 状态

运行增量升级时,必须清除来自先前升级的 ARA (Ansible Run Analysis) 状态。 执行以下命令以清除 ARA 状态。


$ rm /etc/sevone-guii/ara/server/ansible.sqlite

$ sudo systemctl restart ara-server

跳过阶段

使用 GUI 安装程序时,您可以通过删除其相应的运行手册来跳过某些阶段。 例如,如果要跳过 SOA Upgrade 阶段,那么可以执行以下命令。

示例


$ rm -rf /opt/SevOne/upgrade/ansible/playbooks/soa.yaml

成功执行以上命令后,请刷新页面。 您将看到不再呈现 SOA Upgrade 阶段。

有用的 "kubectl" 命令

  1. 通过用户界面完成 控制平面 节点的供应时,请确保从 CLI 正确供应 控制平面 节点。

    示例

    
    $ ssh sevone@<SevOne Data Insight 'control plane' node IP address or hostname>
    
    $ kubectl get nodes
    NAME         STATUS   ROLES                  AGE   VERSION 
    sdi-node01   Ready    control-plane,master   52d   v1.28.10+k3s1
    
  2. 代理程序 节点已加入 Kubernetes 集群时,请执行以下命令以确认相同内容。

    示例

    
    $ ssh sevone@<SevOne Data Insight 'control plane' node IP address or hostname>
    
    $ kubectl get nodes
    NAME         STATUS   ROLES                  AGE     VERSION
    sdi-node01   Ready    control-plane,master   52d     v1.28.10+k3s1
    sdi-node02   Ready    <none>                 2m25s   v1.28.10+k3s1
    sdi-node03   Ready    <none>                 2m45s   v1.28.10+k3s1
    
  3. 要检查部署的状态,请确保所有 pod 都处于 "正在运行" 状态。

    示例

    
    $ kubectl get pods
    NAME                                                     READY   STATUS      RESTARTS        AGE
    di-prometheus-node-exporter-xhpqw                        1/1     Running     3 (4h19m ago)   22h
    di-prometheus-node-exporter-fnz7s                        1/1     Running     3 (4h27m ago)   22h
    di-report-tombstone-sweeper-28458480-xdppc               1/1     Running     0               4h32m
    ingress-ingress-nginx-defaultbackend-69f644c9dc-zcg8f    1/1     Running     1 (4h19m ago)   4h32m
    ingress-ingress-nginx-controller-fddc9cd4-krrzk          1/1     Running     3 (4h19m ago)   22h
    di-kube-state-metrics-6f4fbc67cb-p4tz4                   1/1     Running     0               4h32m
    di-mysql-0                                               2/2     Running     0               4h17m
    di-create-secrets-r27jf                                  0/1     Completed   0               4h1m
    di-upgrade-lp8b4                                         0/1     Completed   0               4h
    datasource-operator-controller-manager-cc766849f-qkmp7   2/2     Running     0               4h
    di-djinn-api-67b78d684f-wt8ss                            1/1     Running     0               4h
    di-assetserver-c9b5fdd5d-wkcrr                           1/1     Running     0               4h
    di-registry-85c9f98499-d4r62                             1/1     Running     0               4h
    di-scheduler-74774dbdb8-hjv5l                            1/1     Running     0               4h
    di-wdkserver-d598fc4f9-5r8qh                             1/1     Running     0               4h
    di-migrator-7d8cdddd9-5gbrs                              1/1     Running     0               4h
    di-printer-8574f88978-ps9rq                              2/2     Running     0               4h
    di-prometheus-server-6c75b49944-mmc7c                    2/2     Running     0               4h
    di-ui-56599488fc-48jdt                                   1/1     Running     0               4h
    di-redis-master-0                                        2/2     Running     0               4h
    di-graphql-6b7cf4f6b-bpcst                               1/1     Running     0               4h
    di-apikey-rotation-28459020-pnlwc                        0/1     Completed   0               38m
    di-asset-sweeper-28459045-72c4x                          0/1     Completed   0               13m
    di-user-sync-28459045-5dh8w                              0/1     Completed   0               13m
    di-asset-sweeper-28459050-sqfk6                          0/1     Completed   0               8m14s
    di-user-sync-28459050-zsstz                              0/1     Completed   0               8m14s
    di-asset-sweeper-28459055-7pm78                          0/1     Completed   0               3m14s
    di-user-sync-28459055-r8zx9                              0/1     Completed   0               3m14s
    
  4. 以下命令描述 SevOne NMS 数据源和配置的同级的信息,例如, NMS 版本, SOA 版本,主/辅助/虚拟 IP 地址等。

    示例

    
    $ ssh sevone@<SevOne Data Insight 'control plane' node IP address or hostname>
    
    $ kubectl describe nms 
    Name:         di-1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  datasource.sevone.com/v1alpha1
    Kind:         NetworkManagementSystem
    Metadata:
      Creation Timestamp:  2023-10-06T07:49:45Z
      Generation:          1
      Resource Version:    3232
      UID:                 e7b83abd-6cc7-4f8e-bb87-6fce7a01854d
    Spec:
      Encryption Key Secret:
        Key:    keys.json
        Name:   securitykeys
      Host:     10.129.27.10
      Poll:     30s
      Port:     443
      Secret:   datasource-di-1
      Timeout:  5s
    Status:
      API Version:  7.0.0
      Ip:           127.0.0.1
      Name:         SevOne Appliance
      Primary Ip:   127.0.0.1
      Service:      datasource-di-1
      Version:      7.0.0
    Events:         <none>
    
  5. 以下命令描述负载均衡的当前状态。
    
    $ ssh sevone@<SevOne Data Insight 'control plane' node IP address or hostname>
    
    
    $ kubectl describe endpointslice $service
    

    其中, $service 是从上面的命令 kubectl describe nms 返回的 NMS 的其中一个 Status.Service 的名称。 例如, datasource-di-1

    示例

    
    $ kubectl describe endpointslice datasource-di-1 
    Name:         datasource-di-1
    Namespace:    default
    Labels:       app=nms
                  endpointslice.kubernetes.io/managed-by=NetworkManagementSystem
                kubernetes.io/service-name=datasource-di-1
                nms_cr=datasource-di-1
    Annotations:  <none>
    AddressType:  IPv4
    Ports:
      Name  Port  Protocol
      ----  ----  --------
      grpc  443   TCP
    Endpoints:
      - Addresses:  10.129.27.10
        Conditions:
          Ready:   true
        Hostname:  di-1
        NodeName:  <unset>
        Zone:      <unset>
    Events:        <none>
    
    要点: Conditions.Ready: true 表示 NMS 地址适合进行负载均衡。