# jumpserver-docker-ubuntu **Repository Path**: k8s-devops/jumpserver-docker-ubuntu ## Basic Information - **Project Name**: jumpserver-docker-ubuntu - **Description**: jumpserver-docker-ubuntu - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-31 - **Last Updated**: 2023-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Install ## 1、介绍 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。 > 产品特色: - 开源: 零门槛,线上快速获取和安装; - 无插件: 仅需浏览器,极致的 Web Terminal 使用体验; - 分布式: 支持分布式部署和横向扩展,轻松支持大规模并发访问; - 多云支持: 一套系统,同时管理不同云上面的资产; - 多租户: 一套系统,多个子公司或部门同时使用; - 云端存储: 审计录像云端存储,永不丢失; - 多应用支持: 全面支持各类资产,包括服务器、数据库、Windows RemoteApp、Kubernetes 等; - 安全可靠: 被广泛使用、验证和信赖,连续 9 年的持续研发投入和产品更新升级 ## 2. docker部署 ### 2.1 逻辑拓扑图 ![](./images/jms-photo.png) 1. 为什么要部署2套环境,并设置2个入口 Q: 预防单点故障,2台云主机各自运行一套环境,有backup环境可以快速切换访问,2个入口正常使用一个,另一个后门入口,域名设置隐蔽一点 1. 数据是否需要二次同步? Q: Mysql主主同步已经实现数据的同步,无需二次录入。即使切换到备环境,进行数据录入,主环境的web和核心程序出现故障,不影响数据继续同步,双向同步,备用环境有单独的数据库。 综上所述:满足热备 且架构简单易管理和迁移复制。 ### 2.2 前提 安装docker和docker-compose ### 2.3 公共组件 创建容器网络 ```sh docker network create nginx_proxy ``` 配置好配置文件,配置文件包括mysql、redis、持久化存储的信息。 ```sh cd Dockerfile cp config_example.conf .env vi .env ``` 参考示例:[.env](./Dockerfile/.env) #### mysql [docker-compose.yaml](./Dockerfile/docker-compose-mariadb.yml) ```sh docker-compose -f docker-compose-mariadb.yml up -d ``` ```sh # 进入到数据库赋权用户 create database jumpserver default charset 'utf8'; create user 'jumpserver'@'%' identified by 'nu4x599Wq7u0Bn8EABh3J91G'; grant all on jumpserver.* to 'jumpserver'@'%'; flush privileges; ``` [配置mysql 主主模式](./docs/mysql-master-master.md) #### redis [docker-compose-redis.yml](./Dockerfile/docker-compose-redis.yml) ```sh docker-compose -f docker-compose-redis.yml up -d ``` ### 2.4 安装jms ```sh docker-compose -f docker-compose-init-db.yml up -d docker exec -i jms_core bash -c './jms upgrade_db' docker-compose docker-compose.yml up -d ``` ### 2.5 设置nginx域名反向代理 jms.conf ```conf upstream jms { server web:8088; keepalive 32; } server { listen 80; server_name jms.gitee.com; access_log /var/log/nginx/jms_302_access.log main; error_log /var/log/nginx/jms_302_error.log; return 302 https://$server_name$request_uri; } server { include ssl.d/gitee_com_ssl.conf; server_name jms.gitee.com; access_log /var/log/nginx/jms_access.log main; error_log /var/log/nginx/jms_error.log; client_max_body_size 4096m; location / { proxy_pass http://jms; proxy_http_version 1.1; proxy_buffering off; proxy_request_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } ``` 浏览器访问:https://jms.gitee.com ## 3. Helm部署 环境要求: > Kubernetes 1.20+ > Helm 3.0 ### 3.1 添加Helm源 ```sh helm repo add jumpserver https://jumpserver.github.io/helm-charts helm repo list | grep jumpserver ``` 参考文献: [官方文档](https://docs.jumpserver.org/zh/v3/installation/setup_kubernetes/helm_online_install/) [Jumpserver企业实战(一)](https://www.bgxwz.com/archives/54) *注意*:生产环境建议分布式docker部署,不建议使用helm,开发CI环境可以使用helm部署 ## oschian内部堡垒机使用 [jumpeserver-usage](docs/jumpeserver-usage.md)