工具
版本矩阵
| 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 安装程序
更改端口
- 将 /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 - 下表列出了客户机和 API 的缺省端口号及其各自的配置文件位置。
名称 缺省端口 配置文件位置 客户端 3000 /etc/sevone-guii/client.custom.yaml 个 API 3001 /etc/sevone-guii/api.custom.yaml - 如果需要更改端口号,请使用您选择的文本编辑器,编辑 .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 - 重新启动客户机和 API 服务。重要信息: 如果发生任何配置更改,那么需要同时重新启动客户机和 API 服务。
$ sudo systemctl restart sevone-guii-@api $ sudo systemctl restart sevone-guii-@client
重试失败的阶段
某些阶段在失败时无法重试。 可以通过在 /etc/sevone-guii/api.yaml 文件中修改该特定阶段的 retry 字段来绕过此行为。
- 使用您选择的文本编辑器,编辑 /etc/sevone-guii/api.yaml 文件。
$ vi /etc/sevone-guii/api.yaml - 对于此示例,假定 Upgrade 阶段已失败。 您将需要修改 retry 字段,即,将其切换为 true,对于 /etc/sevone-guii/api.yaml 文件中的 label: Upgrade 。
- id: up.yaml label: Upgrade type: playbook order: 3 retry: true # <--- toggle this on - 保存 /etc/sevone-guii/api.yaml 文件。
- 使用文本编辑器编辑/SevOne.info文件。 将 SevOne Data Insight 主 / 次 版本还原为先前/更低版本。
$ vi /SevOne.info - 刷新 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" 命令
- 通过用户界面完成 控制平面 节点的供应时,请确保从 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 - 当 代理程序 节点已加入 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 - 要检查部署的状态,请确保所有 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 - 以下命令描述 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> - 以下命令描述负载均衡的当前状态。
$ 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 地址适合进行负载均衡。