二、Sonatype Nexus Repository REST API 深度入門

1. Nexus Repository 簡介

Sonatype Nexus Repository(以下簡稱 Nexus)是一款功能強大的制品庫管理工具,支持 Maven、npm、Docker、PyPI 等多種格式。通過 Nexus REST API,你可以在 CI/CD 管道中無縫地完成倉庫創建、權限配置、構件上傳與清理等關鍵操作,大幅提升 DevOps 自動化效率。

2. Nexus API 架構與端點

Nexus 3.x 版本主要提供以下 REST 接口:

根路徑 描述
/service/rest/v1/ 核心倉庫管理(Repository)
/service/rest/v1/script 腳本管理與執行(Groovy)
/service/rest/v1/security 用戶、角色與權限配置

3. 實戰:四步在 CI/CD 中創建 Maven 倉庫

以下示例展示如何在 Jenkins Pipeline 中通過 REST API 自動創建一個 Maven Hosted 倉庫,并賦予特定角色權限。

3.1 準備 Groovy 腳本 createMavenRepo.groovy

import org.sonatype.nexus.repository.storage.WritePolicy
repository.createMavenHosted(
  'internal-maven',            // 倉庫名稱
  'maven2',                    // 格式
  'default',                   // Blob store
  true,                        // 發布策略
  WritePolicy.ALLOW,           // 寫入策略
  false,                       // 暫存策略
  null                         // 恢復策略
)

3.2 上傳并執行腳本

# 1. 上傳腳本
curl -u admin:admin123 \
  -X POST http://nexus.example.com/service/rest/v1/script \
  -H "Content-Type: application/json" \
  -d '{
    "name": "createMavenRepo",
    "type": "groovy",
    "content": "'"$(sed ':a;N;$!ba;s/\n/\\n/g' createMavenRepo.groovy)"'"
  }'

# 2. 執行腳本
curl -u admin:admin123 \
  -X POST http://nexus.example.com/service/rest/v1/script/createMavenRepo/run

> 提示:在 Jenkins Pipeline 中,可使用 sh 步驟依次執行上述命令,并在參數化構建時傳入倉庫名稱、Blob store 等。

4. 構件上傳與清理


三、Cisco Nexus 交換機 NX?API 快速上手

1. 什么是 NX?API?

NX?API 是 Cisco Nexus 網絡設備提供的 API 接口,允許開發者用 HTTP/HTTPS 調用 CLI 命令,實現與交換機的編程式交互。支持 JSONXML 格式,結合 JSON?RPC 可模擬 CLI 行為。

2. 啟用與安全配置

conf t
  feature nxapi
  nxapi http port 80
  nxapi https port 443
  ip http secure-server
end

3. 請求示例

3.1 JSON?RPC 調用

POST https://nexus-switch/api/ins
Content-Type: application/json
{
  "ins_api": {
    "version": "1.0",
    "type": "cli_show",
    "chunk": "0",
    "sid": "1",
    "input": "show version",
    "output_format": "json"
  }
}

> 返回示例包含設備型號、IOS 版本等信息,通過 JSON 路徑快速解析。

3.2 RESTConf 對象模型

部分新機型支持 RESTConf(基于 YANG 數據模型),可用 curl -X GET https:// < switch > /restconf/data/interfaces 獲取接口列表信息。


四、工具與腳本集成

場景 工具/庫 說明
Nexus 自動化 curl + Groovy 官方推薦腳本上傳方式,配合 CI/CD 完全無狀態調用
API 文檔交互 Swagger UI 在線調試與請求生成
NX?API 調用 Postman/Insomnia 支持存儲環境變量、Token 管理、請求示例導出
網絡自動化腳本 Python + requests 使用 requests 庫發送 JSON?RPC,結合 NXTookit 庫

五、最佳實踐與安全建議

  1. 憑證管理:將 admin 憑證和 API Token 存放在 Vault、Jenkins 憑證中,避免硬編碼。
  2. 最小權限原則:為 CI/CD 服務賬號創建專屬角色,僅包含所需倉庫和操作權限。
  3. 審計日志:定期導出 Nexus 審計日志與 NX?API 調用記錄,以便追溯與合規。
  4. 性能監控:利用 Nexus 內部 /service/rest/v1/status 和 NX?API Sandbox 監測接口健康狀況。
  5. 版本兼容:關注 Nexus 與 Nexus Pro、NX OS 版本差異,升級前務必在測試環境驗證 API 行為。

六、實踐案例:CI/CD 與網絡統一自動化

一個真實案例顯示,某大型電商團隊將 Nexus API 與 NX?API 集成至同一 Jenkins Pipeline:

  1. 構件發布:構建完成后,調用 Nexus API 創建臨時 Maven 倉庫并上傳快照。
  2. 網絡配置:并行觸發 Python 腳本,通過 NX?API 動態修改流量鏡像、ACL 規則。
  3. 回滾機制:若任一步驟失敗,Pipeline 調用 Nexus API 刪除臨時倉庫,并通過 NX?API 恢復交換機配置。
  4. 監控與告警:所有 API 調用結果推送到 ELK Stack,關聯 Grafana 儀表盤監控指標。

該流程實現制品管理與網絡變更統一編排,推送速度提升 40%,故障恢復時間縮短 60%。


七、總結與下一步

本文系統梳理了 Nexus API 在制品管理與網絡自動化中的雙重價值,涵蓋:

下一步建議

掌握 Nexus API,你將擁有貫通制品倉庫與網絡設備的自動化金鑰,開啟 DevOps + NetOps 新篇章!

原文引自YouTube視頻:https://www.youtube.com/watch?v=_tn1dDmxiBw

上一篇:

如何通過 Evernote API 進行多媒體筆記的創建

下一篇:

深入解析谷歌翻譯API:基于Gemini的規模化高質量翻譯與創新應用
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費