docker安装jumpserver

JumpServer官网:https://docs.jumpserver.org/zh/master/
我们公司一直在使用jumpserver,根据我的理解有以下优点:

  1. 这个服务能够快速登录到目标服务器
  2. 安全,每个人都有自己的账号,自己的每个操作都会记录在此服务上

一、搭建:

1.1 随机生成加密秘钥

if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

1.2 搭建MySQL服务

sudo docker run --name mysql-server -t \
--hostname mysql-server \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /volume1/docker/mysql/2/:/var/lib/mysql \
-e MYSQL_DATABASE="jumpserver" \
-e MYSQL_USER="jumpserver" \
-e MYSQL_PASSWORD="jumpserver" \
-e MYSQL_ROOT_PASSWORD="111111" \
-p 3306:3306 \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

查看容器运行日志docker logs -f mysql-server

1.3 搭建redis服务

sudo docker run --name redis-server -t \
--hostname redis-server \
--restart=always \
-v /etc/localtime:/etc/localtime \
-d redis

查看容器运行日志docker logs -f redis-server

1.4 搭建Jumpserver服务

sudo docker run --name jms_all -t \
--hostname jms_all \
--restart=always \
-v /etc/localtime:/etc/localtime \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_HOST="mysql-server" \
-e DB_PORT=3306 \
-e DB_NAME="jumpserver" \
-e DB_USER="jumpserver" \
-e DB_PASSWORD="jumpserver" \
--link mysql-server:mysql \
-e REDIS_HOST="redis-server" \
-e REDIS_PORT="6379" \
--link redis-server:redis \
-d jumpserver/jms_all:1.5.2

查看容器运行日志docker logs -f jms_all,请耐心等待初始化完成,时间可能比较长点(是真的长啊,得10-20左右分钟吧),当容器日志显示如下即可访问Jumpserver网页了
在这里插入图片描述
其中还遇到坑了,如下:

- Start Celery as Distributed Task Queue

- Start Beat as Periodic Task Scheduler
Error: celery start error
Stop service: gunicorn
celery is stopped
beat is stopped
Use eventlet dispatch
2020-10-02 09:13:22 [request ERROR] Connect endpoint http://127.0.0.1:8080 error: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))
2020-10-02 09:13:22 [terminal ERROR] Connect endpoint http://127.0.0.1:8080 error: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))
Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connection.py", line 160, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/util/connection.py", line 80, in create_connection
    raise err
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/util/connection.py", line 70, in create_connection
    sock.connect(sa)
  File "/opt/py3/lib64/python3.6/site-packages/eventlet/greenio/base.py", line 251, in connect
    socket_checkerr(fd)
  File "/opt/py3/lib64/python3.6/site-packages/eventlet/greenio/base.py", line 51, in socket_checkerr
    raise socket.error(err, errno.errorcode[err])
ConnectionRefusedError: [Errno 111] ECONNREFUSED

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 355, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib64/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib64/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib64/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib64/python3.6/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/usr/lib64/python3.6/http/client.py", line 964, in send
    self.connect()
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connection.py", line 183, in connect
    conn = self._new_conn()
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connection.py", line 169, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/opt/py3/lib64/python3.6/site-packages/urllib3/util/retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/jms/request.py", line 116, in do
    resp = req.do()
  File "/opt/py3/lib64/python3.6/site-packages/jms/request.py", line 54, in do
    **self.kwargs
  File "/opt/py3/lib64/python3.6/site-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/jms/terminal.py", line 62, in register_terminal_v2
    headers=headers
  File "/opt/py3/lib64/python3.6/site-packages/jms/request.py", line 130, in post
    return self.do(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/jms/request.py", line 120, in do
    raise RequestError(msg)
jms.exception.RequestError: Connect endpoint http://127.0.0.1:8080 error: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./cocod", line 31, in <module>
    from coco import Coco
  File "/opt/coco/coco/__init__.py", line 6, in <module>
    from .app import Coco
  File "/opt/coco/coco/app.py", line 14, in <module>
    from .sshd import SSHServer
  File "/opt/coco/coco/sshd.py", line 13, in <module>
    from coco.interface import SSHInterface
  File "/opt/coco/coco/interface.py", line 11, in <module>
    from .service import app_service
  File "/opt/coco/coco/service.py", line 12, in <module>
    app_service.initial()
  File "/opt/py3/lib64/python3.6/site-packages/jms/service.py", line 55, in initial
    self.load_access_key()
  File "/opt/py3/lib64/python3.6/site-packages/jms/service.py", line 66, in load_access_key
    self.register_and_save()
  File "/opt/py3/lib64/python3.6/site-packages/jms/service.py", line 93, in register_and_save
    self.config['NAME'], self.config['BOOTSTRAP_TOKEN']
  File "/opt/py3/lib64/python3.6/site-packages/jms/terminal.py", line 67, in register_terminal_v2
    raise RegisterError(msg)
jms.exception.RegisterError: Connect endpoint http://127.0.0.1:8080 error: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /api/terminal/v2/terminal-registrations/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ec7417898>: Failed to establish a new connection: [Errno 111] ECONNREFUSED',))
Starting guacd: guacd[94]: INFO:	Guacamole proxy daemon (guacd) version 1.0.0 started
SUCCESS

解决办法:很简单,重启服务(找了很久,也不清楚为什么,重启就OK了)

最终浏览器访问jumpserver所在IP地址,出现如下页面(初始用户、密码:admin,admin)
在这里插入图片描述
登陆后:
在这里插入图片描述
通过终端访问:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值