[Update] 修改文档

pull/1051/head
ibuler 2018-03-01 00:13:53 +08:00
parent 13abd4c751
commit 634b36c74b
48 changed files with 1577 additions and 44 deletions

1
.gitignore vendored
View File

@ -30,3 +30,4 @@ celerybeat.pid
django.db
celerybeat-schedule.db
data/static
_build/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,33 @@
联系方式
+++++++++++++++++++++++++
QQ群
~~~~~~~~
群1: 390139816
群2: 399218702
群3: 552054376
Github
~~~~~~~~
https://github.com/jumpserver/jumpserver.git
官网
~~~~~~~~
http://www.jumpserver.org
Demo
~~~~~~~~
http://demo.jumpserver.org:8080
邮件
~~~~~~~~
ibuler#fit2cloud.com (#替换为@)

View File

@ -1,2 +1,13 @@
贡献者
++++++++++++++++++++++++
++++++++++++++++++++++++
感谢一下朋友为Jumpserver做出的贡献世界因你们而不同排名不分先后
- **小彧 <李磊>** Django资深开发者为用户模块贡献了很多代码
- **sofia <周小侠>** 资深前端工程师, 前端代码贡献者
- **liuz <刘正> 全栈工程师** 编写了Web terminal大部分代码
- **jiaxiangkong <陈尚委>** Jumpserver测试运营
- **halcyon <王墉>** DevOps 资深开发者, 0.3.2 核心开发者之一
- **yumaojun03 <喻茂峻>** DevOps 资深开发者擅长Python, Go以及PAAS平台开发
- **kelianchun <柯连春>** DevOps 资产开发者fix了很多bug

View File

@ -1,2 +1,12 @@
开发指南
-------------------
开发文档
======================================
.. toctree::
:maxdepth: 1
:caption: 开发文档
api_style_guide
python_style_guide
project_structure

View File

@ -28,7 +28,7 @@ Jumpserver 支持容器化部署windowsLDAP, s3, elasticsearch存储等功
.. toctree::
:maxdepth: 1
:maxdepth: 2
:caption: 文档:
installation

View File

@ -6,3 +6,4 @@
quickstart
step_by_step
upgrade

View File

@ -1,7 +1,10 @@
快速安装
==========================
Jumpserver 封装了一个All in one Docker可以快速启动。
Jumpserver 封装了一个All in one Docker可以快速启动。该镜像集成了所有需要的组件可以使用外置db和redis
Tips: 不建议在生产中使用
Docker 安装见: `Docker官方安装文档 <https://docs.docker.com/install/>`_
@ -17,4 +20,29 @@ Docker 安装见: `Docker官方安装文档 <https://docs.docker.com/install/>`_
浏览器访问: http://localhost:8080
ssh访问: ssh -p 2222 localhost
ssh访问: ssh -p 2222 localhost
额外环境变量
```````````````
- DB_ENGINE = mysql
- DB_HOST = mysql_host
- DB_PORT = 3306
- DB_USER = xxx
- DB_PASSWORD = xxxx
- DB_NAME = jumpserver
- REDIS_HOST = ''
- REDIS_PORT = ''
- REDIS_PASSWORD = ''
::
docker run -p 8080:80 -p 2222:2222 -e DB_ENGINE=mysql -e DB_HOST=192.168.1.1 -e DB_PORT=3306 -e DB_USER=root -e DB_PASSWORD=xxx -e DB_NAME=jumpserver jumpserver/jumpserver:0.5.0-beta2
仓库地址
```````````````
https://github.com/jumpserver/Dockerfile

View File

