NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
基于 CentOS 7 一步一步安装 Jumpserver 0.5.0 #### 环境 ```` 系统: 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 ###### 运行 $ cd /opt/jumpserver $ ./jms start all # 后台运行使用 -d 参数./jms start all -d # 新版本更新了运行脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数 ####### 运行不报错,请浏览器访问 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 -r requirements.txt 3.3 查看配置文件并运行 $ cd /opt/coco $ cp conf_example.py conf.py $ python run_server.py ```` ```` $ cd /opt/coco $ cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py $ ./cocod start # 后台运行使用 -d 参数./cocod start -d # 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数 ```` 这时需要去 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 ... ```` ```` $ pwd /opt/ $ wget https://github.com/jumpserver/luna/releases/download/1.3.0/dist.tar.gz $ tar xvf dist.tar.gz $ mv dist luna $ ls /opt/luna ... ```` 五. 安装Windows支持组件 安装 Windows 支持组件(如果不需要管理 windows 资产,可以直接跳过这一步) $ yum remove docker-latest-logrotate docker-logrotate docker-selinux dockdocker-engine $ yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加docker官方源 $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ yum makecache fast $ yum install docker-ce # 国内部分用户可能无法连接docker官网提供的源,这里提供阿里云的镜像节点供测试使用 $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo $ rpm --import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg $ yum makecache fast $ yum -y install docker-ce $ systemctl start docker $ systemctl status docker # 注意:这里一定要改写一下本机的IP地址, 否则会出错, 带宽有限, 下载时间可能有点长,可以喝杯咖啡,撩撩对面的妹子 $ docker run --name jms_guacamole -d \ -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key \ -e JUMPSERVER_KEY_DIR=/config/guacamole/key \ -e JUMPSERVER_SERVER=http://<填写jumpserver的url地址> \ registry.jumpserver.org/public/guacamole:latest 使用docker启动 guacamole docker run -d \ -p 8081:8080 \ -e JUMPSERVER_SERVER=http://<jumpserver>:8080 \ jumpserver/guacamole 这里所需要注意的是guacamole暴露出来的端口是8080,若与jumpserver部署在同一主机上自定义一下。 docker run -d -p 8081:8080 -e JUMPSERVER_SERVER=http://192.168.50.128:8080 registry.jumpserver.org/public/guacamole:latest 修改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_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /guacamole/ { proxy_pass http://localhost:8081/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; access_log off; } location / { proxy_pass http://localhost:8080; } 6.3 运行 nginx 6.4 访问 http://192.168.244.144 升级 升级 jumpserver $ git pull && pip install -r requirements/requirements.txt && cd utils && sh make_migrations.sh 升级 coco $ git pull && cd requirements && pip install -r requirements.txt # 不要指定 -i参数 升级 luna 重新下载release包