1. 程式人生 > 其它 >分享一款開源堡壘機-jumpserver

分享一款開源堡壘機-jumpserver

本文主文章地址為:https://blog.csdn.net/KH_FC
JumpServer是由FIT2CLOUD(飛致遠)公司旗下一款開源的堡壘機,這款也是全球首款開源的堡壘機,使用 GNU GPL v2.0 開源協議,是符合 4A 規範的運維安全審計系統,使用 Python 開發,遵循 Web 2.0 規範,配備了業界領先的 Web Terminal 方案,互動介面美觀、使用者體驗好,同時採納分散式架構,支援多機房跨區域部署以及橫向擴充套件,無資產數量及併發限制。這款開源堡壘機不但提供了社群開源版本並且還提供了企業使用的企業版本,企業版功能更加強大。

飛致遠官網地址:https://www.fit2cloud.com/

旗下開源軟體:

  1. MeterSphere:是一站式開源持續測試平臺, 涵蓋測試跟蹤、介面測試、效能測試、 團隊協作等功能,全面相容 JMeter、Postman、Swagger 等開源、主流標準,有效助力開發和測試團隊充分利用雲彈性進行高度可擴充套件的自動化測試,加速高質量的軟體交付,推動中國測試行業整體效率的提升。
  2. KubeOperator:是一個開源的輕量級 Kubernetes 發行版,專注於幫助企業規劃、部署和運營生產級別的 Kubernetes 叢集。
  3. DataEase:是開源的資料視覺化分析工具,幫助使用者快速分析資料並洞察業務趨勢,從而實現業務的改進與優化。DataEase 支援豐富的資料來源連線,能夠通過拖拉拽方式快速製作圖表,並可以方便的與他人分享。
  4. RackShift:是開源的裸金屬伺服器管理平臺,功能覆蓋裸金屬伺服器的發現、帶外管理、RAID 配置、韌體更新、作業系統安裝等。
  5. RiskScanner:是開源的裸金屬伺服器管理平臺,功能覆蓋裸金屬伺服器的發現、帶外管理、RAID 配置、韌體更新、作業系統安裝等。
  6. HaLo:一款現代化的開源部落格/CMS系統,值得試一試
  7. RackShift:是開源的裸金屬伺服器管理平臺,功能覆蓋裸金屬伺服器的發現、帶外管理、RAID 配置、韌體更新、作業系統安裝等。
  8. RiskScanner:是開源的多雲安全合規掃描平臺,基於 Cloud Custodian 和 Nuclei 引擎,實現對主流公(私)有云資源的安全合規掃描和漏洞掃描。

開局之前在這裡先感謝飛致遠為為我們帶來了這麼多開源好用的平臺

準備工作

  1. 一臺Linux主機,當然如果你條件夠的話可以採用主機,這裡如果你不是正式環境使用不建議你使用真實主機,而是採用虛擬主機,主機規格建議不低於2核4G的配置,當然測試你可以使用更低的規格。
  2. 聯網,這裡建議全網放通,需要下載一些更新檔案和github上的主檔案
  3. 建議準備雙網絡卡,大家都知道堡壘機可以在內網也可以在外網,當然大多數堡壘機都是有一條內網網絡卡和一條外網網絡卡的,為了真實模擬這裡建議採用雙網絡卡。
  4. 作業系統建議採用CentOs或者RedHat,不建議採用Ubuntu或其他開源linux作業系統,這裡就不跟大家說原因了,大家有興趣可以去嘗試

外接環境要求:
這裡所說的外接環境要求,其實就是當你堡壘機單獨使用一臺虛機或主機,這個時候你就需要有另外的資料庫和redis存在,並且需要你在堡壘機安裝完成後去配置指定它們,堡壘機執行需要它們。

  1. MySQL:版本不低於5.7
  2. MariaDB: 版本不低於10.2
  3. Redis:版本不低於5.0

準備好這些就可以試著開始安裝了

安裝