@ -1,2 +1,294 @@
一步一步安装
--------------------------
环境
~~~~
- 系统: CentOS 7
- IP: 192.168.244.144
- 关闭 selinux和防火墙
::
# CentOS 7
$ setenforce 0 # 可以设置配置文件永久关闭
$ systemctl stop iptables.service
$ systemctl stop firewalld.service
# CentOS6
$ setenforce 0
$ service iptables stop
一. 准备Python3和Python虚拟环境
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**1.1 安装依赖包**
::
$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release
**1.2 编译安装**
::
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
$ tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
$ ./configure && make && make install
**1.3 建立python虚拟环境**
因为CentOS
6/7自带的是Python2而Yum等工具依赖原来的Python为了不扰乱原来的环境我们来使用Python虚拟环境
::
$ cd /opt
$ python3 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功以后运行jumpserver都要先运行以上source命令以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]#
二. 安装Jumpserver 0.5.0
~~~~~~~~~~~~~~~~~~~~~~~~
**2.1 下载或clone项目**
项目提交较多git clone时较大你可以选择去github项目页面直接下载
zip包我的网速好我直接clone了
::
$ cd /opt/
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout dev
**2.2 安装依赖rpm包**
::
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续
**2.3 安装python库依赖**
::
$ pip install -r requirements.txt # 不要指定-i参数因为镜像上可能没有最新的包如果没有任何报错请继续
**2.4 安装Redis, jumpserver使用redis做cache和celery broker**
::
$ yum -y install redis
$ service redis start
**2.5 安装MySQL**
本教程使用mysql作为数据库如果不使用mysql可以跳过相关mysql安装和配置
::
# centos7
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
$ service mariadb start
# centos6
$ yum -y install mysql mysql-devel mysql-server
$ service mysqld start
**2.6 创建数据库 jumpserver并授权**
::
$ mysql
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';
**2.7 修改jumpserver配置文件**
::
$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi config.py # 我们计划修改 DevelopmentConfig中的配置因为默认jumpserver是使用该配置它继承自Config
**注意: 配置文件是python格式不要用tab而要用空格** **注意:
配置文件是python格式不要用tab而要用空格** **注意:
配置文件是python格式不要用tab而要用空格**
::
class DevelopmentConfig(Config):
DEBUG = True
DB_ENGINE = 'mysql'
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'jumpserver'
DB_PASSWORD = 'somepassword'
DB_NAME = 'jumpserver'
...
config = DevelopmentConfig() # 确保使用的是刚才设置的配置文件
**2.8 生成数据库表结构和初始化数据**
::
$ cd /opt/jumpserver/utils
$ bash make_migrations.sh
**2.9 运行Jumpserver**
::
$ cd /opt/jumpserver
$ python run_server.py all
运行不报错,请浏览器访问 http://192.168.244.144:8080/
(这里只是jumpserver, 没有web terminal,所以访问web terminal会报错)
账号:admin 密码: admin
三. 安装 SSH Server和Web Socket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**3.1 下载clone项目**
新开一个终端,连接测试机,别忘了 source /opt/py3/bin/activate
::
$ cd /opt
$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout dev
**3.2 安装依赖**
::
$ cd /opt/coco/requirements $ yum -y install $(cat rpm_requirements.txt) $ pip install requirements.txt
**3.2 安装依赖**
::
$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
**3.3 查看配置文件并运行**
::
$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py
这时需要去
jumpserver管理后台-终端-终端(http://192.168.244.144:8080/terminal/terminal/)接受coco的注册
::
Coco version 0.4.0, more see https://www.jumpserver.org
Starting ssh server at 0.0.0.0:2222
Quit the server with CONTROL-C.
**3.4 测试连接**
::
$ ssh -p2222 admin@192.168.244.144
密码: admin
如果是用在windows下Xshell terminal登录语法如下
$ssh admin@192.168.244.144 2222
密码: admin
如果能登陆代表部署成功
四. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Luna已改为纯前端需要nginx来运行访问
下载 release包直接解压不需要编译
访问 https://github.com/jumpserver/luna/releases下载对应release包
4.1 解压luna
::
$ pwd
/opt/
$ tar xvf luna.tar.gz
$ ls /opt/luna
...
五. 安装Windows支持组件
~~~~~~~~~~~~~~~~~~~~~~~
使用docker启动 guacamole
.. code:: shell
docker run \
-p 8080:8080 \
-e JUMPSERVER_SERVER=http://<jumpserver>:8080 \
jumpserver/guacamole
这里所需要注意的是guacamole暴露出来的端口是8080若与jumpserver部署在同一主机上自定义一下。
修改JUMPSERVER_SERVER的配置填上jumpserver的内网地址
六. 配置 nginx 整合各组件
~~~~~~~~~~~~~~~~~~~~~~~~~
6.1 安装nginx 根据喜好选择安装方式和版本
6.2 配置文件
::
server {
listen 80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}
location /static/ {
root /opt/jumpserver/data/;
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /guacamole/ {
proxy_pass http://<guacamole>:8080/;
}
location / {
proxy_pass http://localhost:8080;
}
}
6.3 运行 nginx
6.4 访问 http://192.168.244.144

View File

@ -96,7 +96,6 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>

View File

@ -95,7 +95,6 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>

View File

@ -96,7 +96,6 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>

View File

@ -91,9 +91,16 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">联系方式</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">联系方式</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#qq">QQ群</a></li>
<li class="toctree-l2"><a class="reference internal" href="#github">Github</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">官网</a></li>
<li class="toctree-l2"><a class="reference internal" href="#demo">Demo</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">邮件</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>
@ -160,6 +167,28 @@
<div class="section" id="id1">
<h1>联系方式<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="qq">
<h2>QQ群<a class="headerlink" href="#qq" title="永久链接至标题"></a></h2>
<p>群1: 390139816
群2: 399218702
群3: 552054376</p>
</div>
<div class="section" id="github">
<h2>Github<a class="headerlink" href="#github" title="永久链接至标题"></a></h2>
<p><a class="reference external" href="https://github.com/jumpserver/jumpserver.git">https://github.com/jumpserver/jumpserver.git</a></p>
</div>
<div class="section" id="id2">
<h2>官网<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<p><a class="reference external" href="http://www.jumpserver.org">http://www.jumpserver.org</a></p>
</div>
<div class="section" id="demo">
<h2>Demo<a class="headerlink" href="#demo" title="永久链接至标题"></a></h2>
<p><a class="reference external" href="http://demo.jumpserver.org:8080">http://demo.jumpserver.org:8080</a></p>
</div>
<div class="section" id="id3">
<h2>邮件<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<p>ibuler#fit2cloud.com (#替换为&#64;)</p>
</div>
</div>

View File

@ -37,7 +37,7 @@
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="jumpserver 0.5.0 文档" href="index.html"/>
<link rel="next" title="联系方式" href="contact.html"/>
<link rel="prev" title="开发指南" href="development.html"/>
<link rel="prev" title="项目骨架" href="project_structure.html"/>
<script src="_static/js/modernizr.min.js"></script>
@ -91,7 +91,7 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -160,6 +160,16 @@
<div class="section" id="id1">
<h1>贡献者<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<p>感谢一下朋友为Jumpserver做出的贡献世界因你们而不同排名不分先后</p>
<ul class="simple">
<li><strong>小彧 &lt;李磊&gt;</strong> Django资深开发者为用户模块贡献了很多代码</li>
<li><strong>sofia &lt;周小侠&gt;</strong> 资深前端工程师, 前端代码贡献者</li>
<li><strong>liuz &lt;刘正&gt; 全栈工程师</strong> 编写了Web terminal大部分代码</li>
<li><strong>jiaxiangkong &lt;陈尚委&gt;</strong> Jumpserver测试运营</li>
<li><strong>halcyon &lt;王墉&gt;</strong> DevOps 资深开发者, 0.3.2 核心开发者之一</li>
<li><strong>yumaojun03 &lt;喻茂峻&gt;</strong> DevOps 资深开发者擅长Python, Go以及PAAS平台开发</li>
<li><strong>kelianchun &lt;柯连春&gt;</strong> DevOps 资产开发者fix了很多bug</li>
</ul>
</div>
@ -175,7 +185,7 @@
<a href="contact.html" class="btn btn-neutral float-right" title="联系方式" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="development.html" class="btn btn-neutral" title="开发指南" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="project_structure.html" class="btn btn-neutral" title="项目骨架" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>开发指南 &mdash; jumpserver 0.5.0 文档</title>
<title>开发文档 &mdash; jumpserver 0.5.0 文档</title>
@ -36,7 +36,7 @@
href="genindex.html"/>
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="jumpserver 0.5.0 文档" href="index.html"/>
<link rel="next" title="贡献者" href="contributor.html"/>
<link rel="next" title="REST API规范约定" href="api_style_guide.html"/>
<link rel="prev" title="用户使用文档" href="user_guide.html"/>
@ -91,7 +91,12 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">开发指南</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">开发文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="api_style_guide.html">REST API规范约定</a></li>
<li class="toctree-l2"><a class="reference internal" href="python_style_guide.html">Jumpserver 项目规范Draft</a></li>
<li class="toctree-l2"><a class="reference internal" href="project_structure.html">项目骨架</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -139,7 +144,7 @@
<li><a href="index.html">Docs</a> &raquo;</li>
<li>开发指南</li>
<li>开发文档</li>
<li class="wy-breadcrumbs-aside">
@ -159,7 +164,15 @@
<div itemprop="articleBody">
<div class="section" id="id1">
<h1>开发指南<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<h1>开发文档<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">开发文档</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api_style_guide.html">REST API规范约定</a></li>
<li class="toctree-l1"><a class="reference internal" href="python_style_guide.html">Jumpserver 项目规范Draft</a></li>
<li class="toctree-l1"><a class="reference internal" href="project_structure.html">项目骨架</a></li>
</ul>
</div>
</div>
@ -172,7 +185,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="contributor.html" class="btn btn-neutral float-right" title="贡献者" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="api_style_guide.html" class="btn btn-neutral float-right" title="REST API规范约定" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="user_guide.html" class="btn btn-neutral" title="用户使用文档" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

View File

@ -90,7 +90,6 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">FAQ</a></li>

View File

@ -90,7 +90,7 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>

View File

@ -90,7 +90,7 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -171,12 +171,33 @@
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">文档:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="quickstart.html">快速安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="step_by_step.html">一步一步安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="upgrade.html">升级</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="admin_user.html">用户模块</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_asset.html">资产管理模块</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="api_style_guide.html">REST API规范约定</a></li>
<li class="toctree-l2"><a class="reference internal" href="python_style_guide.html">Jumpserver 项目规范Draft</a></li>
<li class="toctree-l2"><a class="reference internal" href="project_structure.html">项目骨架</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contact.html#qq">QQ群</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#github">Github</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#id2">官网</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#demo">Demo</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#id3">邮件</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>
</div>

View File

@ -91,11 +91,12 @@
<li class="toctree-l1 current"><a class="current reference internal" href="#">安装文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="quickstart.html">快速安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="step_by_step.html">一步一步安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="upgrade.html">升级</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -168,6 +169,7 @@
<ul>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">快速安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="step_by_step.html">一步一步安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="upgrade.html">升级</a></li>
</ul>
</div>
</div>

Binary file not shown.

View File

@ -93,6 +93,8 @@
<li class="toctree-l2 current"><a class="current reference internal" href="#">快速安装</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2">快速启动</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">访问</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id4">额外环境变量</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id5">仓库地址</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="step_by_step.html">一步一步安装</a></li>
@ -100,7 +102,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -171,7 +173,8 @@
<div class="section" id="id1">
<h1>快速安装<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<p>Jumpserver 封装了一个All in one Docker可以快速启动。</p>
<p>Jumpserver 封装了一个All in one Docker可以快速启动。该镜像集成了所有需要的组件可以使用外置db和redis</p>
<p>Tips: 不建议在生产中使用</p>
<p>Docker 安装见: <a class="reference external" href="https://docs.docker.com/install/">Docker官方安装文档</a></p>
<div class="section" id="id2">
<h2>快速启动<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
@ -185,6 +188,29 @@
<p>浏览器访问: <a class="reference external" href="http://localhost:8080">http://localhost:8080</a></p>
<p>ssh访问: ssh -p 2222 localhost</p>
</div>
<div class="section" id="id4">
<h2>额外环境变量<a class="headerlink" href="#id4" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>DB_ENGINE = mysql</li>
<li>DB_HOST = mysql_host</li>
<li>DB_PORT = 3306</li>
<li>DB_USER = xxx</li>
<li>DB_PASSWORD = xxxx</li>
<li>DB_NAME = jumpserver</li>
<li>REDIS_HOST = </li>
<li>REDIS_PORT = </li>
<li>REDIS_PASSWORD = </li>
</ul>
<blockquote>
<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">p</span> <span class="mi">8080</span><span class="p">:</span><span class="mi">80</span> <span class="o">-</span><span class="n">p</span> <span class="mi">2222</span><span class="p">:</span><span class="mi">2222</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_ENGINE</span><span class="o">=</span><span class="n">mysql</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_HOST</span><span class="o">=</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">1.1</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_PORT</span><span class="o">=</span><span class="mi">3306</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_USER</span><span class="o">=</span><span class="n">root</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_PASSWORD</span><span class="o">=</span><span class="n">xxx</span> <span class="o">-</span><span class="n">e</span> <span class="n">DB_NAME</span><span class="o">=</span><span class="n">jumpserver</span> <span class="n">jumpserver</span><span class="o">/</span><span class="n">jumpserver</span><span class="p">:</span><span class="mf">0.5</span><span class="o">.</span><span class="mi">0</span><span class="o">-</span><span class="n">beta2</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="id5">
<h2>仓库地址<a class="headerlink" href="#id5" title="永久链接至标题"></a></h2>
<p><a class="reference external" href="https://github.com/jumpserver/Dockerfile">https://github.com/jumpserver/Dockerfile</a></p>
</div>
</div>

View File

@ -89,7 +89,7 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>

File diff suppressed because one or more lines are too long

View File

@ -37,7 +37,7 @@
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="jumpserver 0.5.0 文档" href="index.html"/>
<link rel="up" title="安装文档" href="installation.html"/>
<link rel="next" title="管理文档" href="admin_guide.html"/>
<link rel="next" title="升级" href="upgrade.html"/>
<link rel="prev" title="快速安装" href="quickstart.html"/>
@ -91,12 +91,22 @@
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="installation.html">安装文档</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="quickstart.html">快速安装</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">一步一步安装</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">一步一步安装</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2">环境</a></li>
<li class="toctree-l3"><a class="reference internal" href="#python3python">一. 准备Python3和Python虚拟环境</a></li>
<li class="toctree-l3"><a class="reference internal" href="#jumpserver-0-5-0">二. 安装Jumpserver 0.5.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ssh-serverweb-socket-server-coco">三. 安装 SSH Server和Web Socket Server: Coco</a></li>
<li class="toctree-l3"><a class="reference internal" href="#web-terminal-luna">四. 安装 Web Terminal 前端: Luna</a></li>
<li class="toctree-l3"><a class="reference internal" href="#windows">五. 安装Windows支持组件</a></li>
<li class="toctree-l3"><a class="reference internal" href="#nginx">六. 配置 nginx 整合各组件</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="upgrade.html">升级</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -167,6 +177,239 @@
<div class="section" id="id1">
<h1>一步一步安装<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<div class="section" id="id2">
<h2>环境<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul class="simple">
<li>系统: CentOS 7</li>
<li>IP: 192.168.244.144</li>
<li>关闭 selinux和防火墙</li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># CentOS 7
$ setenforce 0 # 可以设置配置文件永久关闭
$ systemctl stop iptables.service
$ systemctl stop firewalld.service
# CentOS6
$ setenforce 0
$ service iptables stop
</pre></div>
</div>
</div>
<div class="section" id="python3python">
<h2>一. 准备Python3和Python虚拟环境<a class="headerlink" href="#python3python" title="永久链接至标题"></a></h2>
<p><strong>1.1 安装依赖包</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release
</pre></div>
</div>
<p><strong>1.2 编译安装</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
$ tar xvf Python-3.6.1.tar.xz &amp;&amp; cd Python-3.6.1
$ ./configure &amp;&amp; make &amp;&amp; make install
</pre></div>
</div>
<p><strong>1.3 建立python虚拟环境</strong></p>
<p>因为CentOS
6/7自带的是Python2而Yum等工具依赖原来的Python为了不扰乱原来的环境我们来使用Python虚拟环境</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt
$ python3 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功以后运行jumpserver都要先运行以上source命令以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]#
</pre></div>
</div>
</div>
<div class="section" id="jumpserver-0-5-0">
<h2>二. 安装Jumpserver 0.5.0<a class="headerlink" href="#jumpserver-0-5-0" title="永久链接至标题"></a></h2>
<p><strong>2.1 下载或clone项目</strong></p>
<p>项目提交较多git clone时较大你可以选择去github项目页面直接下载
zip包我的网速好我直接clone了</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git &amp;&amp; cd jumpserver &amp;&amp; git checkout dev
</pre></div>
</div>
<p><strong>2.2 安装依赖rpm包</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续
</pre></div>
</div>
<p><strong>2.3 安装python库依赖</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ pip install -r requirements.txt # 不要指定-i参数因为镜像上可能没有最新的包如果没有任何报错请继续
</pre></div>
</div>
<p><strong>2.4 安装Redis, jumpserver使用redis做cache和celery broker</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ yum -y install redis
$ service redis start
</pre></div>
</div>
<p><strong>2.5 安装MySQL</strong></p>
<p>本教程使用mysql作为数据库如果不使用mysql可以跳过相关mysql安装和配置</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># centos7
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
$ service mariadb start
# centos6
$ yum -y install mysql mysql-devel mysql-server
$ service mysqld start
</pre></div>
</div>
<p><strong>2.6 创建数据库 jumpserver并授权</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ mysql
&gt; create database jumpserver default charset &#39;utf8&#39;;
&gt; grant all on jumpserver.* to &#39;jumpserver&#39;@&#39;127.0.0.1&#39; identified by &#39;somepassword&#39;;
</pre></div>
</div>
<p><strong>2.7 修改jumpserver配置文件</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi config.py # 我们计划修改 DevelopmentConfig中的配置因为默认jumpserver是使用该配置它继承自Config
</pre></div>
</div>
<p><strong>注意: 配置文件是python格式不要用tab而要用空格</strong> <strong>注意:
配置文件是python格式不要用tab而要用空格</strong> <strong>注意:
配置文件是python格式不要用tab而要用空格</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">DevelopmentConfig</span><span class="p">(</span><span class="n">Config</span><span class="p">):</span>
<span class="n">DEBUG</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">DB_ENGINE</span> <span class="o">=</span> <span class="s1">&#39;mysql&#39;</span>
<span class="n">DB_HOST</span> <span class="o">=</span> <span class="s1">&#39;127.0.0.1&#39;</span>
<span class="n">DB_PORT</span> <span class="o">=</span> <span class="mi">3306</span>
<span class="n">DB_USER</span> <span class="o">=</span> <span class="s1">&#39;jumpserver&#39;</span>
<span class="n">DB_PASSWORD</span> <span class="o">=</span> <span class="s1">&#39;somepassword&#39;</span>
<span class="n">DB_NAME</span> <span class="o">=</span> <span class="s1">&#39;jumpserver&#39;</span>
<span class="o">...</span>
<span class="n">config</span> <span class="o">=</span> <span class="n">DevelopmentConfig</span><span class="p">()</span> <span class="c1"># 确保使用的是刚才设置的配置文件</span>
</pre></div>
</div>
<p><strong>2.8 生成数据库表结构和初始化数据</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/jumpserver/utils
$ bash make_migrations.sh
</pre></div>
</div>
<p><strong>2.9 运行Jumpserver</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/jumpserver
$ python run_server.py all
</pre></div>
</div>
<p>运行不报错,请浏览器访问 <a class="reference external" href="http://192.168.244.144:8080/">http://192.168.244.144:8080/</a>
(这里只是jumpserver, 没有web terminal,所以访问web terminal会报错)</p>
<p>账号:admin 密码: admin</p>
</div>
<div class="section" id="ssh-serverweb-socket-server-coco">
<h2>三. 安装 SSH Server和Web Socket Server: Coco<a class="headerlink" href="#ssh-serverweb-socket-server-coco" title="永久链接至标题"></a></h2>
<p><strong>3.1 下载clone项目</strong></p>
<p>新开一个终端,连接测试机,别忘了 source /opt/py3/bin/activate</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt
$ git clone https://github.com/jumpserver/coco.git &amp;&amp; cd coco &amp;&amp; git checkout dev
</pre></div>
</div>
<p><strong>3.2 安装依赖</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/coco/requirements $ yum -y install $(cat rpm_requirements.txt) $ pip install requirements.txt
</pre></div>
</div>
<p><strong>3.2 安装依赖</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
</pre></div>
</div>
<p><strong>3.3 查看配置文件并运行</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py
</pre></div>
</div>
<p>这时需要去
jumpserver管理后台-终端-终端(<a class="reference external" href="http://192.168.244.144:8080/terminal/terminal/">http://192.168.244.144:8080/terminal/terminal/</a>)接受coco的注册</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Coco</span> <span class="n">version</span> <span class="mf">0.4</span><span class="o">.</span><span class="mi">0</span><span class="p">,</span> <span class="n">more</span> <span class="n">see</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="o">.</span><span class="n">jumpserver</span><span class="o">.</span><span class="n">org</span>
<span class="n">Starting</span> <span class="n">ssh</span> <span class="n">server</span> <span class="n">at</span> <span class="mf">0.0</span><span class="o">.</span><span class="mf">0.0</span><span class="p">:</span><span class="mi">2222</span>
<span class="n">Quit</span> <span class="n">the</span> <span class="n">server</span> <span class="k">with</span> <span class="n">CONTROL</span><span class="o">-</span><span class="n">C</span><span class="o">.</span>
</pre></div>
</div>
<p><strong>3.4 测试连接</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ ssh -p2222 admin@192.168.244.144
密码: admin
如果是用在windows下Xshell terminal登录语法如下
$ssh admin@192.168.244.144 2222
密码: admin
如果能登陆代表部署成功
</pre></div>
</div>
</div>
<div class="section" id="web-terminal-luna">
<h2>四. 安装 Web Terminal 前端: Luna<a class="headerlink" href="#web-terminal-luna" title="永久链接至标题"></a></h2>
<p>Luna已改为纯前端需要nginx来运行访问</p>
<p>下载 release包直接解压不需要编译</p>
<p>访问 <a class="reference external" href="https://github.com/jumpserver/luna/releases">https://github.com/jumpserver/luna/releases</a>下载对应release包</p>
<p>4.1 解压luna</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ pwd
/opt/
$ tar xvf luna.tar.gz
$ ls /opt/luna
...
</pre></div>
</div>
</div>
<div class="section" id="windows">
<h2>五. 安装Windows支持组件<a class="headerlink" href="#windows" title="永久链接至标题"></a></h2>
<p>使用docker启动 guacamole</p>
<div class="code shell highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">run</span> \
<span class="o">-</span><span class="n">p</span> <span class="mi">8080</span><span class="p">:</span><span class="mi">8080</span> \
<span class="o">-</span><span class="n">e</span> <span class="n">JUMPSERVER_SERVER</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//&lt;</span><span class="n">jumpserver</span><span class="o">&gt;</span><span class="p">:</span><span class="mi">8080</span> \
<span class="n">jumpserver</span><span class="o">/</span><span class="n">guacamole</span>
</pre></div>
</div>
<p>这里所需要注意的是guacamole暴露出来的端口是8080若与jumpserver部署在同一主机上自定义一下。</p>
<p>修改JUMPSERVER_SERVER的配置填上jumpserver的内网地址</p>
</div>
<div class="section" id="nginx">
<h2>六. 配置 nginx 整合各组件<a class="headerlink" href="#nginx" title="永久链接至标题"></a></h2>
<p>6.1 安装nginx 根据喜好选择安装方式和版本</p>
<p>6.2 配置文件</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>server {
listen 80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}
location /static/ {
root /opt/jumpserver/data/;
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection &quot;upgrade&quot;;
}
location /guacamole/ {
proxy_pass http://&lt;guacamole&gt;:8080/;
}
location / {
proxy_pass http://localhost:8080;
}
}
</pre></div>
</div>
<p>6.3 运行 nginx</p>
<p>6.4 访问 <a class="reference external" href="http://192.168.244.144">http://192.168.244.144</a></p>
</div>
</div>
@ -179,7 +422,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="admin_guide.html" class="btn btn-neutral float-right" title="管理文档" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="upgrade.html" class="btn btn-neutral float-right" title="升级" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="quickstart.html" class="btn btn-neutral" title="快速安装" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

