用docker-compose 安装jumpserver
安装docker
1 2 3 4 5 6 7
| yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker && systemctl enable docker
|
docker疑难杂症:docker命令Tab无法自动补全
1 2 3 4 5 6 7
| 一、安装bash-complete yum install -y bash-completion
二、刷新文件 source /usr/share/bash-completion/completions/docker source /usr/share/bash-completion/bash_completion
|
安装docker-compose
1 2 3 4 5 6 7 8 9 10
| curl -L https://github.com/docker/compose/releases/download/1.26.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 或者: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose 查看版本信息 # docker-compose --version
|
需要注意安装iptables 而且如果iptables相关报错的话 重启下
1 2 3
| 注意/etc/sysctl.conf 里面写 net.ipv4.ip_forward = 1
运行命令 sysctl -p --system
|
开始安装jumpserver dockerfile 文件
1 2 3 4 5 6
| mkdir jumpserver cd jumpserver git clone https://github.com/wojiushixiaobai/docker-compose.git cd docker-compose
cat .env docker-compose up -d
|
以下文件内容为.env
1 2 3 4 5 6 7 8 9 10 11
| # 版本号可以自己根据项目的版本修改 Version=1.5.4
# MYSQL_ROOT_PASSWORD 不支持纯数字, 字符串位数推荐大于等于 8 MYSQL_ROOT_PASSWORD=oM0aevSQaH8Bd2Bgg5cX8lOd
# SECRET_KEY 不支持纯数字, 推荐字符串位数大于等于 50, 仅首次安装定义, 升级或者迁移请勿修改此项 SECRET_KEY=B3f2w8P2PfxIAS7s4URrD9YmSbtqX4vXdPUL217kL9XPUOWrmy
# BOOTSTRAP_TOKEN 不支持纯数字, 推荐字符串位数大于等于 16, 仅首次安装定义, 升级或者迁移请勿修改 BOOTSTRAP_TOKEN=7Q11Vz6R2J6BLAdO
|
以下文件内容为docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| version: '3' services: mysql: image: mysql:5.7 container_name: jms_mysql restart: always tty: true environment: MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD MYSQL_DATABASE: jumpserver command: --character-set-server=utf8 volumes: - db-data:/var/lib/mysql networks: - jumpserver
redis: image: redis:alpine container_name: jms_redis restart: always tty: true volumes: - redis-data:/data networks: - jumpserver
core: image: wojiushixiaobai/jms_core:${Version} container_name: jms_core hostname: jms_core restart: always tty: true environment: SECRET_KEY: $SECRET_KEY BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN DB_ENGINE: mysql DB_HOST: mysql DB_PORT: 3306 DB_USER: root DB_PASSWORD: $MYSQL_ROOT_PASSWORD DB_NAME: jumpserver REDIS_HOST: redis depends_on: - mysql - redis volumes: - static:/opt/jumpserver/data/static - media:/opt/jumpserver/data/media - logs:/opt/jumpserver/logs networks: - jumpserver
koko: image: wojiushixiaobai/jms_koko:${Version} container_name: jms_koko restart: always tty: true environment: CORE_HOST: http://core:8080 BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN depends_on: - core - mysql - redis volumes: - keys-data:/opt/koko/data/keys ports: - 2222:2222 networks: - jumpserver
guacamole: image: wojiushixiaobai/jms_guacamole:${Version} container_name: jms_guacamole restart: always tty: true environment: JUMPSERVER_SERVER: http://core:8080 BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN JUMPSERVER_KEY_DIR: /config/guacamole/keys GUACAMOLE_HOME: /config/guacamole GUACAMOLE_LOG_LEVEL: ERROR depends_on: - core - mysql - redis volumes: - gua-key:/config/guacamole/keys networks: - jumpserver
nginx: image: wojiushixiaobai/jms_nginx:${Version} container_name: jms_nginx restart: always tty: true depends_on: - core - koko - mysql - redis volumes: - static:/opt/jumpserver/data/static - media:/opt/jumpserver/data/media ports: - 80:80 networks: - jumpserver
volumes: static: media: logs: db-data: redis-data: keys-data: gua-key:
networks: jumpserver:
|
jms_koko的端口也可以改
也可以改变下jumpserver的访问端口
1 2
| vim ./docker-compose/docker-compose.yml 把里面的nginx 容器映射端口80:80 改成88:80
|
然后输入ip地址对应的88端口就可以登录了,默认密码是admin
jumpserver的使用
登录后先创建相关用户,设置
首先创建 用户管理 ——>用户列表—–创建用户
用户管理 ——>用户组—–创建用户组
现在luke用户就属于运维组了
**资产管理 ** —-> 资产列表 —->创建资产
**资产管理 ** —-> 管理用户 和系统用户
1,创建管理用户root的时候密码需要写服务器的登录密码,系统用户也要自己新设密码
2,创建管理用户最好是设置秘钥的方式连接
先在服务器设置秘钥 -C 是生成新的备注luke.com
1 2 3
| ssh-keygen -C "luke.com" 直接敲回车生成秘钥对, cd ~/.ssh 把自己的公钥复制到authorized_keys中 cp id_rsa.pub authorized_keys 然后把id_rsa私钥 下载到本地保存
|
然后在管理用户里面上传服务器的秘钥
然后提交就可以了,
需要连接其他服务器的话就直接把第一台服务器的公钥放到~/.ssh/authorized_keys 文件去,然后就可以了
还需要设置命令过滤
创建系统用户的时候重要的命名需要添加sudo 权限才能执行
设置密码123.yunwei
例如下面的命令
1 2
| /bin/whoami,/usr/bin/docker,/usr/sbin/nginx,/usr/bin/ansible-playbook,/usr/bin/openresty,/usr/bin/vim,/usr/bin/ansible,/usr/bin/cd,/usr/bin/unzip,/usr/bin/cp,/usr/bin/mkdir,/usr/bin/chown,/usr/bin/ssh,/usr/sbin/iptables,/usr/bin/echo,/usr/bin/systemctl,/usr/bin/sh,/usr/bin/sed,/usr/bin/cat,/usr/bin/grep,/usr/bin/mv,/usr/bin/chmod,/usr/local/bin/docker-compose,/usr/sbin/service,/usr/bin/tail,/usr/bin/rm
|
下一步创建 权限管理 —>资产授权—>创建授权
创建相关资产,然后退出administrator用户,
重新用luke用户登录,并设置ssh
点击资产管理—->系统用户—->点击yunwei 然后测试资产连接性
点击会话管理 然后点击web终端 就可以了,进入是以系统用户的身份登录的服务器
在里面编辑一些文件都需要加sudo 权限
报这样的错误,就需要把权限加进去
加入给系统用户加上权限后就可以编辑文件了
用Xshell连接jms_koko 2020端口然后进行操作
先把自己用户的秘钥下载到本地,然后导入xshell里面 然后进行连接,
也可以用 用户的登录密码进行连接
然后就可以通过终端的方式连接