在官網上提供的部署方式有很多,我感覺用的最多的就是負載均衡部署和單機部署,因為我這虛擬主機數量不太夠這裡就採用單機部署的方式了,官網上提供的安裝方式也有很多:

  1. 一鍵部署:這種方式是我比較喜歡的一種,簡單粗暴快捷,但是會存在很多限制。
  2. 手動部署:困難程度一般,有一定難度需要大家對部署有一定了解。
  3. 離線部署(amd64):困難程度一般,有一定難度需要大家對部署有一定了解。
  4. 離線部署(arm64):困難程度一般,有一定難度需要大家對部署有一定了解。
  5. 原始碼部署:部署相對來說困難很多,你要好好了解一下架構然後再試著去安裝部署。
  6. 容器部署:這個容器化部署就需要你對K8s有一定熟悉。

大家可以選擇自己合適的方式去安裝就可以了,有興趣的可以試試所有方式哦,這對你的學習會很有幫助的

一、 一鍵部署

一鍵部署時安裝jumpserver最簡單的一種方式,這種方式你只需要在官網是把命令複製到你的主機上進行執行等待執行成功就可以了,然後就是找到安裝目錄進行啟動就可以使用了,下面我們來看下具體操作
主要操作說明

# 預設會安裝到 /opt/jumpserver-installer-v2.17.2 目錄
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.17.2/quick_start.sh | bash
cd /opt/jumpserver-installer-v2.17.2
# 安裝完成後配置檔案 /opt/jumpserver/config/config.txt
# 如果你外接了MySQL/MariaDB和Redis你就必須要修改本檔案,指定你的地址和密碼
cd /opt/jumpserver-installer-v2.17.2

# 啟動
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 解除安裝
./jmsctl.sh uninstall

# 幫助
./jmsctl.sh -h

詳細步驟

  1. 主機檢查
    首先需要檢查下你的網絡卡是否兩個都生效

    測試忘了連通性,一鍵部署需要聯網才可進行下載安裝包及資源

    檢視是否存在一些已安裝的衝突包,這裡一定要注意要確定這些服務沒用後才能解除安裝哦,我這裡是虛機無所謂所以直接用*來解除安裝一些沒用的安裝包
  2. 下載安裝程式

我們把上面的第一條命令複製出來,然後貼上到我們命令列進行執行即可

因為是需要在github上面下載主安裝檔案,大家都懂的在github下載東西是特別慢的,甚至等了半天都沒下載成功,下面教大家一個加速小技巧嘿嘿。
我們來看看下面地址的不同

https://github.com/jumpserver/jumpserver/releases/download/v2.17.2/quick_start.sh

對比

https://github.com.cnpmjs.org/jumpserver/jumpserver/releases/download/v2.17.2/quick_start.sh

對比一下就知道這兩個地址裡面不同的地方就是在github.com後面增加了cnpmjs.org,這個原理就是使用映象伺服器來下載這些服務
下面我們再來試著下載一下,但是這個時候就要注意一下把上面地址中的| bash去掉,不然還是會提示你下載失敗的情況,下面給大家更新下下載連結地址

wget https://github.com.cnpmjs.org/jumpserver/jumpserver/releases/download/v2.17.2/quick_start.sh

這樣下載就沒問題了。

下載完成後需要開啟這個檔案,修改裡面github的下載地址

修改完成後儲存,然後再使用bash進行執行就可以了,執行命令如下:

bash quick_start.sh


中間可能會出現提問大家選擇y即可




下面這些是是否需要設定擴充套件excel和redis以及jumpserver的對外埠,我這裡就保持默認了

接下來就是等待執行完成了,其中需要下載很多映象,等待時間會較長

經過漫長的等待終於搞定了,接下來我們去啟動jumpserver,根據安裝完成的提示進行啟動即可

啟動成功後使用瀏覽器訪問外網的地址即可,我這裡使用內網進行訪問


預設賬號密碼為admin,首次登入需要重置密碼


到這裡就已經安裝完成了。下面安裝我就寫簡要安裝了

二、 手動部署

cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.17.2/jumpserver-installer-v2.17.2.tar.gz
tar -xf jumpserver-installer-v2.17.2.tar.gz
cd jumpserver-installer-v2.17.2
# 根據需要修改配置檔案模板, 如果不清楚用途可以跳過修改
cat config-example.txt
# 以下設定如果為空系統會自動生成隨機字串填入
## 遷移請修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 為原來的設定
## 完整引數文件 https://docs.jumpserver.org/zh/master/admin-guide/env/

