Core 环境部署

    • 是 JumpServer 的核心组件,由 Django 二次开发而来,内置了 Celery Beat Daphne 服务。
    • 可以从 网站上获取最新的 Release 副本。这些版本是最新代码的稳定快照,从项目网站下载的源将采用 .tar.gz 存档的形式,通过命令行中提取该存档:
    1. requirements/ # 对应操作系统需要的依赖包
    2. ├── apk_pkg.sh # Alpine
    3. ├── deb_pkg.sh # 基于 Debian 的发行版(如: Ubuntu)
    4. ├── issues.txt # macOS 一些问题及解决方案
    5. ├── mac_pkg.sh # macOS
    6. ├── requirements.txt # python
    7. └── rpm_pkg.sh # 基于 RedHat 的发行版(如: CentOS)
    1. apt-get install -y pkg-config libxmlsec1-dev libpq-dev libffi-dev libxml2 libxslt-dev libldap2-dev libsasl2-dev sshpass mariadb-client bash-completion g++ make sshpass

    如果你安装的是 MySQL, 将 mariadb 开发包自行替换成 mysql, 或者不要将 数据库 和 Core 部署在一起

    • Python 网站获取部署 Python3 的方法,请根据 ,通过命令行中判断是否安装完成:
    1. apt-get install -y python3.8 python3.8-dev python3-venv
    1. python3
    1. Python 3.8.12 (default, Dec 21 2021, 10:55:30)
    2. [GCC 10.2.1 20210110] on linux
    3. Type "help", "copyright", "credits" or "license" for more information.
    4. >>>
    • 为 JumpServer 项目单独创建 python3 虚拟环境。
    • 每次运行项目都需要先执行 source /opt/py3/bin/activate 载入此环境。
    1. pip install -U pip setuptools wheel
    2. pip install -r requirements/requirements.txt
    • 修改配置文件。
    1. cp config_example.yml config.yml
    2. vi config.yml
    1. # SECURITY WARNING: keep the secret key used in production secret!
    2. # 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成
    3. # $ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 48;echo
    4. SECRET_KEY: **************** # 必填项, 长度推荐 50 位以上
    5. # SECURITY WARNING: keep the bootstrap token used in production secret!
    6. # 预共享Token koko 和 lion 用来注册服务账号,不在使用原来的注册接受机制
    7. # $ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24;echo
    8. BOOTSTRAP_TOKEN: *********** # 必填项, 长度推荐 20 位以上
    9. # Development env open this, when error occur display the full process track, Production disable it
    10. # DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志
    11. DEBUG: true # 开发建议打开 DEBUG, 生产环境应该关闭
    12. # DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
    13. # 日志级别
    14. LOG_LEVEL: DEBUG # 开发建议设置 DEBUG, 生产环境推荐使用 ERROR
    15. # LOG_DIR:
    16. # Session expiration setting, Default 24 hour, Also set expired on on browser close
    17. # 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期
    18. # SESSION_COOKIE_AGE: 86400
    19. SESSION_EXPIRE_AT_BROWSER_CLOSE: true # 浏览器关闭 session 过期
    20. # Database setting, Support sqlite3, mysql, postgres ....
    21. # 数据库设置
    22. # See https://docs.djangoproject.com/en/1.10/ref/settings/#databases
    23. # SQLite setting:
    24. # 使用单文件sqlite数据库
    25. # DB_ENGINE: sqlite3
    26. # MySQL or postgres setting like:
    27. # 使用Mysql作为数据库
    28. DB_ENGINE: mysql
    29. DB_HOST: 127.0.0.1 # 自行配置 数据库相关
    30. DB_PORT: 3306
    31. DB_USER: jumpserver
    32. DB_PASSWORD: ********
    33. DB_NAME: jumpserver
    34. # When Django start it will bind this host and port
    35. # ./manage.py runserver 127.0.0.1:8080
    36. # 运行时绑定端口, 将会使用 0.0.0.0:8080 0.0.0.0:8070 端口
    37. HTTP_BIND_HOST: 0.0.0.0
    38. HTTP_LISTEN_PORT: 8080
    39. WS_LISTEN_PORT: 8070
    40. # Use Redis as broker for celery and web socket
    41. # Redis配置
    42. REDIS_HOST: 127.0.0.1 # 自行配置 Redis 相关
    43. REDIS_PORT: 6379
    44. REDIS_PASSWORD: ********
    45. # REDIS_DB_CELERY: 3
    46. # REDIS_DB_CACHE: 4
    47. # Use OpenID Authorization
    48. # 使用 OpenID 进行认证设置
    49. # AUTH_OPENID: False # True or False
    50. # BASE_SITE_URL: None
    51. # AUTH_OPENID_CLIENT_ID: client-id
    52. # AUTH_OPENID_CLIENT_SECRET: client-secret
    53. # AUTH_OPENID_PROVIDER_ENDPOINT: https://op-example.com/
    54. # AUTH_OPENID_PROVIDER_AUTHORIZATION_ENDPOINT: https://op-example.com/authorize
    55. # AUTH_OPENID_PROVIDER_TOKEN_ENDPOINT: https://op-example.com/token
    56. # AUTH_OPENID_PROVIDER_JWKS_ENDPOINT: https://op-example.com/jwks
    57. # AUTH_OPENID_PROVIDER_USERINFO_ENDPOINT: https://op-example.com/userinfo
    58. # AUTH_OPENID_PROVIDER_END_SESSION_ENDPOINT: https://op-example.com/logout
    59. # AUTH_OPENID_PROVIDER_SIGNATURE_ALG: HS256
    60. # AUTH_OPENID_PROVIDER_SIGNATURE_KEY: None
    61. # AUTH_OPENID_SCOPES: "openid profile email"
    62. # AUTH_OPENID_ID_TOKEN_MAX_AGE: 60
    63. # AUTH_OPENID_ID_TOKEN_INCLUDE_CLAIMS: True
    64. # AUTH_OPENID_USE_STATE: True
    65. # AUTH_OPENID_USE_NONCE: True
    66. # AUTH_OPENID_SHARE_SESSION: True
    67. # AUTH_OPENID_IGNORE_SSL_VERIFICATION: True
    68. # AUTH_OPENID_ALWAYS_UPDATE_USER: True
    69. # Use Radius authorization
    70. # 使用Radius来认证
    71. # AUTH_RADIUS: false
    72. # RADIUS_PORT: 1812
    73. # RADIUS_SECRET:
    74. # CAS 配置
    75. # AUTH_CAS': False,
    76. # CAS_SERVER_URL': "http://host/cas/",
    77. # CAS_ROOT_PROXIED_AS': 'http://jumpserver-host:port',
    78. # CAS_LOGOUT_COMPLETELY': True,
    79. # CAS_VERSION': 3,
    80. # LDAP/AD settings
    81. # LDAP 搜索分页数量
    82. # AUTH_LDAP_SEARCH_PAGED_SIZE: 1000
    83. #
    84. # 定时同步用户
    85. # 启用 / 禁用
    86. # AUTH_LDAP_SYNC_IS_PERIODIC: True
    87. # 同步间隔 (单位: 时) (优先)
    88. # AUTH_LDAP_SYNC_INTERVAL: 12
    89. # Crontab 表达式
    90. # AUTH_LDAP_SYNC_CRONTAB: * 6 * * *
    91. #
    92. # LDAP 用户登录时仅允许在用户列表中的用户执行 LDAP Server 认证
    93. # AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS: False
    94. #
    95. # LDAP 认证时如果日志中出现以下信息将参数设置为 0 (详情参见:https://www.python-ldap.org/en/latest/faq.html)
    96. # In order to perform this operation a successful bind must be completed on the connection
    97. # AUTH_LDAP_OPTIONS_OPT_REFERRALS: -1
    98. # OTP settings
    99. # OTP/MFA 配置
    100. # OTP_VALID_WINDOW: 0
    101. # OTP_ISSUER_NAME: Jumpserver
    102. # Perm show single asset to ungrouped node
    103. # 是否把未授权节点资产放入到 未分组 节点中
    104. # PERM_SINGLE_ASSET_TO_UNGROUP_NODE: False
    105. #
    106. # 同一账号仅允许在一台设备登录
    107. # USER_LOGIN_SINGLE_MACHINE_ENABLED: False
    108. #
    109. # 启用定时任务
    110. # PERIOD_TASK_ENABLE: True
    111. #
    112. # 启用二次复合认证配置
    113. # LOGIN_CONFIRM_ENABLE: False
    114. #
    115. # Windows 登录跳过手动输入密码
    116. # WINDOWS_SKIP_ALL_MANUAL_PASSWORD: False
    • 处理国际化。