TenSunS對接JumpServer:如何把主機自動同步到JumpServer

StarsL發表於2024-11-03

🦄概述

后羿 - TenSunS(原ConsulManager)是一個使用Flask+Vue開發,基於Consul的WEB運維平臺,彌補了Consul官方UI對Services管理的不足;並且基於Consul的服務發現與鍵值儲存:實現了Prometheus自動發現多雲廠商各資源資訊;基於Blackbox對站點監控的視覺化維護;以及對自建與雲上資源的優雅管理與展示。

倉庫地址:https://github.com/starsliao/TenSunS

🏷目錄

  • 雲主機自動同步JumpServer能做什麼?
  • 同步JumpServer功能如何開啟?
  • 如何獲取JumpServer永久token?
  • 什麼是JumpServer的管理使用者(v3版叫賬號模版或特權使用者)?
  • 接入JumpServer時,全域性通用主機【管理使用者】資訊該如何填寫?
  • 接入JumpServer時,全域性特殊主機【管理使用者】資訊該如何填寫?
  • 接入JumpServer操作完成之後,我該做什麼?
  • 高階設定:不同雲賬號有不同的jumpserver管理賬戶的場景能否支援?

雲主機自動同步JumpServer能做什麼?

  • 當您在雲上購買了新的ECS時,需要手動在JumpServer中建立新資產來納管該ECS。
  • JumpServer同步功能可以把阿里、騰訊、華為雲的ECS資源自動同步到JumpServer中,免去手動建立資產的操作。
  • 當您在雲廠商介面新增、刪除、修改ECS後,都會及時的自動同步到JumpServer中。

同步JumpServer功能如何開啟?

72b7ccbc370982566fece2325191d0d

如何獲取JumpServer永久token?

  • 登入JumpServer所在的主機,執行以下命令:
docker exec -it jms_core /bin/bash   #非容器化部署的JumpServer,不執行該行。
cd /opt/jumpserver/apps
python manage.py shell
from users.models import User
u = User.objects.get(username='admin')   #admin換成你的JumpServer管理員使用者名稱。
  • 該賬號沒有建立過token的執行以下命令:u.create_private_token()
  • 該賬號已經建立過token的執行以下命令:u.private_token
  • 記錄PrivateToken: 後面的部分。(最後的>不要)

什麼是JumpServer的管理使用者(v3版叫賬號模版或特權使用者)?

  • 管理使用者(v3版叫賬號模版 或 特權使用者)是資產(被控伺服器)上的 root,或擁有 NOPASSWD: ALL sudo 許可權的使用者, JumpServer 使用該使用者來 推送系統使用者獲取資產硬體資訊 等。
  • 為了方便您也可以只使用管理使用者(v3版叫賬號模版 或 特權使用者),不建立推送賬戶;但要注意在使用JumpServer登陸該資源後,即是管理賬號,許可權是sudo root。
  • 手動建立資產的時候需要給每臺ECS選擇一個管理使用者(v3版叫賬號模版 或 特權使用者),注意:必須先在ECS上建立好這個賬戶,JumpServer才能管理這臺ECS。
    72b7ccbc370982566fece2325191d0d

注意:JumpServer3.x不再用管理賬號,請在管理使用者ID填寫賬號模版的ID即可。

JumpServer3.x請使用賬號模板的ID:登入JumpServer-賬號管理-賬號模板-選擇賬號-基本資訊-ID
72b7ccbc370982566fece2325191d0d

接入JumpServer時,全域性通用主機【管理使用者】資訊該如何填寫?

72b7ccbc370982566fece2325191d0d
  • 全域性通用是指:全域性是指所有的雲賬號,一般情況下所有的ECS會使用一個統一的管理使用者(v3版叫賬號模版 或 特權使用者)來方便管理ECS。

  • Linux:需要建立一個有root許可權的管理使用者(v3版叫賬號模版 或 特權使用者)。

  • Windows:需要建立一個有管理員許可權的管理使用者(v3版叫賬號模版 或 特權使用者)。(v2版本可以隨意選擇一個管理使用者,當登入失敗時會提示你輸入使用者名稱密碼)

  • :即為ssh(linux)或者遠端桌面(windows)的埠。

  • 管理使用者ID:即管理使用者的ID,不是使用者名稱;點選剛建立的管理使用者(v3版叫賬號模版 或 特權使用者)即可看到ID。
    72b7ccbc370982566fece2325191d0d

  • 配置完成之後,所有的ECS資訊同步到JumpServer時都會使用相應的埠和管理使用者(v3版叫賬號模版 或 特權使用者)。