## 安裝配置, amd64 預設使用華為雲加速下載, arm64 請註釋掉 DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外接資料庫, 請輸入正確的 MySQL 資訊
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外接資料庫, 請輸入正確的 Redis 資訊
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

## Compose 專案設定, 如果 192.168.250.0/24 網段與你現有網段衝突, 請修改然後重啟 JumpServer
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24

## IPV6 設定, 容器是否開啟 ipv6 nat, USE_IPV6=1 表示開啟, 為 0 的情況下 DOCKER_SUBNET_IPV6 定義不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=2001:db8:10::/64

## Nginx 配置, USE_LB=1 表示開啟, 為 0 的情況下, HTTPS_PORT 定義不生效
HTTP_PORT=80
SSH_PORT=2222
RDP_PORT=3389

USE_LB=0
HTTPS_PORT=443

## Task 配置, 是否啟動 jms_celery 容器, 單節點必須開啟
USE_TASK=1

## XPack, USE_XPACK=1 表示開啟, 開源版本設定無效
USE_XPACK=0

# Core 配置, Session 定義, SESSION_COOKIE_AGE 表示閒置多少秒後 session 過期, SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示關閉瀏覽器即 session 過期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true

# Koko Lion XRDP 元件配置
CORE_HOST=http://core:8080

# 額外的配置
CURRENT_VERSION=
# 安裝
./jmsctl.sh install

# 啟動
./jmsctl.sh start
# 安裝完成後配置檔案 /opt/jumpserver/config/config.txt
cd /opt/jumpserver-installer-v2.17.2

# 啟動
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 解除安裝
./jmsctl.sh uninstall

# 幫助
./jmsctl.sh -h

三、離線部署(amd64)

cd /opt
tar -xf jumpserver-offline-installer-v2.17.2-amd64-84.tar.gz
cd jumpserver-offline-installer-v2.17.2-amd64-84
# 根據需要修改配置檔案模板, 如果不清楚用途可以跳過修改
cat config-example.txt
# 以下設定如果為空系統會自動生成隨機字串填入
## 遷移請修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 為原來的設定
## 完整引數文件 https://docs.jumpserver.org/zh/master/admin-guide/env/

## 安裝配置, amd64 預設使用華為雲加速下載, arm64 請註釋掉 DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外接資料庫, 請輸入正確的 MySQL 資訊
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外接資料庫, 請輸入正確的 Redis 資訊
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

## Compose 專案設定, 如果 192.168.250.0/24 網段與你現有網段衝突, 請修改然後重啟 JumpServer
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24

## IPV6 設定, 容器是否開啟 ipv6 nat, USE_IPV6=1 表示開啟, 為 0 的情況下 DOCKER_SUBNET_IPV6 定義不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=2001:db8:10::/64

## Nginx 配置, USE_LB=1 表示開啟, 為 0 的情況下, HTTPS_PORT 定義不生效
HTTP_PORT=80
SSH_PORT=2222
RDP_PORT=3389

USE_LB=0
HTTPS_PORT=443

## Task 配置, 是否啟動 jms_celery 容器, 單節點必須開啟
USE_TASK=1

## XPack, USE_XPACK=1 表示開啟, 開源版本設定無效
USE_XPACK=0

# Core 配置, Session 定義, SESSION_COOKIE_AGE 表示閒置多少秒後 session 過期, SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示關閉瀏覽器即 session 過期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true

# Koko Lion XRDP 元件配置
CORE_HOST=http://core:8080

# 額外的配置
CURRENT_VERSION=
# 安裝
./jmsctl.sh install

# 啟動
./jmsctl.sh start
# 安裝完成後配置檔案 /opt/jumpserver/config/config.txt
cd /opt/jumpserver-installer-v2.17.2

# 啟動
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 解除安裝
./jmsctl.sh uninstall

# 幫助
./jmsctl.sh -h

四、離線部署(arm64)

