From 634b36c74bf379402fd9971e1c40c47fe07db5ab Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 1 Mar 2018 00:13:53 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + docs/_build/doctrees/admin_asset.doctree | Bin 2264 -> 2264 bytes docs/_build/doctrees/admin_guide.doctree | Bin 2603 -> 2603 bytes docs/_build/doctrees/admin_user.doctree | Bin 2245 -> 2245 bytes docs/_build/doctrees/contact.doctree | Bin 2242 -> 4329 bytes docs/_build/doctrees/contributor.doctree | Bin 2237 -> 5409 bytes docs/_build/doctrees/development.doctree | Bin 2246 -> 2669 bytes docs/_build/doctrees/faq.doctree | Bin 2211 -> 2211 bytes docs/_build/doctrees/index.doctree | Bin 7221 -> 7221 bytes docs/_build/doctrees/installation.doctree | Bin 2606 -> 2621 bytes docs/_build/doctrees/quickstart.doctree | Bin 4478 -> 7967 bytes docs/_build/doctrees/step_by_step.doctree | Bin 2265 -> 25732 bytes docs/_build/doctrees/user_guide.doctree | Bin 2263 -> 2263 bytes docs/_build/html/_sources/contact.rst.txt | 30 ++ docs/_build/html/_sources/contributor.rst.txt | 13 +- docs/_build/html/_sources/development.rst.txt | 14 +- docs/_build/html/_sources/index.rst.txt | 2 +- .../_build/html/_sources/installation.rst.txt | 1 + docs/_build/html/_sources/quickstart.rst.txt | 32 +- .../_build/html/_sources/step_by_step.rst.txt | 292 ++++++++++++++++++ docs/_build/html/admin_asset.html | 1 - docs/_build/html/admin_guide.html | 1 - docs/_build/html/admin_user.html | 1 - docs/_build/html/contact.html | 33 +- docs/_build/html/contributor.html | 16 +- docs/_build/html/development.html | 25 +- docs/_build/html/faq.html | 1 - docs/_build/html/genindex.html | 2 +- docs/_build/html/index.html | 31 +- docs/_build/html/installation.html | 4 +- docs/_build/html/objects.inv | Bin 476 -> 576 bytes docs/_build/html/quickstart.html | 30 +- docs/_build/html/search.html | 2 +- docs/_build/html/searchindex.js | 2 +- docs/_build/html/step_by_step.html | 251 ++++++++++++++- docs/_build/html/user_guide.html | 5 +- docs/api_style_guide.rst | 166 ++++++++++ docs/conf.py | 1 + docs/contact.rst | 30 ++ docs/contributor.rst | 13 +- docs/development.rst | 14 +- docs/index.rst | 2 +- docs/installation.rst | 1 + docs/project_structure.rst | 51 +++ docs/python_style_guide.rst | 216 +++++++++++++ docs/quickstart.rst | 27 +- docs/step_by_step.rst | 292 ++++++++++++++++++ docs/upgrade.rst | 18 ++ 48 files changed, 1577 insertions(+), 44 deletions(-) create mode 100644 docs/api_style_guide.rst create mode 100644 docs/project_structure.rst create mode 100644 docs/python_style_guide.rst create mode 100644 docs/upgrade.rst diff --git a/.gitignore b/.gitignore index ccd5937f2..abf165e2e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ celerybeat.pid django.db celerybeat-schedule.db data/static +_build/ diff --git a/docs/_build/doctrees/admin_asset.doctree b/docs/_build/doctrees/admin_asset.doctree index 7902cc71880b48e91ab260825e1989931925f227..cdbdab20b95b07cf2e9b49483a481d1a2c88ec18 100644 GIT binary patch delta 45 zcmca1ctdc)K1Q~U`&Y3}Ze;5a7cS0CEGj81%`ZtUj?c+YPRvOyo)SA{GY9(xMgXi} B5;Xt- delta 25 hcmca1ctdc)K1QL9`&Y3}{>UaVIg_npGbj6bMgWei3K9SS diff --git a/docs/_build/doctrees/admin_guide.doctree b/docs/_build/doctrees/admin_guide.doctree index eed230cf43e3df372be9768b9ccfcf3b04a747dc..ee3b007c8e184b981e722d9f226edc643ce71022 100644 GIT binary patch delta 25 hcmZ22vRY)qW=6J+TR7M!Ut#ZqcvNu0CPuc6n-{ZA&SUGC9L6TG`5W7LMgWH33KswX delta 25 hcmX>qcvNu0CPtx+n-{ZAzQ-mpIgG7i^EbBhi~x%`3X=c; diff --git a/docs/_build/doctrees/contact.doctree b/docs/_build/doctrees/contact.doctree index 2cefb258e7e1a327d342315eaf2791c26315df05..7941da16aeba774a7a1470cf5c5fe64b81b66474 100644 GIT binary patch literal 4329 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 SPfxGRccEIr^6#UQ9s4(f%>O3< delta 83 zcmZ3ewO5d}fo19@j)|;E6Ej>Hg(j{$$e6hK2yYYEuK<4CBwk4I71#t>u&xdtjY)gz1ba` diff --git a/docs/_build/doctrees/development.doctree b/docs/_build/doctrees/development.doctree index 860b3e179b9be084adbd2d301f94203a932eb7ab..826768bf25c41a037988cd13d0742f26cd3158c9 100644 GIT binary patch delta 563 zcmZXRJ!@1!6ozw?{c;ltQ9+CeAxLneBw}YLVj*E+E1N);W$vBho{@WJ#8;Q!aa*_vl{ah?v z{Cuua$iXJ#Tq+JZ`MOn!H2@db;#+j%02lo%hh0dO&Oq9Lhuw(K*ris-&oeE0xgDm^ z>pQ`L-crY3(L;+$UZ^id)lA&PM?y&9y=w2p@$_TwW4Io4MgV!(2{`}& delta 25 hcmZ21xL9z)0!E>Y3n#Nq-oqv_*@UfQ^A)!9i~xQx3AF$K diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 9016c187cb8545d363c42ac563d7e54716d26e77..0de5d8f8560dae56c2d659925c41b16dfee61320 100644 GIT binary patch delta 154 zcmdmLvDIQjATujlhG>TV*z&r;ik7cqrOFdX504QR#`7DbdBO}}9`>e@~ zV9^|~XeGNLNOUy^J4CbtBs%#e=X$W3X<#+yxy&JwOTb)P9$7|4rp?j3Q$RXD@NMLp Ryi>Ac@TV*Se<}82PltavN%gUYYe@~ta(7u9I$95yCEZE&F0k{?2N2kK+z76=;W82>se<2dDFmZ&U2YFvMvL1mw>sp zJhF_8jGLo*r!X@9-u!`YBbT^vac*K!NnvSzNosL?PJVJ?PHOR#*eR12NOo>^l={L5 E0Ek#TK>z>% diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree index ea3c2ac378d1595ad8d023f5d4ba4e04e7bf0532..34768594f22faff8a579a65f0e828cd32fe5031a 100644 GIT binary patch delta 115 zcmZ1{vR8zqfn}=EM3(i8Y#XTE-^WtqfaI(BfPkWGcPeWwWP8DsH1jD SMwDN1hCGlC-^|IW$_M~#I4O+) delta 100 zcmdlhvQC7hfn}=lM3(i8LL0ZFFp8)4@MPvC=air;ken3iHDi7 zZnHOQGt=ZS4vER<*gGcYarDVVWP}#?aONfErj}F|0M*w{$%ybP&X5Pvp_?T*RT%-< C?jsri diff --git a/docs/_build/doctrees/quickstart.doctree b/docs/_build/doctrees/quickstart.doctree index 5590125f3b2dc9d246ea3c872294dc5e87ced443..57e9d5693ae4061036f2bc47fa7e9ea4271d354a 100644 GIT binary patch literal 7967 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 O=8x diff --git a/docs/_build/doctrees/step_by_step.doctree b/docs/_build/doctrees/step_by_step.doctree index 9e8816ec451989b9a9160e4719a1175fb15ce21d..ee53db0a9592eb6064af4476fd087c34330b3b1b 100644 GIT binary patch literal 25732 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 Django资深开发者,为用户模块贡献了很多代码 +- **sofia <周小侠>** 资深前端工程师, 前端代码贡献者 +- **liuz <刘正> 全栈工程师** 编写了Web terminal大部分代码 +- **jiaxiangkong <陈尚委>** Jumpserver测试运营 +- **halcyon <王墉>** DevOps 资深开发者, 0.3.2 核心开发者之一 +- **yumaojun03 <喻茂峻>** DevOps 资深开发者,擅长Python, Go以及PAAS平台开发 +- **kelianchun <柯连春>** DevOps 资产开发者,fix了很多bug \ No newline at end of file diff --git a/docs/_build/html/_sources/development.rst.txt b/docs/_build/html/_sources/development.rst.txt index ff2f3e6f1..9e2411ea9 100644 --- a/docs/_build/html/_sources/development.rst.txt +++ b/docs/_build/html/_sources/development.rst.txt @@ -1,2 +1,12 @@ -开发指南 -------------------- \ No newline at end of file +开发文档 +====================================== + +.. toctree:: + :maxdepth: 1 + :caption: 开发文档 + + api_style_guide + python_style_guide + project_structure + + diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt index be7e63f8d..82f80166d 100644 --- a/docs/_build/html/_sources/index.rst.txt +++ b/docs/_build/html/_sources/index.rst.txt @@ -28,7 +28,7 @@ Jumpserver 支持容器化部署,windows,LDAP, s3, elasticsearch存储等功 .. toctree:: - :maxdepth: 1 + :maxdepth: 2 :caption: 文档: installation diff --git a/docs/_build/html/_sources/installation.rst.txt b/docs/_build/html/_sources/installation.rst.txt index 9229a4602..e9dde1f48 100644 --- a/docs/_build/html/_sources/installation.rst.txt +++ b/docs/_build/html/_sources/installation.rst.txt @@ -6,3 +6,4 @@ quickstart step_by_step + upgrade diff --git a/docs/_build/html/_sources/quickstart.rst.txt b/docs/_build/html/_sources/quickstart.rst.txt index ac8586970..7892999fe 100644 --- a/docs/_build/html/_sources/quickstart.rst.txt +++ b/docs/_build/html/_sources/quickstart.rst.txt @@ -1,7 +1,10 @@ 快速安装 ========================== -Jumpserver 封装了一个All in one Docker,可以快速启动。 +Jumpserver 封装了一个All in one Docker,可以快速启动。该镜像集成了所有需要的组件,可以使用外置db和redis + +Tips: 不建议在生产中使用 + Docker 安装见: `Docker官方安装文档 `_ @@ -17,4 +20,29 @@ Docker 安装见: `Docker官方安装文档 `_ 浏览器访问: http://localhost:8080 -ssh访问: ssh -p 2222 localhost \ No newline at end of file +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 diff --git a/docs/_build/html/_sources/step_by_step.rst.txt b/docs/_build/html/_sources/step_by_step.rst.txt index 4e8234b62..db4b08608 100644 --- a/docs/_build/html/_sources/step_by_step.rst.txt +++ b/docs/_build/html/_sources/step_by_step.rst.txt @@ -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://: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://:8080/; + } + + location / { + proxy_pass http://localhost:8080; + } + } + +6.3 运行 nginx + +6.4 访问 http://192.168.244.144 \ No newline at end of file diff --git a/docs/_build/html/admin_asset.html b/docs/_build/html/admin_asset.html index 5125d1a62..45a865de1 100644 --- a/docs/_build/html/admin_asset.html +++ b/docs/_build/html/admin_asset.html @@ -96,7 +96,6 @@
  • 用户使用文档
  • -
  • 开发指南
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/admin_guide.html b/docs/_build/html/admin_guide.html index 08d10b2c3..1fbd1c0fd 100644 --- a/docs/_build/html/admin_guide.html +++ b/docs/_build/html/admin_guide.html @@ -95,7 +95,6 @@
  • 用户使用文档
  • -
  • 开发指南
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/admin_user.html b/docs/_build/html/admin_user.html index c6a60d71d..b77aa1fb5 100644 --- a/docs/_build/html/admin_user.html +++ b/docs/_build/html/admin_user.html @@ -96,7 +96,6 @@
  • 用户使用文档
  • -
  • 开发指南
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/contact.html b/docs/_build/html/contact.html index 9606dabb1..8f2a4696a 100644 --- a/docs/_build/html/contact.html +++ b/docs/_build/html/contact.html @@ -91,9 +91,16 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • -
  • 联系方式
  • +
  • 联系方式 +
  • FAQ
  • @@ -160,6 +167,28 @@

    联系方式

    +
    +

    QQ群

    +

    群1: 390139816 +群2: 399218702 +群3: 552054376

    +
    + + + +
    +

    邮件

    +

    ibuler#fit2cloud.com (#替换为@)

    +
    diff --git a/docs/_build/html/contributor.html b/docs/_build/html/contributor.html index 202ef1f01..fdcc460cb 100644 --- a/docs/_build/html/contributor.html +++ b/docs/_build/html/contributor.html @@ -37,7 +37,7 @@ - + @@ -91,7 +91,7 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • @@ -160,6 +160,16 @@

    贡献者

    +

    感谢一下朋友为Jumpserver做出的贡献,世界因你们而不同,排名不分先后

    +
      +
    • 小彧 <李磊> Django资深开发者,为用户模块贡献了很多代码
    • +
    • sofia <周小侠> 资深前端工程师, 前端代码贡献者
    • +
    • liuz <刘正> 全栈工程师 编写了Web terminal大部分代码
    • +
    • jiaxiangkong <陈尚委> Jumpserver测试运营
    • +
    • halcyon <王墉> DevOps 资深开发者, 0.3.2 核心开发者之一
    • +
    • yumaojun03 <喻茂峻> DevOps 资深开发者,擅长Python, Go以及PAAS平台开发
    • +
    • kelianchun <柯连春> DevOps 资产开发者,fix了很多bug
    • +
    @@ -175,7 +185,7 @@ - + diff --git a/docs/_build/html/development.html b/docs/_build/html/development.html index 1eaead62d..3c2b8d0ad 100644 --- a/docs/_build/html/development.html +++ b/docs/_build/html/development.html @@ -8,7 +8,7 @@ - 开发指南 — jumpserver 0.5.0 文档 + 开发文档 — jumpserver 0.5.0 文档 @@ -36,7 +36,7 @@ href="genindex.html"/> - + @@ -91,7 +91,12 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档 +
  • 贡献者
  • 联系方式
  • FAQ
  • @@ -139,7 +144,7 @@
  • Docs »
  • -
  • 开发指南
  • +
  • 开发文档
  • @@ -159,7 +164,15 @@
    -

    开发指南

    +

    开发文档

    +
    @@ -172,7 +185,7 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 0fb4d6015..8e1176bc2 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -90,7 +90,7 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index 464c51f5f..135621198 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -90,7 +90,7 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • @@ -171,12 +171,33 @@ diff --git a/docs/_build/html/installation.html b/docs/_build/html/installation.html index 069fbcc30..e7a9fb6a1 100644 --- a/docs/_build/html/installation.html +++ b/docs/_build/html/installation.html @@ -91,11 +91,12 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • @@ -168,6 +169,7 @@ diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index da9bb9afc02e7fe887304b2eac688ce4cc5f7c0e..31be07064b13262d4420663e9d9da477908d7e3d 100644 GIT binary patch delta 466 zcmV;@0WJRA1Hc53cz<cZ$V_4gnt$_2?~;*6Gb;vqUBm-V6O1oy0?D_Sd}T10LG=Y9vUo$(5}8GFt1A@w0g?R?oIBA&)4zH}MvYZ^s|Mu>kHUWT^t7PibKZN*K0PS1DG?a5$bGG4?&P^k$?4v3{|g?$aD@?J%n zhPIkrF2A0mi63>Y!m%F=`bc@oE+cdo-N*_BsMier5kRh>&VMeGsDO0G;q^P@=oXh) z&#ea%taj0j-oC@$XE1MX%nmEL(sKR+AOke@qt;~QH4vdSYFM^Oc`hO&DptjIet~9qr($arkrs?&o>4Gm#C3gwkrJKbQsLeC^NHgCP=<+Qm}6nB21oSzTev4=;RuQddYy&dKh%OV#WdTK+7O L2i3$chR8-Q*>SRu diff --git a/docs/_build/html/quickstart.html b/docs/_build/html/quickstart.html index 27b9c7edd..f5f45bb3c 100644 --- a/docs/_build/html/quickstart.html +++ b/docs/_build/html/quickstart.html @@ -93,6 +93,8 @@
  • 快速安装
  • 一步一步安装
  • @@ -100,7 +102,7 @@
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • @@ -171,7 +173,8 @@

    快速安装

    -

    Jumpserver 封装了一个All in one Docker,可以快速启动。

    +

    Jumpserver 封装了一个All in one Docker,可以快速启动。该镜像集成了所有需要的组件,可以使用外置db和redis

    +

    Tips: 不建议在生产中使用

    Docker 安装见: Docker官方安装文档

    快速启动

    @@ -185,6 +188,29 @@

    浏览器访问: http://localhost:8080

    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
    +
    +
    +
    +
    +
    diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index f44192655..cd058fd4b 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -89,7 +89,7 @@
  • 安装文档
  • 管理文档
  • 用户使用文档
  • -
  • 开发指南
  • +
  • 开发文档
  • 贡献者
  • 联系方式
  • FAQ
  • diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 425c3615b..dfaafad30 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["admin_asset","admin_guide","admin_user","contact","contributor","development","faq","index","installation","quickstart","step_by_step","user_guide"],envversion:53,filenames:["admin_asset.rst","admin_guide.rst","admin_user.rst","contact.rst","contributor.rst","development.rst","faq.rst","index.rst","installation.rst","quickstart.rst","step_by_step.rst","user_guide.rst"],objects:{},objnames:{},objtypes:{},terms:{"\u4e00\u4e2a\u4e2d\u5fc3":7,"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":8,"\u4e0d\u540cregion\u4e0d\u540c\u767b\u5f55\u70b9":7,"\u4ece\u8bbe\u8ba1\u65f6\u8003\u8651\u5206\u5e03\u5f0f":7,"\u4f7f\u7528python":7,"\u4f7f\u7528root\u547d\u4ee4\u884c\u8f93\u5165":9,"\u5185\u5bb9":[],"\u53ef\u4ee5\u5feb\u901f\u542f\u52a8":9,"\u5821\u5792\u673a":7,"\u5b89\u88c5\u6587\u6863":7,"\u5b89\u88c5\u89c1":9,"\u5ba1\u8ba1audit":7,"\u5c01\u88c5\u4e86\u4e00\u4e2aall":9,"\u5e76\u63d0\u4f9b\u4e86\u5f3a\u5927api\u65b9\u4fbf\u5bf9\u63a5\u5176\u5b83\u7cfb\u7edf":7,"\u5e76\u6709\u9886\u5148\u7684web":7,"\u5f00\u53d1\u6307\u5357":7,"\u5feb\u901f\u542f\u52a8":[],"\u5feb\u901f\u5b89\u88c5":8,"\u6388\u6743author":7,"\u641c\u7d22\u9875\u9762":7,"\u652f\u6301\u5bb9\u5668\u5316\u90e8\u7f72":7,"\u652f\u6301\u81ea\u52a8\u5316\u8fd0\u7ef4\u4efb\u52a1":7,"\u662f\u4e00\u6b3e\u5b8c\u5168\u5f00\u6e90\u7684\u8df3\u677f\u673a":7,"\u662f\u7b26\u54084a":7,"\u6a21\u5757\u7d22\u5f15":7,"\u6b22\u8fce\u6765\u5230":7,"\u6ca1\u6709\u6027\u80fd\u74f6\u9888":7,"\u6d4f\u89c8\u5668\u8bbf\u95ee":9,"\u6df1\u5ea6\u96c6\u6210\u4e86ansibl":7,"\u6ee1\u8db3\u6df7\u5408\u4e91\u67b6\u6784":7,"\u7528\u6237\u4f7f\u7528\u6587\u6863":7,"\u7528\u6237\u6a21\u5757":1,"\u754c\u9762\u6f02\u4eae":7,"\u7684\u4e13\u4e1a\u8fd0\u7ef4\u5ba1\u8ba1\u7cfb\u7edf":7,"\u7b80\u5355\u6613\u7528":7,"\u7ba1\u7406\u5458\u6587\u6863":[],"\u7ba1\u7406\u6587\u6863":7,"\u7cfb\u7edf":7,"\u7d22\u5f15":[],"\u8054\u7cfb\u65b9\u5f0f":7,"\u8ba4\u8bc1authent":7,"\u8d21\u732e\u8005":7,"\u8d26\u53f7account":7,"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":1,"\u9075\u5faagpl":7,"django\u5f00\u53d1":7,"docker\u5b98\u65b9\u5b89\u88c5\u6587\u6863":9,"docker\u5b98\u65b9\u5b89\u88c5\u6587\u6863http":[],"elasticsearch\u5b58\u50a8\u7b49\u529f\u80fd":7,"ssh\u8bbf\u95ee":9,"terminal\u89e3\u51b3\u65b9\u6848":7,"v2\u534f\u8bae":7,beta2:9,com:[],content:[],doc:[],docker:9,faq:7,http:9,instal:[],jumpserv:9,ldap:7,localhost:9,one:9,run:9,ssh:9,window:7},titles:["\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757","\u7ba1\u7406\u6587\u6863","\u7528\u6237\u6a21\u5757","\u8054\u7cfb\u65b9\u5f0f","\u8d21\u732e\u8005","\u5f00\u53d1\u6307\u5357","FAQ","Jumpserver \u6587\u6863","\u5b89\u88c5\u6587\u6863","\u5feb\u901f\u5b89\u88c5","\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5","\u7528\u6237\u4f7f\u7528\u6587\u6863"],titleterms:{"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":10,"\u5b89\u88c5\u6587\u6863":8,"\u5f00\u53d1\u6307\u5357":5,"\u5feb\u901f\u542f\u52a8":9,"\u5feb\u901f\u5b89\u88c5":9,"\u6587\u6863":7,"\u6709\u5173jumpserv":7,"\u7528\u6237\u4f7f\u7528\u6587\u6863":11,"\u7528\u6237\u6587\u6863":[],"\u7528\u6237\u6a21\u5757":2,"\u7ba1\u7406\u6587\u6863":1,"\u7d22\u5f15":7,"\u8054\u7cfb\u65b9\u5f0f":3,"\u8bbf\u95ee":9,"\u8d21\u732e\u8005":4,"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":0,faq:6,indic:[],jumpserv:7,tabl:[]}}) \ No newline at end of file +Search.setIndex({docnames:["admin_asset","admin_guide","admin_user","api_style_guide","contact","contributor","development","faq","index","installation","project_structure","python_style_guide","quickstart","step_by_step","upgrade","user_guide"],envversion:53,filenames:["admin_asset.rst","admin_guide.rst","admin_user.rst","api_style_guide.rst","contact.rst","contributor.rst","development.rst","faq.rst","index.rst","installation.rst","project_structure.rst","python_style_guide.rst","quickstart.rst","step_by_step.rst","upgrade.rst","user_guide.rst"],objects:{},objnames:{},objtypes:{},terms:{"0\u6846\u67b6":3,"2\u7a7a\u683c\u53ef\u4ee5\u663e\u8457\u964d\u4f4e\u89c6\u89c9\u4e0a\u7684\u8d1f\u62c5":11,"7\u81ea\u5e26\u7684\u662fpython2":13,"8\u7f16\u7801\u58f0\u660e":11,"\u4e00\u4e2a":11,"\u4e00\u4e2a\u4e2d\u5fc3":8,"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":[8,9],"\u4e00\u822c\u6027\u7684\u589e\u5220\u67e5\u6539":3,"\u4e00\u822c\u6765\u8bf4":3,"\u4e00\u822c\u7528\u6765\u4f20\u9012\u8be5api\u64cd\u4f5c\u7684\u6838\u5fc3\u5b9e\u4f53\u5bf9\u8c61\u7684\u552f\u4e00id":3,"\u4e00\u9879\u6216\u591a\u9879":3,"\u4e0a\u9762\u4ee3\u7801\u8868\u793a":3,"\u4e0b\u4e00\u884c\u5e94\u8be5\u4e0e\u4e0a\u4e00\u884c\u7684\u6700\u540e":11,"\u4e0b\u8f7d":13,"\u4e0b\u8f7d\u5bf9\u5e94release\u5305":13,"\u4e0b\u8f7d\u6216clone\u9879\u76ee":13,"\u4e0b\u8f7dclone\u9879\u76ee":13,"\u4e0d\u4f7f\u7528\u62fc\u97f3":11,"\u4e0d\u4f7f\u7528\u65e0\u610f\u4e49\u7b80\u5355\u5b57\u6bcd\u547d\u540d":11,"\u4e0d\u540cregion\u4e0d\u540c\u767b\u5f55\u70b9":8,"\u4e0d\u5efa\u8bae\u5728\u751f\u4ea7\u4e2d\u4f7f\u7528":12,"\u4e0d\u8981\u4f7f\u7528\u9ed8\u8ba4":11,"\u4e0d\u8981\u5728\u4ee3\u7801\u4e2d\u4f7f\u7528\u592a\u591a\u7684\u7a7a\u884c\u6765\u533a\u5206\u4e0d\u540c\u7684\u903b\u8f91\u6a21\u5757":11,"\u4e0d\u8981\u5728\u53d8\u91cf\u540d\u540e\u6dfb\u52a0\u4e0b\u5212\u7ebf\u8fdb\u884c\u533a\u5206":11,"\u4e0d\u8981\u6307\u5b9a":[13,14],"\u4e0d\u8981\u7528tab":13,"\u4e0d\u8981\u786c\u7f16\u7801":11,"\u4e0d\u8981\u8fd9\u6837\u5199":11,"\u4e0d\u9700\u8981\u7f16\u8bd1":13,"\u4e0e401\u9519\u8bef\u76f8\u5bf9":3,"\u4e0e\u5355\u4f8b":11,"\u4e14\u4e0d\u4f1a\u518d\u5f97\u5230\u7684":3,"\u4e16\u754c\u56e0\u4f60\u4eec\u800c\u4e0d\u540c":5,"\u4e3a\u4e86\u4e0d\u6270\u4e71\u539f\u6765\u7684\u73af\u5883\u6211\u4eec\u6765\u4f7f\u7528python\u865a\u62df\u73af\u5883":13,"\u4e3a\u7528\u6237\u6a21\u5757\u8d21\u732e\u4e86\u5f88\u591a\u4ee3\u7801":5,"\u4e3a\u957f\u8bed\u53e5\u6362\u884c":11,"\u4e3e\u4f8b\u6765\u8bf4":3,"\u4e4b\u540e\u9a6c\u4e0a\u6362\u884c":11,"\u4e4b\u6240\u4ee5\u4e0epython\u4e0d\u540c":11,"\u4e5f\u662f\u5404app\u6240\u5728\u76ee\u5f55":10,"\u4e5f\u77e5\u9053\u4e0b\u4e00\u6b65\u5e94\u8be5\u505a\u4ec0\u4e48":3,"\u4e8c\u8005\u5747\u4ee5restructuredtext\u683c\u5f0f\u7f16\u5199":11,"\u4ece\u670d\u52a1\u5668\u5220\u9664\u8d44\u6e90":3,"\u4ece\u670d\u52a1\u5668\u53d6\u51fa\u8d44\u6e90":3,"\u4ece\u8bbe\u8ba1\u65f6\u8003\u8651\u5206\u5e03\u5f0f":8,"\u4ee3\u7801\u4f18\u96c5\u7b80\u6d01":11,"\u4ee3\u8868\u5b57\u7b26\u4e32\u7ed3\u675f\u7684\u4e09\u4e2a\u5f15\u53f7\u4e0e\u4ee3\u8868\u5b57\u7b26\u4e32\u5f00\u59cb\u7684\u4e09\u4e2a\u5f15\u53f7\u5728\u540c\u4e00\u884c":11,"\u4ee3\u8868\u5b57\u7b26\u4e32\u7ed3\u675f\u7684\u4e09\u4e2a\u5f15\u53f7\u5219\u81ea\u5df1\u72ec\u7acb\u6210\u4e00\u884c":11,"\u4ee4\u724c":3,"\u4ee5\u4e0b\u6240\u6709\u547d\u4ee4\u5747\u5728\u8be5\u865a\u62df\u73af\u5883\u4e2d\u8fd0\u884c":13,"\u4ee5\u53ca\u6392\u5e8f\u987a\u5e8f":3,"\u4ee5\u53ca\u6807\u51c6\u7684\u6587\u6863\u5b57\u7b26\u4e32":11,"\u4ee5\u53ca\u6bcf\u9875\u7684\u8bb0\u5f55\u6570":3,"\u4ee5\u540e\u8fd0\u884cjumpserver\u90fd\u8981\u5148\u8fd0\u884c\u4ee5\u4e0asource\u547d\u4ee4":13,"\u4efb\u4f55python\u4ee3\u7801\u90fd\u90fd\u5fc5\u987b\u9075\u5b88\u6b64\u89c4\u5b9a":11,"\u4efb\u610f\u7c7b\u578b\u4e4b\u95f4\u7684\u6bd4\u8f83":11,"\u4f1a\u5f97\u5230\u8fd9\u6837\u4e00\u4e2a\u6587\u6863":3,"\u4f46\u662f\u53ea\u6709xml\u683c\u5f0f":3,"\u4f46\u662f\u6709\u4e9b\u7ec6\u8282\u90e8\u5206\u4f1a\u5c3d\u91cf\u653e\u5f00":11,"\u4f46\u662f\u8bbf\u95ee\u662f\u88ab\u7981\u6b62\u7684":3,"\u4f46\u662fdjango\u7684\u547d\u540d":11,"\u4f5c\u4e3a\u7c7b\u540d\u79f0":11,"\u4f60\u53ef\u4ee5\u9009\u62e9\u53bbgithub\u9879\u76ee\u9875\u9762\u76f4\u63a5\u4e0b\u8f7d":13,"\u4f7f\u5f97\u7528\u6237\u4e0d\u67e5\u6587\u6863":3,"\u4f7f\u7528":11,"\u4f7f\u7528django":11,"\u4f7f\u7528docker\u542f\u52a8":13,"\u4f7f\u7528foo":11,"\u4f7f\u7528is\u548ci":11,"\u4f7f\u7528python":8,"\u4f7f\u7528root\u547d\u4ee4\u884c\u8f93\u5165":12,"\u4f8b\u5982":[3,11],"\u4fee\u6539jumpserver\u914d\u7f6e\u6587\u4ef6":13,"\u4fee\u6539jumpserver_server\u7684\u914d\u7f6e":13,"\u5141\u8bb8\u4e0e\u5185\u5efa\u53d8\u91cf\u91cd\u540d":11,"\u5168\u6808\u5de5\u7a0b\u5e08":5,"\u5173\u95ed":13,"\u5185\u5bb9":[],"\u51fa\u9519\u4fe1\u606f\u4f5c\u4e3a\u952e\u503c\u5373\u53ef":3,"\u5218\u6b63":5,"\u521b\u5efa\u6570\u636e\u5e93":13,"\u521d\u59cb\u5316\u6570\u636e\u76ee\u5f55":10,"\u521d\u59cb\u5316\u9879\u76ee\u6570\u636e\u5e93":10,"\u522b\u5fd8\u4e86":13,"\u524d\u7aef\u4ee3\u7801\u8d21\u732e\u8005":5,"\u533f\u540d\u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u53ef\u4ee5\u7528x\u66ff\u4ee3":11,"\u5347\u7ea7":[8,9],"\u5355\u76ee\u8fd0\u7b97\u7b26\u4e0e\u8fd0\u7b97\u5bf9\u8c61\u4e4b\u95f4\u4e0d\u7a7a\u683c":11,"\u5373\u4f7f\u5355\u76ee\u8fd0\u7b97\u7b26\u4f4d\u4e8e\u62ec\u53f7\u5185\u90e8\u4e5f\u4e00\u6837":11,"\u5373\u8fd4\u56de\u7ed3\u679c\u4e2d\u63d0\u4f9b\u94fe\u63a5":3,"\u53c2\u8003":3,"\u53c2\u8003\u56fd\u5185\u7ffb\u8bd1":11,"\u53cc\u4e0b\u5212\u7ebf\u524d\u7f00\u53ea\u6709\u5b9a\u4e49\u6df7\u5165\u7c7b":11,"\u53cc\u76ee\u8fd0\u7b97\u7b26\u4e0e\u8fd0\u7b97\u5bf9\u8c61\u4e4b\u95f4\u8981\u7a7a\u683c":11,"\u53d1\u751f\u4e00\u4e2a\u9a8c\u8bc1\u9519\u8bef":3,"\u53d7\u4fdd\u62a4\u7684\u5143\u7d20\u4ee5\u4e00\u4e2a\u4e0b\u5212\u7ebf\u4e3a\u524d\u7f00":11,"\u53d8\u91cf\u540d":11,"\u53e5\u70b9\u6216":11,"\u53ea\u80fd\u6709\u540d\u8bcd":3,"\u53ef\u4ee5\u4f7f\u7528\u5916\u7f6edb\u548credi":12,"\u53ef\u4ee5\u4f7f\u7528\u6362\u884c\u7b26":11,"\u53ef\u4ee5\u5feb\u901f\u542f\u52a8":12,"\u53ef\u4ee5\u8bbe\u7f6e\u914d\u7f6e\u6587\u4ef6\u6c38\u4e45\u5173\u95ed":13,"\u540c\u6837\u4e0d\u4f7f\u7528tab":11,"\u540c\u7406static\u4e5f\u662f":11,"\u5426\u5219\u8bf7\u4e2d\u6587\u4f18\u96c5\u6ce8\u91ca":11,"\u5468\u5c0f\u4fa0":5,"\u547d\u540d\u7f29\u5199\u8981\u8c28\u614e":11,"\u547d\u540d\u8981\u6709\u5bd3\u610f":11,"\u548c":11,"\u548c\u8be6\u7ec6\u4ecb\u7ecd":11,"\u55bb\u8302\u5cfb":5,"\u56e0\u4e3a\u955c\u50cf\u4e0a\u53ef\u80fd\u6ca1\u6709\u6700\u65b0\u7684\u5305":13,"\u56e0\u4e3a\u9ed8\u8ba4jumpserver\u662f\u4f7f\u7528\u8be5\u914d\u7f6e":13,"\u56e0\u4e3acento":13,"\u5728\u670d\u52a1\u5668\u65b0\u5efa\u4e00\u4e2a\u8d44\u6e90":3,"\u5728\u670d\u52a1\u5668\u66f4\u65b0\u8d44\u6e90":3,"\u5728\u7b2c\u4e00\u4e2a":11,"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b":11,"\u5728restful\u67b6\u6784\u4e2d":3,"\u5821\u5792\u673a":8,"\u586b\u4e0ajumpserver\u7684\u5185\u7f51\u5730\u5740":13,"\u591a\u4e00\u5c42\u76ee\u5f55":10,"\u5927\u5199_\u4ee5\u53ca_\u4e0b\u5212\u7ebf":11,"\u5982\u679c\u4e0d\u4f7f\u7528mysql\u53ef\u4ee5\u8df3\u8fc7\u76f8\u5173mysql\u5b89\u88c5\u548c\u914d\u7f6e":13,"\u5982\u679c\u4e3a\u591a\u884c":11,"\u5982\u679c\u4f60\u4f7f\u7528\u62ec\u53f7":11,"\u5982\u679c\u4f7f\u7528\u5173\u952e\u8bcd":11,"\u5982\u679c\u4f7f\u7528\u6ce8\u91ca\u6765\u7f16\u5199\u7c7b\u5c5e\u6027\u7684\u6587\u6863":11,"\u5982\u679c\u51fd\u6570\u9700\u8981\u8bbf\u95ee\u91cd\u540d\u7684\u5185\u5efa\u53d8\u91cf":11,"\u5982\u679c\u53ea\u6709\u4e00\u884c":11,"\u5982\u679c\u5fc5\u8981\u7684\u8bdd":11,"\u5982\u679c\u662f\u7528\u5728windows\u4e0b":13,"\u5982\u679c\u6709\u66f4\u591a\u7684\u53c2\u6570\u9700\u8981\u63d0\u4f9b":3,"\u5982\u679c\u6a21\u5757\u4e2d\u4f7f\u7528\u4e86\u975eascii\u7f16\u7801\u7684\u5b57\u7b26":11,"\u5982\u679c\u6ca1\u6709\u4efb\u4f55\u62a5\u9519\u8bf7\u7ee7\u7eed":13,"\u5982\u679c\u72b6\u6001\u7801\u662f4xx":3,"\u5982\u679c\u80fd\u767b\u9646\u4ee3\u8868\u90e8\u7f72\u6210\u529f":13,"\u5982\u679c\u9700\u8981":10,"\u5b83\u7ee7\u627f\u81eaconfig":13,"\u5b89\u88c5\u4f9d\u8d56":13,"\u5b89\u88c5\u4f9d\u8d56\u5305":13,"\u5b89\u88c5\u4f9d\u8d56rpm\u5305":13,"\u5b89\u88c5\u6587\u6863":8,"\u5b89\u88c5\u89c1":12,"\u5b89\u88c5\u8bf4\u660e":10,"\u5b89\u88c5mysql":13,"\u5b89\u88c5nginx":13,"\u5b89\u88c5python\u5e93\u4f9d\u8d56":13,"\u5b89\u88c5redi":13,"\u5b8c\u5168\u4f7f\u7528http":3,"\u5b98\u7f51":8,"\u5b9e\u4f8b\u65b9\u6cd5":11,"\u5ba1\u8ba1audit":8,"\u5ba2\u6237\u7aef\u63d0\u4f9b\u6539\u53d8\u540e\u7684\u5b8c\u6574\u8d44\u6e90":3,"\u5ba2\u6237\u7aef\u63d0\u4f9b\u6539\u53d8\u7684\u5c5e\u6027":3,"\u5bc6\u7801":13,"\u5bc6\u7801\u9519\u8bef":3,"\u5bf9\u4e8e\u5143\u7d20\u4f17\u591a\u7684\u5217\u8868\u6216\u5143\u7ec4":11,"\u5bf9\u4e8e\u8d44\u6e90\u7684\u5177\u4f53\u64cd\u4f5c\u7c7b\u578b":3,"\u5bf9\u5916\u66b4\u9732\u7684\u63a5\u53e3":10,"\u5bf9\u9f50":11,"\u5c01\u88c5\u4e86\u4e00\u4e2aall":12,"\u5c06\u7248\u672c\u53f7\u653e\u5230app\u540e\u9762":3,"\u5c06api\u7684\u7248\u672c\u53f7\u653e\u5165url\u4e2d":3,"\u5c06views\u548capi\u53ef\u590d\u7528\u7684\u4ee3\u7801\u653e\u5728\u8fd9\u91cc":10,"\u5c0f\u5199_\u4ee5\u53ca_\u4e0b\u5212\u7ebf":11,"\u5c0f\u5f67":5,"\u5c31\u5e94\u8be5\u5411\u7528\u6237\u8fd4\u56de\u51fa\u9519\u4fe1\u606f":3,"\u5c3d\u53ef\u80fd\u5229\u7528django\u9020\u597d\u7684\u8f6e\u5b50":11,"\u5c3d\u91cf\u4e00\u884c":11,"\u5c3d\u91cf\u4f7f\u7528class":11,"\u5c3d\u91cf\u662f\u5927\u5bb6\u8ba4\u53ef\u7684\u7f29\u5199":11,"\u5e03\u5c40\u4e5f\u4e0d\u4e00\u6837":11,"\u5e38\u7528\u7684http\u52a8\u8bcd\u6709\u4e0b\u9762\u4e94\u4e2a":3,"\u5e38\u89c1\u53c2\u6570\u7ea6\u5b9a":3,"\u5e38\u89c1\u7684\u6709\u4ee5\u4e0b\u4e00\u4e9b":3,"\u5e38\u91cf":11,"\u5e42\u7b49":3,"\u5e76\u63d0\u4f9b\u4e86\u5f3a\u5927api\u65b9\u4fbf\u5bf9\u63a5\u5176\u5b83\u7cfb\u7edf":8,"\u5e76\u6709\u9886\u5148\u7684web":8,"\u5e76\u7ed9\u51fa\u8be5collection\u7684\u7f51\u5740":3,"\u5e94\u5728\u540d\u79f0\u540e\u6dfb\u52a0\u540e\u7f6e\u4e0b\u5212\u7ebf":11,"\u5e94\u8be5\u5c3d\u91cf\u4f7f\u7528json":3,"\u5efa\u7acbpython\u865a\u62df\u73af\u5883":13,"\u5efa\u8bae\u8fdb\u884c\u58f0\u660e":11,"\u5f00\u53d1\u6307\u5357":[],"\u5f00\u53d1\u6587\u6863":8,"\u5f02\u6b65\u4efb\u52a1":3,"\u5f53\u521b\u5efa\u4e00\u4e2a\u5bf9\u8c61\u65f6":3,"\u5f53\u524d\u6700\u65b0":11,"\u5f53\u7528\u6237\u5411api":3,"\u5faa\u73af\u4e2d\u8ba1\u6570\u4f8b\u5916":11,"\u5feb\u901f\u542f\u52a8":[],"\u5feb\u901f\u5b89\u88c5":[8,9],"\u603b\u662f\u4f7f\u7528https\u534f\u8bae":3,"\u611f\u8c22\u4e00\u4e0b\u670b\u53cb\u4e3ajumpserver\u505a\u51fa\u7684\u8d21\u732e":5,"\u6211\u4eec\u8ba1\u5212\u4fee\u6539":13,"\u6211\u4eec\u91c7\u7528pocoo\u7684":11,"\u6211\u7684\u7f51\u901f\u597d":13,"\u6211\u76f4\u63a5clone\u4e86":13,"\u6216":11,"\u6216\u8005\u662f\u7f29\u8fdb4\u4e2a\u7a7a\u683c\u7b26":11,"\u6216\u82b1\u62ec\u53f7":11,"\u6240\u4ee5\u6211\u4eec\u9650\u5236\u6700\u5927120\u5b57\u7b26":11,"\u6240\u4ee5\u653e\u5728\u4e3b\u57df\u540d\u4e0b":3,"\u6240\u4ee5\u7f51\u5740\u4e2d\u4e0d\u80fd\u6709\u52a8\u8bcd":3,"\u6240\u4ee5\u8bbf\u95eeweb":13,"\u6240\u4ee5api\u4e2d\u7684\u540d\u8bcd\u4e5f\u5e94\u8be5\u4f7f\u7528\u590d\u6570":3,"\u6240\u6709\u6587\u6863\u5b57\u7b26\u4e32\u5747\u4ee5restructuredtext\u683c\u5f0f\u7f16\u5199":11,"\u6240\u6709doc\u6587\u4ef6\u653e\u5230\u8be5\u76ee\u5f55":10,"\u62ec\u53f7\u91cc\u662f\u5bf9\u5e94\u7684sql\u547d\u4ee4":3,"\u6307\u5b9a\u7b2c\u51e0\u9875":3,"\u6307\u5b9a\u7b5b\u9009\u6761\u4ef6":3,"\u6307\u5b9a\u8fd4\u56de\u7ed3\u679c\u6309\u7167\u54ea\u4e2a\u5c5e\u6027\u6392\u5e8f":3,"\u6307\u5b9a\u8fd4\u56de\u8bb0\u5f55\u7684\u5f00\u59cb\u4f4d\u7f6e":3,"\u6307\u5b9a\u8fd4\u56de\u8bb0\u5f55\u7684\u6570\u91cf":3,"\u6309pep8\u89c4\u8303":11,"\u6362\u884c":11,"\u6388\u6743author":8,"\u6392\u540d\u4e0d\u5206\u5148\u540e":5,"\u63a5\u53d7coco\u7684\u6ce8\u518c":13,"\u641c\u7d22\u9875\u9762":8,"\u6458\u8981\u4e0e\u8be6\u7ec6\u4ecb\u7ecd\u4e4b\u95f4\u7a7a\u4e00\u884c":11,"\u64c5\u957fpython":5,"\u652f\u6301\u5bb9\u5668\u5316\u90e8\u7f72":8,"\u652f\u6301\u81ea\u52a8\u5316\u8fd0\u7ef4\u4efb\u52a1":8,"\u653e\u5230\u8be5\u6587\u4ef6\u4e2d":10,"\u6570\u636e\u5e93\u4e2d\u7684\u8868\u90fd\u662f\u540c\u79cd\u8bb0\u5f55\u7684":3,"\u6570\u636e\u5e93\u8868\u540d\u624b\u52a8\u6307\u5b9a":11,"\u6570\u636e\u6a21\u578b\u76ee\u5f55":10,"\u6570\u7ec4":3,"\u6587\u6863\u4e2d\u6709\u4e00\u4e2alink\u5c5e\u6027":3,"\u6587\u6863\u5b57\u7b26\u4e32\u4e2d\u7684\u6587\u672c\u7d27\u63a5\u7740\u4ee3\u8868\u5b57\u7b26\u4e32\u5f00\u59cb\u7684\u4e09\u4e2a\u5f15\u53f7\u7f16\u5199":11,"\u6587\u6863\u5b57\u7b26\u4e32\u5e94\u5206\u6210\u7b80\u77ed\u6458\u8981":11,"\u6587\u6863\u5b57\u7b26\u4e32\u7684\u884c\u6570\u4e0d\u540c":11,"\u65b0\u5f00\u4e00\u4e2a\u7ec8\u7aef":13,"\u65b0\u7248\u672cdjango":10,"\u65b9\u4fbf\u522b\u7684app\u5f15\u7528":10,"\u65b9\u4fbfsphinx\u5904\u7406":11,"\u65b9\u62ec\u53f7\u4e2d\u662f\u8be5\u72b6\u6001\u7801\u5bf9\u5e94\u7684http\u52a8\u8bcd":3,"\u65b9\u6cd5\u4e0e\u51fd\u6570\u540d":11,"\u65e5\u5fd7\u76ee\u5f55":10,"\u65f6":11,"\u65f6\u624d\u4f7f\u7528":11,"\u662f\u4e00\u6b3e\u5b8c\u5168\u5f00\u6e90\u7684\u8df3\u677f\u673a":8,"\u662f\u56e0\u4e3ajs\u4e2d\u6709\u5927\u91cf\u56de\u8c03\u5f0f\u7684\u5199\u6cd5":11,"\u662f\u7b26\u54084a":8,"\u66f4\u5c11\u4ee3\u7801":11,"\u66ff\u6362\u4e3a":4,"\u6709\u80fd\u529b\u5c3d\u53ef\u80fd\u7528\u82f1\u6587":11,"\u670d\u52a1\u5668\u53d1\u751f\u9519\u8bef":3,"\u670d\u52a1\u5668\u5411\u7528\u6237\u8fd4\u56de\u7684\u72b6\u6001\u7801\u548c\u63d0\u793a\u4fe1\u606f":3,"\u670d\u52a1\u5668\u5411\u7528\u6237\u8fd4\u56de\u7684\u7ed3\u679c\u5e94\u8be5\u7b26\u5408\u4ee5\u4e0b\u89c4\u8303":3,"\u670d\u52a1\u5668\u6210\u529f\u8fd4\u56de\u7528\u6237\u8bf7\u6c42\u7684\u6570\u636e":3,"\u670d\u52a1\u5668\u6ca1\u6709\u8fdb\u884c\u64cd\u4f5c":3,"\u670d\u52a1\u5668\u6ca1\u6709\u8fdb\u884c\u65b0\u5efa\u6216\u4fee\u6539\u6570\u636e\u7684\u64cd\u4f5c":3,"\u670d\u52a1\u5668\u8fd4\u56de\u7684\u6570\u636e\u683c\u5f0f":3,"\u672c\u6559\u7a0b\u4f7f\u7528mysql\u4f5c\u4e3a\u6570\u636e\u5e93":13,"\u674e\u78ca":5,"\u67e5\u770b\u914d\u7f6e\u6587\u4ef6\u5e76\u8fd0\u884c":13,"\u67ef\u8fde\u6625":5,"\u6838\u5fc3\u5f00\u53d1\u8005\u4e4b\u4e00":5,"\u6839\u636e\u559c\u597d\u9009\u62e9\u5b89\u88c5\u65b9\u5f0f\u548c\u7248\u672c":13,"\u6a21\u5757\u6587\u4ef6\u7684\u5934\u90e8\u5305\u542b\u6709utf":11,"\u6a21\u5757\u7d22\u5f15":8,"\u6a21\u677f\u6807\u7b7e\u76ee\u5f55":10,"\u6a21\u7cca\u641c\u7d22":3,"\u6b22\u8fce\u6765\u5230":8,"\u6b64\u5916\u90fd\u53ea\u7a7a\u4e00\u884c":11,"\u6bcf\u4e2a\u7f51\u5740\u4ee3\u8868\u4e00\u79cd\u8d44\u6e90":3,"\u6bcf\u4e2aurl\u72ec\u7acb\u547d\u540d":11,"\u6bd4\u5982":3,"\u6bd4\u5982\u4e0a\u9762\u63d0\u5230\u7684":3,"\u6bd4\u5982\u7528\u6237\u8bf7\u6c42json\u683c\u5f0f":3,"\u6c38\u8fdc\u4e0d\u8981\u4e0etrue\u6216false\u8fdb\u884c\u6bd4\u8f83":11,"\u6ca1\u6709\u524d\u540e\u7aef\u5206\u79bb":3,"\u6ca1\u6709\u6027\u80fd\u74f6\u9888":8,"\u6ca1\u6709\u72ec\u7acbapp":3,"\u6ca1\u6709web":13,"\u6ce8\u610f":13,"\u6ce8\u91ca\u660e\u786e\u4f18\u7f8e":11,"\u6ce8\u91ca\u7684\u89c4\u8303\u4e0e\u6587\u6863\u5b57\u7b26\u4e32\u7f16\u5199\u89c4\u8303\u7c7b\u4f3c":11,"\u6d4b\u8bd5\u6848\u4f8b\u5c3d\u53ef\u80fd\u5b8c\u6574":11,"\u6d4b\u8bd5\u7528\u4f8b\u6587\u4ef6":10,"\u6d4b\u8bd5\u8fde\u63a5":13,"\u6d4f\u89c8\u5668\u8bbf\u95ee":12,"\u6df1\u5ea6\u96c6\u6210\u4e86ansibl":8,"\u6ee1\u8db3\u6df7\u5408\u4e91\u67b6\u6784":8,"\u738b\u5889":5,"\u751f\u6210\u5927\u91cf\u6d4b\u8bd5\u6570\u636e":10,"\u751f\u6210\u6570\u636e\u5e93\u8868\u7ed3\u6784\u548c\u521d\u59cb\u5316\u6570\u636e":13,"\u7528\u6237\u4f7f\u7528\u6587\u6863":8,"\u7528\u6237\u5220\u9664\u6570\u636e\u6210\u529f":3,"\u7528\u6237\u53d1\u51fa\u7684\u8bf7\u6c42\u6709\u9519\u8bef":3,"\u7528\u6237\u53d1\u51fa\u7684\u8bf7\u6c42\u9488\u5bf9\u7684\u662f\u4e0d\u5b58\u5728\u7684\u8bb0\u5f55":3,"\u7528\u6237\u540d":3,"\u7528\u6237\u5c06\u65e0\u6cd5\u5224\u65ad\u53d1\u51fa\u7684\u8bf7\u6c42\u662f\u5426\u6210\u529f":3,"\u7528\u6237\u65b0\u5efa\u6216\u4fee\u6539\u6570\u636e\u6210\u529f":3,"\u7528\u6237\u6a21\u5757":[1,8],"\u7528\u6237\u8bf7\u6c42\u7684\u683c\u5f0f\u4e0d\u53ef\u5f97":3,"\u7528\u6237\u8bf7\u6c42\u7684\u8d44\u6e90\u88ab\u6c38\u4e45\u5220\u9664":3,"\u7528\u6237\u8bfb\u53d6\u8fd9\u4e2a\u5c5e\u6027\u5c31\u77e5\u9053\u4e0b\u4e00\u6b65\u8be5\u8c03\u7528\u4ec0\u4e48api\u4e86":3,"\u7531\u4e8e\u4e00\u4e2a\u9879\u76ee\u591a\u4e2aapp\u6240\u4ee5jumpserver\u4f7f\u7528\u4ee5\u4e0b\u98ce\u683c":3,"\u7531http\u52a8\u8bcd\u8868\u793a":3,"\u754c\u9762\u6f02\u4eae":8,"\u7684\u4e13\u4e1a\u8fd0\u7ef4\u5ba1\u8ba1\u7cfb\u7edf":8,"\u76f4\u63a5\u89e3\u538b":13,"\u770b\u5230\u4e0b\u9762\u7684\u63d0\u793a\u7b26\u4ee3\u8868\u6210\u529f":13,"\u786e\u4fdd\u4f7f\u7528\u7684\u662f\u521a\u624d\u8bbe\u7f6e\u7684\u914d\u7f6e\u6587\u4ef6":13,"\u7b26\u53f7\u540e\u6dfb\u52a0\u4e00\u4e2a\u5192\u53f7":11,"\u7b49":11,"\u7b80\u5355\u6613\u7528":8,"\u7ba1\u7406\u540e\u53f0\u76ee\u5f55":10,"\u7ba1\u7406\u5458\u6587\u6863":[],"\u7ba1\u7406\u6587\u6863":8,"\u7c7b\u540d\u79f0":11,"\u7c7b\u65b9\u6cd5":11,"\u7cfb\u7edf":[8,13],"\u7d22\u5f15":[],"\u7ec8\u70b9":3,"\u7ec8\u7aef":13,"\u7f16\u5199\u4e86luna\u5927\u90e8\u5206\u4ee3\u7801":[],"\u7f16\u5199\u4e86web":5,"\u7f16\u5199\u957f\u8bed\u53e5\u65f6":11,"\u7f16\u8bd1\u5b89\u88c5":13,"\u7fa41":4,"\u7fa42":4,"\u7fa43":4,"\u800c\u4e0d\u662fhttpwriter":11,"\u800c\u4e0d\u662fnot":11,"\u800c\u4e1421\u4e16\u7eaa\u90fd\u662f\u5bbd\u5c4f\u4e86":11,"\u800c\u4e14\u6240\u7528\u7684\u540d\u8bcd\u5f80\u5f80\u4e0e\u6570\u636e\u5e93\u7684\u8868\u683c\u540d\u5bf9\u5e94":3,"\u800c\u5e94\u8be5\u8fd9\u6837\u5199":11,"\u800c\u8981\u7528\u7a7a\u683c":13,"\u800cyum\u7b49\u5de5\u5177\u4f9d\u8d56\u539f\u6765\u7684python":13,"\u8054\u7cfb\u65b9\u5f0f":8,"\u82e5\u4e0ejumpserver\u90e8\u7f72\u5728\u540c\u4e00\u4e3b\u673a\u4e0a\u81ea\u5b9a\u4e49\u4e00\u4e0b":13,"\u8865\u5145\u8bf4\u660e":11,"\u8868\u793a\u4e00\u4e2a\u8bf7\u6c42\u5df2\u7ecf\u8fdb\u5165\u540e\u53f0\u6392\u961f":3,"\u8868\u793a\u7528\u6237\u5f97\u5230\u6388\u6743":3,"\u8868\u793a\u7528\u6237\u6ca1\u6709\u6743\u9650":3,"\u8868\u793aapi\u7684\u5177\u4f53\u7f51\u5740":3,"\u89e3\u538bluna":13,"\u8ba4\u8bc1authent":8,"\u8bbe\u8ba1\u6307\u5357":3,"\u8bbf\u95ee":13,"\u8be5\u64cd\u4f5c\u662f\u5e42\u7b49\u7684":3,"\u8be5\u955c\u50cf\u96c6\u6210\u4e86\u6240\u6709\u9700\u8981\u7684\u7ec4\u4ef6":12,"\u8bf4\u660e\u5982\u4e0b":10,"\u8bf7\u5728":11,"\u8bf7\u5c06\u5185\u5efa\u53d8\u91cf\u91cd\u65b0\u7ed1\u5b9a\u4e3a\u5176\u4ed6\u540d\u79f0":11,"\u8bf7\u6d4f\u89c8\u5668\u8bbf\u95ee":13,"\u8d21\u732e\u8005":8,"\u8d26\u53f7":13,"\u8d26\u53f7account":8,"\u8d44\u4ea7\u5f00\u53d1\u8005":5,"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":[1,8],"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08":5,"\u8d44\u6df1\u5f00\u53d1\u8005":5,"\u8def\u5f84\u53c8\u79f0":3,"\u8fd0\u884c":13,"\u8fd0\u884c\u4e0d\u62a5\u9519":13,"\u8fd0\u884cjumpserv":13,"\u8fd4\u56de\u4e00\u4e2a\u7a7a\u6587\u6863":3,"\u8fd4\u56de\u5355\u4e2a\u8d44\u6e90\u5bf9\u8c61":3,"\u8fd4\u56de\u5b8c\u6574\u7684\u8d44\u6e90\u5bf9\u8c61":3,"\u8fd4\u56de\u65b0\u751f\u6210\u7684\u8d44\u6e90\u5bf9\u8c61":3,"\u8fd4\u56de\u7684\u4fe1\u606f\u4e2d\u5c06error\u4f5c\u4e3a\u952e\u540d":3,"\u8fd4\u56de\u8d44\u6e90\u5bf9\u8c61\u7684\u5217\u8868":3,"\u8fd9\u65f6\u9700\u8981\u53bb":13,"\u8fd9\u7248api\u76f8\u5bf9\u7b80\u5355":3,"\u8fd9\u91cc\u4ec5\u8003\u8651rest":3,"\u8fd9\u91cc\u53ea\u662fjumpserv":13,"\u8fd9\u91cc\u6240\u9700\u8981\u6ce8\u610f\u7684\u662fguacamole\u66b4\u9732\u51fa\u6765\u7684\u7aef\u53e3\u662f8080":13,"\u8fdb\u884c\u6bd4\u8f83\u65f6":11,"\u8fde\u5411\u5176\u4ed6api\u65b9\u6cd5":3,"\u8fde\u63a5\u6d4b\u8bd5\u673a":13,"\u901a\u7528\u7684\u51fd\u6570\u65b9\u6cd5":10,"\u901a\u7528templat":10,"\u9075\u5faagpl":8,"\u90a3\u4e48\u4e0b\u4e00\u884c\u5e94\u4e0e\u62ec\u53f7\u6216\u82b1\u62ec\u53f7\u5bf9\u9f50":11,"\u90ae\u4ef6":8,"\u914d\u7f6e\u6587\u4ef6":13,"\u914d\u7f6e\u6587\u4ef6\u662fpython\u683c\u5f0f":13,"\u914d\u7f6e\u6587\u4ef6\u6837\u4f8b":10,"\u91c7\u7528\u9a86\u9a7c\u62fc\u5199\u6cd5":11,"\u91cd\u65b0\u4e0b\u8f7drelease\u5305":14,"\u9488\u5bf9\u4e0d\u540c\u64cd\u4f5c":3,"\u9632\u6b62\u8d44\u6e90\u91cd\u540d":10,"\u9648\u5c1a\u59d4":5,"\u96c6\u5408":3,"\u9700\u8981nginx\u6765\u8fd0\u884c\u8bbf\u95ee":13,"\u9876\u5c42\u51fd\u6570\u4e0e\u7c7b\u4e4b\u95f4\u7a7a\u4e24\u884c":11,"\u9879\u76ee\u5165\u53e3urlconf":10,"\u9879\u76ee\u591a\u8bed\u8a00\u76ee\u5f55":10,"\u9879\u76ee\u63d0\u4ea4\u8f83\u591agit":13,"\u9879\u76ee\u6a21\u677f\u76ee\u5f55":10,"\u9879\u76ee\u89c4\u8303":[6,8],"\u9879\u76ee\u8bbe\u7f6e\u6587\u4ef6":10,"\u9879\u76ee\u8bbe\u7f6e\u76ee\u5f55":10,"\u9879\u76ee\u9759\u6001\u8d44\u6e90\u76ee\u5f55":10,"\u9879\u76ee\u9aa8\u67b6":[6,8],"\u9884\u7f16\u8bd1\u7684\u6b63\u5219\u8868\u8fbe\u5f0f":11,"\u9996\u5b57\u6bcd\u7f29\u7565\u8bcd\u4fdd\u6301\u5927\u5199\u4e0d\u53d8":11,"api\u4e0e\u7528\u6237\u7684\u901a\u4fe1\u534f\u8bae":3,"api\u548cviews\u53ea\u662f\u8bf7\u6c42\u548c\u8fd4\u56de\u4e0d\u540c":10,"api\u6587\u4ef6":10,"api\u6587\u6863":3,"api\u6700\u597d\u505a\u5230hypermedia":3,"api\u7684\u57fa\u672c\u60c5\u51b5":3,"api\u7684\u8bbe\u8ba1\u88ab\u79f0\u4e3ahateoa":3,"api\u7684\u8eab\u4efd\u8ba4\u8bc1\u5e94\u8be5\u4f7f\u7528oauth":3,"api\u89c4\u8303\u7ea6\u5b9a":[6,8],"app\u4e0b\u6a21\u677f\u76ee\u5f55":10,"app\u4e0b\u9759\u6001\u8d44\u6e90\u76ee\u5f55":10,"app\u76ee\u5f55":10,"app\u8bbe\u7f6e\u6587\u4ef6":10,"case":11,"centos7\u4e0b\u5b89\u88c5\u7684\u662fmariadb":13,"class":[11,13],"clone\u65f6\u8f83\u5927":13,"cls\u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570":11,"cmdb\u4e2d\u7684assets\u5217\u8868":3,"collection\u5173\u7cfb":3,"com\u7684\u6839\u76ee\u5f55\u53d1\u51fa\u8bf7\u6c42":3,"default":13,"delete\u65b9\u6cd5\u8bf7\u4f7f\u7528\u8bf7\u6c42\u4f53\u4f20\u9012\u53c2\u6570":3,"developmentconfig\u4e2d\u7684\u914d\u7f6e":13,"django\u5f00\u53d1":8,"django\u8d44\u6df1\u5f00\u53d1\u8005":5,"docker\u5b98\u65b9\u5b89\u88c5\u6587\u6863":12,"docker\u5b98\u65b9\u5b89\u88c5\u6587\u6863http":[],"elasticsearch\u5b58\u50a8\u7b49\u529f\u80fd":8,"fix\u4e86\u5f88\u591abug":5,"get\u65b9\u6cd5\u8bf7\u4f7f\u7528url":3,"github\u7684api\u5c31\u662f\u8fd9\u79cd\u8bbe\u8ba1":3,"go\u4ee5\u53capaas\u5e73\u53f0\u5f00\u53d1":5,"href\u8868\u793aapi\u7684\u8def\u5f84":3,"html\u4ee3\u7801\u4e0d\u53d7\u6b64\u89c4\u8303\u7ea6\u675f":11,"i\u53c2\u6570":[13,14],"idc\u5217\u8868":3,"jperm\u5f00\u53d1\u8005":[],"js\u91c7\u75282\u7a7a\u683c\u7f29\u8fdb":11,"jumpserver\u4f7f\u7528redis\u505acache\u548cceleri":13,"jumpserver\u5e76\u6388\u6743":13,"jumpserver\u6d4b\u8bd5\u8fd0\u8425":5,"jumpserver\u7ba1\u7406\u540e\u53f0":13,"luna\u524d\u7aef\u4ee3\u7801\u8d21\u732e\u8005\u548c\u73b0\u5728\u7ef4\u62a4\u8005":[],"luna\u5df2\u6539\u4e3a\u7eaf\u524d\u7aef":13,"method\u52a0\u4e0aurl\u63d0\u4f9b\u7684\u8bed\u4e49":3,"migrations\u7248\u672c\u63a7\u5236\u76ee\u5f55":10,"property\u51fd\u6570\u4e2d\u4f7f\u7528\u533f\u540d\u51fd\u6570":11,"python\u4e00\u822c\u9650\u5236\u6700\u592779\u4e2a\u5b57\u7b26":11,"python\u4e25\u683c\u91c7\u75284\u4e2a\u7a7a\u683c\u7684\u7f29\u8fdb":11,"python\u65b9\u9762\u5927\u81f4\u7684\u98ce\u683c":11,"qq\u7fa4":8,"rel\u8868\u793a\u8fd9\u4e2aapi\u4e0e\u5f53\u524d\u7f51\u5740\u7684\u5173\u7cfb":3,"release\u5305":13,"return":11,"self\u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570":11,"selinux\u548c\u9632\u706b\u5899":13,"ssh\u8bbf\u95ee":12,"static":[10,13],"terminal\u4f1a\u62a5\u9519":13,"terminal\u5927\u90e8\u5206\u4ee3\u7801":5,"terminal\u767b\u5f55\u8bed\u6cd5\u5982\u4e0b":13,"terminal\u89e3\u51b3\u65b9\u6848":8,"title\u8868\u793aapi\u7684\u6807\u9898":3,"true":13,"type\u8868\u793a\u8fd4\u56de\u7c7b\u578b":3,"url\u4e2d\u7684\u53ef\u53d8\u90e8\u5206":3,"url\u7b49\u901a\u5e38\u6bd4\u8f83\u957f":11,"urlconf\u6587\u4ef6":10,"v2\u534f\u8bae":8,"view\u7f16\u7a0b":11,"views\u6587\u4ef6":10,"web\u90e8\u5206\u4ee3\u7801":11,"zip\u5305":13,For:13,NOT:3,Not:3,__init__:[10,11],accept:3,activ:13,add_head:13,admin:[10,13],alia:13,all:13,api:10,app:[3,10],app_id:3,applic:3,asc:3,asset:[3,10],asset_id:3,asset_list:10,author:11,automak:13,bar:11,base:11,bash:13,beta2:12,bin:13,brief:11,broker:13,camelcas:11,cat:13,cento:13,centos6:13,centos7:13,charset:13,checkout:13,client_id:3,clone:13,close:11,coco:[11,14],code:11,collect:3,column:11,com:[3,4,12,13],come:11,common:10,conf:13,conf_exampl:13,config:[10,13],config_exampl:13,configur:13,connect:13,content:[3,13],control:13,copyright:11,creat:[3,13],crud:3,css:11,data:13,databas:13,db_engin:[12,13],db_host:[12,13],db_name:[12,13],db_password:[12,13],db_port:[12,13],db_user:[12,13],debug:13,def:11,delet:3,demo:8,depth:13,desc:11,descript:11,detail:11,dev:13,devel:13,developmentconfig:13,devop:5,display_nam:11,django:11,doc:10,docker:[12,13],dockerfil:12,draft:[6,8],encod:13,endpoint:3,entiti:3,epel:13,error:3,even:11,exampl:[3,10],exp:11,fake:10,fals:11,faq:8,filter:11,firewalld:13,first:11,fit2cloud:4,fixtur:10,flask:11,foo:11,forbidden:3,form:11,forward:13,found:3,ftp:13,function_cal:11,gcc:13,get:3,get_annoying_nam:11,git:[4,13,14],github:[3,8,12,13],goe:11,gone:3,goodby:11,grant:13,guacamol:13,guidanc:11,gzip:13,halcyon:5,hash:11,hello:11,here:11,host:13,href:3,html:[10,11,13],http:[4,12,13],http_upgrad:13,httpwriter:11,i18n:10,ibul:4,idc:3,idempot:3,identifi:13,index:[11,13],inform:11,init:10,inlin:11,inst:[],instal:[10,13,14],intern:3,invalid:3,iptabl:13,item:11,item_count:11,item_valu:11,its:11,javascript:11,jiaxiangkong:5,json:[3,10],jumpserv:[4,6,10,12,13,14],jumpserver_serv:13,kei:[3,11],kelianchun:5,keyword:[3,11],lambda:11,latex:11,ldap:8,licens:[10,11],license_fil:11,license_nam:11,like:11,limit:[3,11],line:11,link:3,list:3,listen:13,liuz:5,localhost:[3,12,13],locat:13,log:10,longer:11,lowercase_with_underscor:11,luna:[11,14],make:13,make_migr:[13,14],manag:10,mani:11,mariadb:13,media:13,migrat:10,mixin:11,model:10,modul:11,more:[11,13],much:11,my_dict:11,my_list:11,myclass:11,mymodel:11,mysql:[12,13],mysql_host:12,mysqld:13,name:[3,11],name_r:11,node:11,object:11,offset:[3,11],one:12,openssl:13,opt:13,order:3,order_bi:11,org:[3,4,13],own:11,p2222:13,packag:11,page:3,paramet:[3,11],paramiko:11,password:11,patch:3,per_pag:3,pip:[13,14],png:10,post:3,print:11,properti:11,proxy_add_x_forwarded_for:13,proxy_http_vers:13,proxy_pass:13,proxy_set_head:13,pull:14,put:3,pw_hash:11,pwd:13,py3:13,python3:13,python:[11,13],queri:11,quit:13,quot:11,raw:11,readm:10,real:13,real_nam:11,redi:13,redis_host:12,redis_password:12,redis_port:12,rel:3,releas:13,remote_addr:13,request:3,requir:[13,14],resourc:3,rest:[6,8],root:[12,13],rpm_requir:13,run:[12,13],run_serv:13,salt:11,scalar:11,see:[11,13],select:3,self:11,server:3,servic:13,set:[10,11],setenforc:13,sha1:11,simpl:11,singleton:11,sofia:5,some_imag:10,somepassword:13,sort:3,sourc:13,span:11,sqlite:13,ssh:12,start:13,stop:13,string:11,style:11,systemctl:13,tag:10,tar:13,templat:10,templatetag:10,termin:[],test:10,that_returns_an_object_with_an_attribut:11,thi:11,this_is_a_very_long:11,three:11,tip:12,titl:3,trail:11,tripl:11,try_fil:13,txt:[13,14],type:3,unauthor:3,underscor:11,unicod:11,unproces:3,updat:3,upgrad:13,upper:11,uppercase_with_underscor:11,uri:13,url:10,user:11,usernam:11,utf8:13,utf:11,util:[10,13,14],valu:11,venv:13,version:[3,13],view:10,vnd:3,wget:13,window:8,wsgi:10,www:[3,4,13],xshell:13,xvf:13,xxx:12,xxxx:12,xxxxx:3,xxxxxx:3,year:11,you:11,yourformat:3,yum:13,yumaojun03:5,zlib:13,zoo:3},titles:["\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757","\u7ba1\u7406\u6587\u6863","\u7528\u6237\u6a21\u5757","REST API\u89c4\u8303\u7ea6\u5b9a","\u8054\u7cfb\u65b9\u5f0f","\u8d21\u732e\u8005","\u5f00\u53d1\u6587\u6863","FAQ","Jumpserver \u6587\u6863","\u5b89\u88c5\u6587\u6863","\u9879\u76ee\u9aa8\u67b6","Jumpserver \u9879\u76ee\u89c4\u8303\uff08Draft\uff09","\u5feb\u901f\u5b89\u88c5","\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5","\u5347\u7ea7","\u7528\u6237\u4f7f\u7528\u6587\u6863"],titleterms:{"\u4e00":13,"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":13,"\u4e00\u822c\u7a7a\u683c\u89c4\u5219":11,"\u4e09":13,"\u4e8c":13,"\u4e94":13,"\u4ed3\u5e93\u5730\u5740":12,"\u4ee3\u7801\u98ce\u683c":11,"\u516d":13,"\u5176\u5b83":3,"\u51c6\u5907python3\u548cpython\u865a\u62df\u73af\u5883":13,"\u51fd\u6570\u548c\u65b9\u6cd5\u7684\u53c2\u6570":11,"\u524d\u7aef":13,"\u5347\u7ea7":14,"\u534f\u8bae":3,"\u5373\u5404\u65b9\u6cd5":11,"\u5426\u5b9a\u6210\u5458\u5173\u7cfb\u68c0\u67e5":11,"\u547d\u540d\u7ea6\u5b9a":11,"\u56db":13,"\u57df\u540d":3,"\u57fa\u672c\u7684\u4ee3\u7801\u5e03\u5c40":11,"\u5b89\u88c5":13,"\u5b89\u88c5\u6587\u6863":9,"\u5b89\u88c5jumpserv":13,"\u5b89\u88c5windows\u652f\u6301\u7ec4\u4ef6":13,"\u5b98\u7f51":4,"\u5f00\u53d1\u6307\u5357":[],"\u5f00\u53d1\u6587\u6863":6,"\u5feb\u901f\u542f\u52a8":12,"\u5feb\u901f\u5b89\u88c5":12,"\u6574\u5408\u5404\u7ec4\u4ef6":13,"\u6587\u6863":8,"\u6587\u6863\u6ce8\u91ca":11,"\u6700\u5927\u884c\u957f\u5ea6":11,"\u6709\u5173jumpserv":8,"\u6a21\u5757\u5934\u90e8":11,"\u6bd4\u8f83":11,"\u6ce8\u91ca":11,"\u7248\u672c":3,"\u72b6\u6001\u7801":3,"\u73af\u5883":13,"\u7528\u6237\u4f7f\u7528\u6587\u6863":15,"\u7528\u6237\u6587\u6863":[],"\u7528\u6237\u6a21\u5757":2,"\u7a7a\u884c":11,"\u7ba1\u7406\u6587\u6863":1,"\u7c7b\u7684\u8bf4\u660e\u6587\u6863\u6ce8\u91ca":11,"\u7d22\u5f15":8,"\u7f29\u8fdb":11,"\u8054\u7cfb\u65b9\u5f0f":4,"\u8bbf\u95ee":12,"\u8bed\u53e5\u548c\u8868\u8fbe\u5f0f":11,"\u8bed\u8a00\u6846\u67b6":11,"\u8d21\u732e\u8005":5,"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":0,"\u8def\u5f84":3,"\u8fc7\u6ee4\u4fe1\u606f":3,"\u8fd4\u56de\u7ed3\u679c":3,"\u90ae\u4ef6":4,"\u914d\u7f6e":13,"\u9519\u8bef\u5904\u7406":3,"\u957f\u8bed\u53e5\u7f29\u8fdb":11,"\u9879\u76ee\u89c4\u8303":11,"\u9879\u76ee\u9aa8\u67b6":10,"\u989d\u5916\u73af\u5883\u53d8\u91cf":12,"api\u89c4\u8303\u7ea6\u5b9a":3,"django\u89c4\u8303":11,"qq\u7fa4":4,"server\u548cweb":13,api:3,coco:13,comment:11,demo:4,docstr:11,draft:11,faq:7,github:4,http:3,hypermedia:3,indic:[],jumpserv:[8,11],luna:13,method:3,nginx:13,rest:3,server:13,socket:13,ssh:13,tabl:[],termin:13,web:13}}) \ No newline at end of file diff --git a/docs/_build/html/step_by_step.html b/docs/_build/html/step_by_step.html index 42d9023b9..f1fc536d3 100644 --- a/docs/_build/html/step_by_step.html +++ b/docs/_build/html/step_by_step.html @@ -37,7 +37,7 @@ - + @@ -91,12 +91,22 @@
    • 安装文档
    • 管理文档
    • 用户使用文档
    • -
    • 开发指南
    • +
    • 开发文档
    • 贡献者
    • 联系方式
    • FAQ
    • @@ -167,6 +177,239 @@

      一步一步安装

      +
      +

      环境

      +
        +
      • 系统: 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

      +
      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

      +
      @@ -179,7 +422,7 @@