View File

@ -36,7 +36,7 @@
href="genindex.html"/>
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="jumpserver 0.5.0 文档" href="index.html"/>
<link rel="next" title="开发指南" href="development.html"/>
<link rel="next" title="贡献者" href="contributor.html"/>
<link rel="prev" title="资产管理模块" href="admin_asset.html"/>
@ -91,7 +91,6 @@
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
@ -172,7 +171,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="development.html" class="btn btn-neutral float-right" title="开发指南" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="contributor.html" class="btn btn-neutral float-right" title="贡献者" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="admin_asset.html" class="btn btn-neutral" title="资产管理模块" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

166
docs/api_style_guide.rst Normal file
View File

@ -0,0 +1,166 @@
REST API规范约定
----------------
这里仅考虑REST API的基本情况。参考
`RESTful API 设计指南`_
`github api文档`_
协议
~~~~
API与用户的通信协议总是使用HTTPs协议。
域名
~~~~
这版api相对简单, 没有前后端分离, 没有独立app, 所以放在主域名下
::
https://example.org/api/
版本
~~~~
将API的版本号放入URL中, 由于一个项目多个app所以Jumpserver使用以下风格,
将版本号放到app后面
::
https://example.com/api/:app:/:version:/:resource:
https://example.com/api/assets/v1.0/assets [GET, POST]
https://example.com/api/assets/v1.0/assets/1 [GET, PUT, DELETE]
路径
~~~~
路径又称“终点”endpoint表示API的具体网址。
在RESTful架构中每个网址代表一种资源resource所以网址中不能有动词只能有名词而且所用的名词往往与数据库的表格名对应。一般来说数据库中的表都是同种记录的“集合”collection所以API中的名词也应该使用复数。
举例来说 cmdb中的assets列表, idc列表
::
https://example.com/api/:app:/:version:/:resource:
https://example.com/api/assets/v1.0/assets [GET, POST]
https://example.com/api/assets/v1.0/assets/1 [GET, PUT, DELETE]
https://example.com/api/assets/v1.0/idcs [GET, POST]
一般性的增删查改(CRUD)API完全使用HTTP
method加上url提供的语义url中的可变部分比如上面提到的
一般用来传递该API操作的核心实体对象的唯一ID如果有更多的参数需要提供GET方法请使用url
parameter
(例如:“?client_id=xxxxx&app_id=xxxxxx”)PUT/POST/DELETE方法请使用请求体传递参数。
HTTP Method
~~~~~~~~~~~
对于资源的具体操作类型由HTTP动词表示。
常用的HTTP动词有下面五个括号里是对应的SQL命令
- GETSELECT从服务器取出资源一项或多项
- POSTCREATE在服务器新建一个资源。
- PUTUPDATE在服务器更新资源客户端提供改变后的完整资源, 幂等
- PATCHUPDATE在服务器更新资源客户端提供改变的属性
- DELETEDELETE从服务器删除资源。
.. _RESTful API 设计指南: http://www.ruanyifeng.com/blog/2014/05/restful_api.html
.. _github api文档: https://developer.github.com/v3/
过滤信息
~~~~~~~~
常见参数约定
::
?keyword=localhost 模糊搜索
?limit=10指定返回记录的数量
?offset=10指定返回记录的开始位置。
?page=2&per_page=100指定第几页以及每页的记录数。
?sort=name&order=asc指定返回结果按照哪个属性排序以及排序顺序。
?asset_id=1指定筛选条件
状态码
~~~~~~
服务器向用户返回的状态码和提示信息常见的有以下一些方括号中是该状态码对应的HTTP动词
- 200 OK -
[GET]服务器成功返回用户请求的数据该操作是幂等的Idempotent
- 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
- 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT - [DELETE]:用户删除数据成功。
- 400 INVALID REQUEST -
[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
- 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
- 403 Forbidden - [*]
表示用户得到授权与401错误相对但是访问是被禁止的。
- 404 NOT FOUND -
[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
- 406 Not Acceptable -
[GET]用户请求的格式不可得比如用户请求JSON格式但是只有XML格式
- 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
- 422 Unprocesable entity - [POST/PUT/PATCH]
当创建一个对象时,发生一个验证错误。
- 500 INTERNAL SERVER ERROR -
[*]:服务器发生错误,用户将无法判断发出的请求是否成功。
错误处理
~~~~~~~~
如果状态码是4xx就应该向用户返回出错信息。一般来说返回的信息中将error作为键名出错信息作为键值即可。
::
{
error: "Invalid API key"
}
返回结果
~~~~~~~~
针对不同操作,服务器向用户返回的结果应该符合以下规范。
::
GET /collection返回资源对象的列表数组
GET /collection/resource返回单个资源对象
POST /collection返回新生成的资源对象
PUT /collection/resource返回完整的资源对象
PATCH /collection/resource返回完整的资源对象
DELETE /collection/resource返回一个空文档
Hypermedia API
~~~~~~~~~~~~~~
RESTful
API最好做到Hypermedia即返回结果中提供链接连向其他API方法使得用户不查文档也知道下一步应该做什么。
比如当用户向api.example.com的根目录发出请求会得到这样一个文档。
::
{"link": {
"rel": "collection https://www.example.com/zoos",
"href": "https://api.example.com/zoos",
"title": "List of zoos",
"type": "application/vnd.yourformat+json"
}}
上面代码表示文档中有一个link属性用户读取这个属性就知道下一步该调用什么API了。
rel表示这个API与当前网址的关系collection关系并给出该collection的网址
href表示API的路径title表示API的标题type表示返回类型。 Hypermedia
API的设计被称为HATEOAS。 Github的API就是这种设计.
其它
~~~~
1API的身份认证应该使用OAuth 2.0框架。
2服务器返回的数据格式应该尽量使用JSON

View File

@ -70,6 +70,7 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
html_show_sourcelink = True
# -- Options for HTML output -------------------------------------------------

View File

@ -1,3 +1,33 @@
联系方式
+++++++++++++++++++++++++
QQ群
~~~~~~~~
群1: 390139816
群2: 399218702
群3: 552054376
Github
~~~~~~~~
https://github.com/jumpserver/jumpserver.git
官网
~~~~~~~~
http://www.jumpserver.org
Demo
~~~~~~~~
http://demo.jumpserver.org:8080
邮件
~~~~~~~~
ibuler#fit2cloud.com (#替换为@)

View File

@ -1,2 +1,13 @@
贡献者
++++++++++++++++++++++++
++++++++++++++++++++++++
感谢一下朋友为Jumpserver做出的贡献世界因你们而不同排名不分先后
- **小彧 <李磊>** Django资深开发者为用户模块贡献了很多代码
- **sofia <周小侠>** 资深前端工程师, 前端代码贡献者
- **liuz <刘正> 全栈工程师** 编写了Web terminal大部分代码
- **jiaxiangkong <陈尚委>** Jumpserver测试运营
- **halcyon <王墉>** DevOps 资深开发者, 0.3.2 核心开发者之一
- **yumaojun03 <喻茂峻>** DevOps 资深开发者擅长Python, Go以及PAAS平台开发
- **kelianchun <柯连春>** DevOps 资产开发者fix了很多bug

View File

@ -1,2 +1,12 @@
开发指南
-------------------
开发文档
======================================
.. toctree::
:maxdepth: 1
:caption: 开发文档
api_style_guide
python_style_guide
project_structure

View File

@ -28,7 +28,7 @@ Jumpserver 支持容器化部署windowsLDAP, s3, elasticsearch存储等功
.. toctree::
:maxdepth: 1
:maxdepth: 2
:caption: 文档:
installation

View File

@ -6,3 +6,4 @@
quickstart
step_by_step
upgrade

View File

@ -0,0 +1,51 @@
项目骨架
--------
说明如下:
::
.
├── config-example.py // 配置文件样例
├── docs // 所有doc文件放到该目录
│ └── README.md
├── LICENSE
├── README.md
├── install // 安装说明
├── logs // 日志目录
├── apps // 管理后台目录也是各app所在目录
│ └── assets // app目录
│ │ ├── admin.py
│ │ ├── apps.py // 新版本django app设置文件
│ │ ├── api.py // api文件
│ │ ├── __init__.py // 对外暴露的接口放到该文件中方便别的app引用
│ │ ├── migrations // models Migrations版本控制目录
│ │ │ └── __init__.py
│ │ ├── models.py // 数据模型目录
│ │ ├── static // app下静态资源目录,如果需要
│ │ │ └── assets // 多一层目录,防止资源重名
│ │ │ └── some_image.png
│ │ ├── templates // app下模板目录
│ │ │ └── assets // 多一层目录,防止资源重名
│ │ │ └── asset_list.html
│ │ ├── templatetags // 模板标签目录
│ │ ├── tests.py // 测试用例文件
│ │ ├── urls.py // urlconf文件
│ │ ├── utils.py // 将views和api可复用的代码放在这里, api和views只是请求和返回不同
│ │ └── views.py // views文件
│ ├── common
│ │ ├── templatetags // 通用template tag
│ │ ├── utils.py // 通用的函数方法
│ │ └── views.py
│ ├── fixtures // 初始化数据目录
│ │ ├── init.json // 初始化项目数据库
│ │ └── fake.json // 生成大量测试数据
│ ├── jumpserver // 项目设置目录
│ │ ├── __init__.py
│ │ ├── settings.py // 项目设置文件
│ │ ├── urls.py // 项目入口urlconf
│ │ └── wsgi.py
│ ├── manage.py
│ ├── static // 项目静态资源目录
│ ├── i18n // 项目多语言目录
│ └── templates // 项目模板目录

216
docs/python_style_guide.rst Normal file
View File

@ -0,0 +1,216 @@
Jumpserver 项目规范Draft
============================
语言框架
--------
1. Python 3.6.1 (当前最新)
2. Django 1.11 (当前最新)
3. Flask 0.12 Luna (当前最新)
4. Paramiko 2.12 Coco (当前最新)
Django规范
----------
1. 尽量使用Class Base View编程更少代码
2. 使用Django Form
3. 每个url独立命名不要硬编码同理static也是
4. 数据库表名手动指定,不要使用默认
5. 代码优雅简洁
6. 注释明确优美
7. 测试案例尽可能完整
8. 尽可能利用Django造好的轮子
代码风格
--------
Python方面大致的风格我们采用pocoo的\ `Style
Guidance`_\ ,但是有些细节部分会尽量放开 参考国内翻译
基本的代码布局
~~~~~~~~~~~~~~
缩进
^^^^
1. Python严格采用4个空格的缩进任何python代码都都必须遵守此规定。
2. web部分代码(HTML, CSS,
JavaScript)Node.js采用2空格缩进同样不使用tab (:raw-latex:`\t`)。
之所以与Python不同是因为js中有大量回调式的写法2空格可以显著降低视觉上的负担。
最大行长度
^^^^^^^^^^
按PEP8规范Python一般限制最大79个字符,
但是Django的命名,url等通常比较长,
而且21世纪都是宽屏了,所以我们限制最大120字符
**补充说明HTML代码不受此规范约束。**
长语句缩进
^^^^^^^^^^
编写长语句时,可以使用换行符()换行。在这种情况下,下一行应该与上一行的最后
一个“.”句点或“=”对齐或者是缩进4个空格符
::
this_is_a_very_long(function_call, 'with many parameters') \
.that_returns_an_object_with_an_attribute
MyModel.query.filter(MyModel.scalar > 120) \
.order_by(MyModel.name.desc()) \
.limit(10)
如果你使用括号“()”或花括号“{}”为长语句换行,那么下一行应与括号或花括号对齐:
::
this_is_a_very_long(function_call, 'with many parameters',
23, 42, 'and even more')
对于元素众多的列表或元组,在第一个“[”或“(”之后马上换行:
::
items = [
'this is the first', 'set of items', 'with more items',
'to come in this line', 'like this'
]
.. _Style Guidance: http://www.pocoo.org/internal/styleguide/
空行
^^^^
顶层函数与类之间空两行,此外都只空一行。不要在代码中使用太多的空行来区分不同的逻辑模块。
::
def hello(name):
print 'Hello %s!' % name
def goodbye(name):
print 'See you %s.' % name
class MyClass(object):
"""This is a simple docstring."""
def __init__(self, name):
self.name = name
def get_annoying_name(self):
return self.name.upper() + '!!!!111'
语句和表达式
~~~~~~~~~~~~
一般空格规则
^^^^^^^^^^^^
1. 单目运算符与运算对象之间不空格(例如,-~等),即使单目运算符位于括号内部也一样。
2. 双目运算符与运算对象之间要空格。
::
exp = -1.05
value = (item_value / item_count) * offset / exp
value = my_list[index]
value = my_dict['key']
比较
^^^^
1. 任意类型之间的比较,使用“==”和“!=”。
2. 与单例singletons进行比较时使用is和is not。
3. 永远不要与True或False进行比较例如不要这样写foo ==
False而应该这样写not foo
否定成员关系检查
^^^^^^^^^^^^^^^^
使用foo not in bar而不是not foo in bar。
命名约定
~~~~~~~~
1. 类名称采用骆驼拼写法CamelCase首字母缩略词保持大写不变HTTPWriter而不是HttpWriter
2. 变量名小写_以及_下划线lowercase_with_underscores
3. 方法与函数名小写_以及_下划线lowercase_with_underscores
4. 常量大写_以及_下划线UPPERCASE_WITH_UNDERSCORES
5. 预编译的正则表达式name_re。
6. 受保护的元素以一个下划线为前缀。双下划线前缀只有定义混入类mixin
classes时才使用。
7. 如果使用关键词keywords作为类名称应在名称后添加后置下划线trailing
underscore
允许与内建变量重名,不要在变量名后添加下划线进行区分。如果函数需要访问重名的内建变量,请将内建变量重新绑定为其他名称。
8. 命名要有寓意, 不使用拼音,不使用无意义简单字母命名 (循环中计数例外 for
i in)
9. 命名缩写要谨慎, 尽量是大家认可的缩写
函数和方法的参数:
^^^^^^^^^^^^^^^^^^
1. 类方法cls为第一个参数。
2. 实例方法self为第一个参数。
3. property函数中使用匿名函数lambdas匿名函数的第一个参数可以用x替代
例如display_name = property(lambda x: x.real_name or x.username)。
文档注释(Docstring即各方法类的说明文档注释)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所有文档字符串均以reStructuredText格式编写方便Sphinx处理。文档字符串的行数不同布局也不一样。
如果只有一行,代表字符串结束的三个引号与代表字符串开始的三个引号在同一行。
如果为多行,文档字符串中的文本紧接着代表字符串开始的三个引号编写,代表字符串结束的三个引号则自己独立成一行。
(有能力尽可能用英文, 否则请中文优雅注释)
::
def foo():
"""This is a simple docstring."""
def bar():
"""This is a longer docstring with so much information in there
that it spans three lines. In this case, the closing triple quote
is on its own line.
"""
文档字符串应分成简短摘要(尽量一行)和详细介绍。如果必要的话,摘要与详细介绍之间空一行。
模块头部
~~~~~~~~
模块文件的头部包含有utf-8编码声明如果模块中使用了非ASCII编码的字符建议进行声明以及标准的文档字符串。
::
# -*- coding: utf-8 -*-
"""
package.module
~~~~~~~~~~~~~~
A brief description goes here.
:copyright: (c) YEAR by AUTHOR.
:license: LICENSE_NAME, see LICENSE_FILE for more details.
"""
注释(comment)
~~~~~~~~~~~~~
注释的规范与文档字符串编写规范类似。二者均以reStructuredText格式编写。
如果使用注释来编写类属性的文档,请在#符号后添加一个冒号“:”。
(有能力尽可能用英文, 否则请中文优雅注释)
::
class User(object):
#: the name of the user as unicode string
name = Column(String)
#: the sha1 hash of the password + inline salt
pw_hash = Column(String)

View File

@ -20,4 +20,29 @@ Docker 安装见: `Docker官方安装文档 <https://docs.docker.com/install/>`_
浏览器访问: http://localhost:8080
ssh访问: ssh -p 2222 localhost
ssh访问: ssh -p 2222 localhost
额外环境变量
```````````````
- DB_ENGINE = mysql
- DB_HOST = mysql_host
- DB_PORT = 3306
- DB_USER = xxx
- DB_PASSWORD = xxxx
- DB_NAME = jumpserver
- REDIS_HOST = ''
- REDIS_PORT = ''
- REDIS_PASSWORD = ''
::
docker run -p 8080:80 -p 2222:2222 -e DB_ENGINE=mysql -e DB_HOST=192.168.1.1 -e DB_PORT=3306 -e DB_USER=root -e DB_PASSWORD=xxx -e DB_NAME=jumpserver jumpserver/jumpserver:0.5.0-beta2
仓库地址
```````````````
https://github.com/jumpserver/Dockerfile

View File

@ -1,2 +1,294 @@
一步一步安装
--------------------------
环境
~~~~
- 系统: CentOS 7
- IP: 192.168.244.144
- 关闭 selinux和防火墙
::
# CentOS 7
$ setenforce 0 # 可以设置配置文件永久关闭
$ systemctl stop iptables.service
$ systemctl stop firewalld.service
# CentOS6
$ setenforce 0
$ service iptables stop
一. 准备Python3和Python虚拟环境
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**1.1 安装依赖包**
::
$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release
**1.2 编译安装**
::
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
$ tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
$ ./configure && make && make install
**1.3 建立python虚拟环境**
因为CentOS
6/7自带的是Python2而Yum等工具依赖原来的Python为了不扰乱原来的环境我们来使用Python虚拟环境
::
$ cd /opt
$ python3 -m venv py3
$ source /opt/py3/bin/activate
# 看到下面的提示符代表成功以后运行jumpserver都要先运行以上source命令以下所有命令均在该虚拟环境中运行
(py3) [root@localhost py3]#
二. 安装Jumpserver 0.5.0
~~~~~~~~~~~~~~~~~~~~~~~~
**2.1 下载或clone项目**
项目提交较多git clone时较大你可以选择去github项目页面直接下载
zip包我的网速好我直接clone了
::
$ cd /opt/
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout dev
**2.2 安装依赖rpm包**
::
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续
**2.3 安装python库依赖**
::
$ pip install -r requirements.txt # 不要指定-i参数因为镜像上可能没有最新的包如果没有任何报错请继续
**2.4 安装Redis, jumpserver使用redis做cache和celery broker**
::
$ yum -y install redis
$ service redis start
**2.5 安装MySQL**
本教程使用mysql作为数据库如果不使用mysql可以跳过相关mysql安装和配置
::
# centos7
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
$ service mariadb start
# centos6
$ yum -y install mysql mysql-devel mysql-server
$ service mysqld start
**2.6 创建数据库 jumpserver并授权**
::
$ mysql
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';
**2.7 修改jumpserver配置文件**
::
$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi config.py # 我们计划修改 DevelopmentConfig中的配置因为默认jumpserver是使用该配置它继承自Config
**注意: 配置文件是python格式不要用tab而要用空格** **注意:
配置文件是python格式不要用tab而要用空格** **注意:
配置文件是python格式不要用tab而要用空格**
::
class DevelopmentConfig(Config):
DEBUG = True
DB_ENGINE = 'mysql'
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'jumpserver'
DB_PASSWORD = 'somepassword'
DB_NAME = 'jumpserver'
...
config = DevelopmentConfig() # 确保使用的是刚才设置的配置文件
**2.8 生成数据库表结构和初始化数据**
::
$ cd /opt/jumpserver/utils
$ bash make_migrations.sh
**2.9 运行Jumpserver**
::
$ cd /opt/jumpserver
$ python run_server.py all
运行不报错,请浏览器访问 http://192.168.244.144:8080/
(这里只是jumpserver, 没有web terminal,所以访问web terminal会报错)
账号:admin 密码: admin
三. 安装 SSH Server和Web Socket Server: Coco
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**3.1 下载clone项目**
新开一个终端,连接测试机,别忘了 source /opt/py3/bin/activate
::
$ cd /opt
$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout dev
**3.2 安装依赖**
::
$ cd /opt/coco/requirements $ yum -y install $(cat rpm_requirements.txt) $ pip install requirements.txt
**3.2 安装依赖**
::
$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
**3.3 查看配置文件并运行**
::
$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py
这时需要去
jumpserver管理后台-终端-终端(http://192.168.244.144:8080/terminal/terminal/)接受coco的注册
::
Coco version 0.4.0, more see https://www.jumpserver.org
Starting ssh server at 0.0.0.0:2222
Quit the server with CONTROL-C.
**3.4 测试连接**
::
$ ssh -p2222 admin@192.168.244.144
密码: admin
如果是用在windows下Xshell terminal登录语法如下
$ssh admin@192.168.244.144 2222
密码: admin
如果能登陆代表部署成功
四. 安装 Web Terminal 前端: Luna
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Luna已改为纯前端需要nginx来运行访问
下载 release包直接解压不需要编译
访问 https://github.com/jumpserver/luna/releases下载对应release包
4.1 解压luna
::
$ pwd
/opt/
$ tar xvf luna.tar.gz
$ ls /opt/luna
...
五. 安装Windows支持组件
~~~~~~~~~~~~~~~~~~~~~~~
使用docker启动 guacamole
.. code:: shell
docker run \
-p 8080:8080 \
-e JUMPSERVER_SERVER=http://<jumpserver>:8080 \
jumpserver/guacamole
这里所需要注意的是guacamole暴露出来的端口是8080若与jumpserver部署在同一主机上自定义一下。
修改JUMPSERVER_SERVER的配置填上jumpserver的内网地址
六. 配置 nginx 整合各组件
~~~~~~~~~~~~~~~~~~~~~~~~~
6.1 安装nginx 根据喜好选择安装方式和版本
6.2 配置文件
::
server {
listen 80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}
location /static/ {
root /opt/jumpserver/data/;
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /guacamole/ {
proxy_pass http://<guacamole>:8080/;
}
location / {
proxy_pass http://localhost:8080;
}
}
6.3 运行 nginx
6.4 访问 http://192.168.244.144

18
docs/upgrade.rst Normal file
View File

@ -0,0 +1,18 @@
升级
----
1. 升级 jumpserver
::
$ git pull && pip install -r requirements/requirements.txt && cd utils && sh make_migrations.sh
2. 升级 coco
::
$ git pull && cd requirements && pip install -r requirements.txt # 不要指定 -i参数
3. 升级 luna
重新下载release包