cd /opt
tar -xf jumpserver-offline-installer-v2.17.2-amd64-84.tar.gz
cd jumpserver-offline-installer-v2.17.2-amd64-84
# 根據需要修改配置檔案模板, 如果不清楚用途可以跳過修改
cat config-example.txt
# 以下設定如果為空系統會自動生成隨機字串填入
## 遷移請修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 為原來的設定
## 完整引數文件 https://docs.jumpserver.org/zh/master/admin-guide/env/

## 安裝配置, amd64 預設使用華為雲加速下載, arm64 請註釋掉 DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR

##  MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外接資料庫, 請輸入正確的 MySQL 資訊
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver

##  Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外接資料庫, 請輸入正確的 Redis 資訊
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

## Compose 專案設定, 如果 192.168.250.0/24 網段與你現有網段衝突, 請修改然後重啟 JumpServer
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24

## IPV6 設定, 容器是否開啟 ipv6 nat, USE_IPV6=1 表示開啟, 為 0 的情況下 DOCKER_SUBNET_IPV6 定義不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=2001:db8:10::/64

## Nginx 配置, USE_LB=1 表示開啟, 為 0 的情況下, HTTPS_PORT 定義不生效
HTTP_PORT=80
SSH_PORT=2222
RDP_PORT=3389

USE_LB=0
HTTPS_PORT=443

## Task 配置, 是否啟動 jms_celery 容器, 單節點必須開啟
USE_TASK=1

## XPack, USE_XPACK=1 表示開啟, 開源版本設定無效
USE_XPACK=0

# Core 配置, Session 定義, SESSION_COOKIE_AGE 表示閒置多少秒後 session 過期, SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示關閉瀏覽器即 session 過期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true

# Koko Lion XRDP 元件配置
CORE_HOST=http://core:8080

# 額外的配置
CURRENT_VERSION=
# 安裝
./jmsctl.sh install

# 啟動
./jmsctl.sh start
# 安裝完成後配置檔案 /opt/jumpserver/config/config.txt**加粗樣式**
cd /opt/jumpserver-installer-v2.17.2

# 啟動
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 解除安裝
./jmsctl.sh uninstall

# 幫助
./jmsctl.sh -h

五、Kubernetes

helm repo add jumpserver https://jumpserver.github.io/helm-charts
helm repo list
vi values.yaml
# 模板 https://github.com/jumpserver/helm-charts/blob/main/charts/jumpserver/values.yaml
# Default values for jumpserver.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

nameOverride: ""
fullnameOverride: ""

## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
## @param global.storageClass Global StorageClass for Persistent Volume(s)
## @param global.redis.password Global Redis™ password (overrides `auth.password`)
##
global:
  imageRegistry: "docker.io"    # 國內可以使用華為雲加速 swr.cn-south-1.myhuaweicloud.com
  imageTag: v2.16.3             # 版本號
  ## E.g.
  #  imagePullSecrets:
  #  - myRegistryKeySecretName
  ##
  imagePullSecrets: []
      # - name: yourSecretKey
  storageClass: ""              # NFS SC

## If the Redis database included in the chart is disabled, JumpServer will
## use below parameters to connect to an external Redis server.
##
externalDatabase:               # 資料庫相關設定
  engine: mysql
  host: localhost
  port: 3306
  user: root
  password: ""
  database: jumpserver

## If the MySQL database included in the chart is disabled, JumpServer will
## use below parameters to connect to an external MySQL server.
##
externalRedis:                  # Redis 設定
  host: localhost
  port: 6379
  password: ""

serviceAccount:
  # Specifies whether a service account should be created
  create: false
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name:

ingress:
  enabled: true
  annotations:
    # kubernetes.io/tls-acme: "true"
    compute-full-forwarded-for: "true"
    use-forwarded-headers: "true"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/configuration-snippet: |
       proxy_set_header Upgrade "websocket";
       proxy_set_header Connection "Upgrade";
  hosts:
    - "test.jumpserver.org"                 # 對外域名
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