接入JumpServer時,全域性特殊主機【管理使用者】資訊該如何填寫?

72b7ccbc370982566fece2325191d0d
  • 對於部分主機可能會使用特殊的埠以及管理使用者(v3版叫賬號模版 或 特權使用者)的情況,所以我們支援了根據主機名稱關鍵字來匹配不同的登入埠和管理使用者(v3版叫賬號模版 或 特權使用者)的功能。
  • 例項如下:
{
    "xxxaaa": {
        "linux": [
            ["ssh/22"],
            "b510418c-ea15-44d8-836a-5eb6138a6c56"
        ]
    },
    "xxxbbb": {
        "linux": [
            ["ssh/2626"],
            "b510418c-ea15-44d8-836a-5eb6138a6c56"
        ],
        "windows": [
            ["rdp/3389"],
            "21a7d079-319b-483f-b31c-bf92254f1ac7"
        ]
    }
}

說明:

  • 填寫的內容必須是一個Json格式。
  • 最外層的key:xxxaaaxxxbbb表示主機名的關鍵字,包含該關鍵字的主機均有效。
  • 每個最外層key的value為固定格式:有windows或者linux系統的埠和管理使用者(v3版叫賬號模版 或 特權使用者)ID,您只需要更換掉對應的埠號及管理使用者(v3版叫賬號模版 或 特權使用者)ID即可。

接入JumpServer操作完成之後,我該做什麼?

  • 完成接入後,您將看到已經接入過資料來源的雲廠商賬號的資訊,包括整體的系統、資源、狀態資訊,如圖:
    圖片
  • 點選各雲賬號右側的同步開關,填寫節點資訊和同步間隔後,即可進行首次同步(耗時依主機數而定,可在日誌中檢視進度)。
  • 新節點ID:節點即為JumpServer中,存放資產的目錄。對於每個雲賬號必須新建一個節點來存放該賬號的ECS,防止同步操作對已有節點的主機造成影響。
  • 在JumpServer-資產管理-資產列表-資產樹中,右鍵點選根節點(Default),即可建立節點,對建立的節點點右鍵選擇最後的顯示節點詳情即可檢視節點ID。
    圖片
  • 同步完成後,即可在介面上看到資源數和同步的ECS數量,注意:JumpServer中已有的同名主機不會同步,如數量不一致,可在日誌從檢視同名主機資訊。
  • 最後,可以登入JumpServer,找到對應到節點,檢視同步後的主機資訊,會根據雲資源的分組資訊把所有的ECS存放到對應的分組目錄。

注意:雲主機自動同步JumpServer功能僅是自動化了建立資產的操作,每臺雲主機的管理使用者(v3版叫賬號模版 或 特權使用者),還需要使用者自行在ECS中建立好;有使用賬戶推送(系統使用者)的需要根據JumpServer的配置來自動或手動推送。


高階設定:不同雲賬號有不同的jumpserver管理賬戶的場景能否支援?

目前web介面上不支援這樣的場景,不過後端是已經支援的,所以可以直接修改consul KV的方式來實現。

  • 訪問consul的webUI http://x.x.x.x:8500/ui/dc1/kv/TenSunS/jms/
  • 該目錄下可以看到2個鍵:全域性管理使用者(v3版叫賬號模版 或 特權使用者)資訊:ecs_info,全域性特殊管理使用者(v3版叫賬號模版 或 特權使用者)資訊:custom_ecs_info
  • 進入改目錄下對應的雲廠商以及雲賬戶的目錄
  • 把上面提到了兩個鍵複製到雲賬戶的目錄下即可,並修改為需要的內容即可,注意內容的格式保持不變。
  • 下次同步時候會優先讀取雲賬戶目錄下的管理使用者(v3版叫賬號模版 或 特權使用者)資訊。(需要登入jumpserver刪掉已同步的主機。)
  • 我會盡快把這個功能做到web介面上。

相關文章