zoukankan      html  css  js  c++  java
  • docker 安装jumpserver

    #docker 安装
    mkdir /etc/docker
    echo "{
        "registry-mirrors" : [
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://hub-mirror.c.163.com",
        "https://cr.console.aliyun.com/"
      ]
    }">>/etc/docker/daemon.json


    yum -y install yum-utils
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum makecache fast
    yum -y install docker-ce
    systemctl start docker && systemctl enable docker

    #生成秘钥
    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

    注:生成完 SECRET_KEY 和 BOOTSTRAP_TOKEN 变量后一定要确认一下,如果出现异常将会影响到后面的过程

    创建jms容器中的日志及数据挂到宿机的目录
    mkdir -p /jumpserver/jumpserver/data
    mkdir -p /jumpserver/koko/data
    mkdir -p /jumpserver/nginx/logs
    mkdir -p /jumpserver/mysql/{data,logs}

    ==============  不管用以下哪种方法都要执行以上操作 创建完容器后一定要等几分钟再访问  =====================

    方法1:

    #pull镜像和创建容器(所有数据都在容器中)
    docker run --name jms_all -d
    -p 80:80 -p 2222:2222
    -e SECRET_KEY=$SECRET_KEY
    -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
    jumpserver/jms_all:latest

    网页登录容器所在IP,账密:admin/admin

    方法2:(个人推荐使用该方法)

    1、容器中的jumpserver的数据在/opt/jumpserver/data目录中,日志在/opt/jumpserver/logs目录中,初始化数据库在/opt/jumpserver/utils目录中,配置文件在/opt/jumpserver/config.yml文件中,启动jumpserver命令为/opt/jumpserver/jms { start | restart | stop }

    2、koko插件的配置文件在/opt/koko/config.yml文件中,数据在/opt/koko/data目录中

    docker run --name jms_all -d
    -p 80:80 -p 2222:2222
    -e SECRET_KEY=$SECRET_KEY
    -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
    -v /jumpserver/jumpserver/data:/opt/jumpserver/data
    -v /jumpserver/jumpserver/logs:/opt/jumpserver/logs
    -v /jumpserver/koko/data:/jumpserver/koko/data
    -v /jumpserver/nginx/logs:/var/log/nginx/
    jumpserver/jms_all:latest

    #测试(其他机器连接172.16.186.131,连接用户是admin,密码是admin)

    方法3:(该方法顺序不能变)

    #docker pull mysql
    docker run --restart=always
    --name mysql5.7 -id
    -e MYSQL_DATABASE="jumpserver"
    -e MYSQL_USER="jumpserver"
    -e MYSQL_PASSWORD="AA7788aa"
    -e MYSQL_ROOT_PASSWORD="AA7788aa"
    -v /jumpserver/mysql/data:/var/lib/mysql
    -v /jumpserver/mysql/logs:/var/log/mysql/
    -p 3306:3306 -d mysql:5.7.20

    #docker pull redis
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo "vm.overcommit_memory=1">>/etc/sysctl.conf
    echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
    echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
    sysctl -p
    docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes

    redis容器中登录方式

     
    #docker pull jms
    docker run --restart=always
    --name jms_all -d
    -p 80:80 -p 2222:2222
    -e SECRET_KEY=$SECRET_KEY
    -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
    -v /jumpserver/jumpserver/data:/opt/jumpserver/data
    -v /jumpserver/jumpserver/logs:/opt/jumpserver/logs
    -v /jumpserver/koko/data:/jumpserver/koko/data
    -v /jumpserver/nginx/logs:/var/log/nginx/
    -e DB_HOST="mysql5.7"
    -e DB_PORT=3306
    -e DB_USER=root
    -e DB_PASSWORD=AA7788aa
    -e DB_NAME=jumpserver
    --link mysql5.7:mysql
    -e REDIS_HOST=redis
    -e REDIS_PORT=6379
    -e REDIS_PASSWORD=A12345a
    --link redis:redis
    jumpserver/jms_all:latest

                          注:创建完容器后要稍等一下在去页面访问。

    方法4:(该方法适合在无互联网环境中使用且只需redis和jms_all即可)

    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

    mkdir -p /jumpserver/jumpserver/data
    mkdir -p /jumpserver/koko/data
    mkdir -p /jumpserver/nginx/logs
    mkdir -p /jumpserver/mysql/{data,logs}

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo "vm.overcommit_memory=1">>/etc/sysctl.conf
    echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
    echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
    sysctl -p

    #需在互联网中将redis和jms_all的镜像pull下来,再打成tar包发送至内网环境中,并导入进去
    将镜像打包
    docker save -o <new_name>.tar  <ImageID>
    导入镜像
    docker load -i <new_name>.tar
    将镜像更换名
    docker tag <images_name>:<tag> <image_name>:<tag>

    docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes

    docker run --restart=always
    --name jms_all -d
    -p 80:80 -p 2222:2222
    -e SECRET_KEY=$SECRET_KEY
    -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
    -v /jumpserver/jumpserver/data:/opt/jumpserver/data
    -v /jumpserver/jumpserver/logs:/opt/jumpserver/logs
    -v /jumpserver/koko/data:/jumpserver/koko/data
    -v /jumpserver/nginx/logs:/var/log/nginx/
    -v /jumpserver/mysql/data:/var/lib/mysql/
    -v /jumpserver/mysql/logs:/var/log/mariadb/
    -e REDIS_HOST=redis
    -e REDIS_PORT=6379
    -e REDIS_PASSWORD=A12345a
    --link redis:redis
    jms_all:latest

    注:如在创建jms容器时报错,需先将-v /jumpserver/mysql/logs:/var/log/mariadb/ 这条去掉,再创建,无问题后再删掉容器后再加上-v /jumpserver/mysql/logs:/var/log/mariadb/ 选项来创建jms容器

    docker容器设置开机自启动:
    --restart具体参数值详细信息
    no - 容器退出时,不重启容器
    on-failure - 只有在非0状态退出时才从新启动容器
    always - 无论退出状态是如何,都重启容器
    使用 on-failure 策略时指定 Docker 将尝试重新启动容器的最大次数;默认情况下Docker将尝试永远重新启动容器;
    docker run --restart=on-failure:10 redis
    如果创建容器时未指定 --restart=always ,可通过 update 命令更改;    
    docker update --restart=always 容器ID

    如未使用--restart=always选项,在服务器或其他情况导致服务器关机/重启,再次启动容器时需先起MySQL、redis,最后起jms

    添加windows系列主机

    先创建组,左侧“用户管理”---用户组---创建---填写信息---提交

    创建用户

    左侧“用户管理”---用户列表---创建---填写信息(如下图,下图为填写好以后的)---提交

    创建管理用户

    左侧“资产管理”---管理用户---创建---填写信息(名称可自定义,用户名填写登录被控机的账号和密码)---提交

    创建系统用户

    左侧“资产管理”---系统用户---创建---填写信息---提交

    (名称可自定义,windows也可以自动登录,用户名为登录登录被控机的账户,优先级默认,协议为rdp,自动推送关闭,密码为登录被控机的密码)

    将资产授权给用户

    左侧“权限管理”---资产授权---创建---填写信息---提交

    注:上图中的开始日期和失效日期为可选项

    以上所有都得保证下图中的2个服务是在线状态,如下图所示

    用户登录

    注:账密为服务端中“用户管理”---“用户列表”中的,客户端登录时用户名为“用户列表”中的用户名列,密码为自定义的

    点击上图中的“动作”列中的第一个图标即可连到windows被控端,如下图所示(因为在服务端授权时选的“自动登录”,所以点完“动作”列中的第一个图标后可以直接连进来)

     

    添加Linux主机

    组、用户还用上面的“张三”,因为该项仅供web端登录使用

    创建管理用户

    资产管理----管理用户----创建(名称自定义,用户名和密码为linux端的一个用户和对应的密码)

    创建系统用户

    资产管理----系统用户----创建

     注:上图中的名称可自定义,sudo项为使用zs用户登录进去后能执行的命令

    添加资产

    资产管理----资产列表----添加资产----创建(主机名必须如实写)

    资产授权

    权限管理----资产授权----创建

    还是使用张三用户登录进行查看/测试

     注:可以看到使用zs用户执行id命令时产生了一个报错,待解决!!!

    或者使用官方的脚本安装

    # https://github.com/jumpserver/jumpserver/releases
    wget https://github.com/jumpserver/jumpserver/releases/download/2.0.1/quick_start.sh
    sh -x quick_start.sh
    注:使用该方式时需要把koko容器中的logs目录单独挂出来,不然日志随着时间的推移会越来越大(容器中的日志在/config/tomcat9/logs)
    或参考

        欢迎加入QQ群一起讨论Linux、开源等技术

  • 相关阅读:
    CRC16冗余循环检测计算器好用。modbus RTU
    WINCC 应用与提高(78讲15.98G)视频教程网盘下载
    MFC win32 API串口同步模式代码示范
    arduino连接12864LCD方法ST7920
    arduino连接LCD1602LCD方法
    WIN10下如何解决PL2303驱动不可用的问题或者com口显示黄色感叹号usbtoserial
    SQL Server类型与C#类型对应关系
    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 .
    sql中如何调用另一台服务器的数据库查询数据呢?
    SQL Server 触发器
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/13199996.html
Copyright © 2011-2022 走看看