core:
  enabled: true

  labels:
    app.jumpserver.org/name: jms-core

  config:
    # Generate a new random secret key by execute `cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`
    secretKey: ""                            # 加密敏感資訊的 secret_key, 長度推薦大於 50 位
    # Generate a new random bootstrap token by execute `cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`
    bootstrapToken: ""                       # 元件認證使用的 token, 長度推薦大於 24 位
    # Enabled it for debug
    debug: false
    log:
      level: ERROR

  replicaCount: 1

  image:
    registry: docker.io
    repository: jumpserver/core
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    httpGet:
      path: /api/health/
      port: web

  readinessProbe:
    failureThreshold: 30
    httpGet:
      path: /api/health/
      port: web

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext: {}
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    web:
      port: 8080
    ws:
      port: 8070

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 1000m
    #   memory: 2048Mi
    # requests:
    #   cpu: 500m
    #   memory: 1024Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 10Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection
    # subPath: ""
    # existingClaim:

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}

koko:
  enabled: true

  labels:
    app.jumpserver.org/name: jms-koko

  config:
    log:
      level: ERROR

  replicaCount: 1

  image:
    registry: docker.io
    repository: jumpserver/koko
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    httpGet:
      path: /koko/health/
      port: web

  readinessProbe:
    failureThreshold: 30
    httpGet:
      path: /koko/health/
      port: web

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext:
    privileged: true
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    web:
      port: 5000
    ssh:
      port: 2222

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 10Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}

lion:
  enabled: true

  labels:
    app.jumpserver.org/name: jms-lion

  config:
    log:
      level: ERROR

  replicaCount: 1

  image:
    registry: docker.io
    repository: jumpserver/lion
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    httpGet:
      path: /lion/health/
      port: web

  readinessProbe:
    failureThreshold: 30
    httpGet:
      path: /lion/health/
      port: web

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext: {}
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    web:
      port: 8081

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 100m
    #   memory: 512Mi
    # requests:
    #   cpu: 100m
    #   memory: 512Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 10Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}

xpack:
  enabled: false      # 企業版本開啟此選項

omnidb:
  labels:
    app.jumpserver.org/name: jms-omnidb

  config:
    log:
      level: ERROR

  replicaCount: 1

  image:
    registry: registry.fit2cloud.com
    repository: jumpserver/omnidb
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    tcpSocket:
      port: web

  readinessProbe:
    failureThreshold: 30
    tcpSocket:
      port: web

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext: {}
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    web:
      port: 8082
    ws:
      port: 8071

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 10Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}

xrdp:
  labels:
    app.jumpserver.org/name: jms-xrdp

  config:
    log:
      level: ERROR

  replicaCount: 1

  image:
    registry: registry.fit2cloud.com
    repository: jumpserver/xrdp
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    tcpSocket:
      port: rdp

  readinessProbe:
    failureThreshold: 30
    tcpSocket:
      port: rdp

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext: {}
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    rdp:
      port: 3389

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 10Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}

web:
  enabled: true

  labels:
    app.jumpserver.org/name: jms-web

  replicaCount: 1

  image:
    registry: docker.io
    repository: jumpserver/web
    tag: v2.13.2
    pullPolicy: IfNotPresent

  command: []

  env: []

  livenessProbe:
    failureThreshold: 30
    httpGet:
      path: /api/health/
      port: web

  readinessProbe:
    failureThreshold: 30
    httpGet:
      path: /api/health/
      port: web

  podSecurityContext: {}
    # fsGroup: 2000

  securityContext: {}
    # capabilities:
    #   drop:
    #   - ALL
    # readOnlyRootFilesystem: true
    # runAsNonRoot: true
    # runAsUser: 1000

  service:
    type: ClusterIP
    web:
      port: 80

  resources: {}
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

  persistence:
    storageClassName: jumpserver-data
    accessModes:
      - ReadWriteMany
    size: 1Gi
    # annotations: {}
    finalizers:
      - kubernetes.io/pvc-protection

  volumeMounts: []

  volumes: []

  nodeSelector: {}

  tolerations: []

  affinity: {}
# 安裝
helm install jms-k8s jumpserver/jumpserver -n default -f values.yaml

# 解除安裝
helm uninstall jms-k8s -n default

六、原始碼安裝

這個建議去參考下官網編譯文件:https://docs.jumpserver.org/zh/master/dev/build/

使用

使用全部圖形化介面相當簡單,特別容易上手,簡單摸索一下就可以了,這裡就不敘述了。這是官方文件地址:https://docs.jumpserver.org/zh/master/user-guide/assets/user-asset/
大家可以作為參考