KoKo 环境部署⚓︎
1 KoKo 组件简述⚓︎
Koko 是 Go 版本的 coco,重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务。
1.1 环境要求⚓︎
Name | KoKo | Go | Node | Redis Client |
---|---|---|---|---|
Version | v3.10.15 | 1.18 | 16.5 | >= 6.0 |
1.2 选择部署方式⚓︎
- 下载源代码。
- 从项目网站下载 Source code.tar.gz 源代码,通过命令行中提取该存档:
cd /opt
mkdir /opt/koko-v3.10.15
wget -O /opt/koko-v3.10.15.tar.gz https://github.com/jumpserver/koko/archive/refs/tags/v3.10.15.tar.gz
tar -xf koko-v3.10.15.tar.gz -C /opt/koko-v3.10.15 --strip-components 1
node -v
v16.5
- 安装 Client 依赖。
apt-get update
apt install software-properties-common
add-apt-repository -y ppa:redislabs/redis
apt-get install -y mariadb-client bash-completion redis-tools
cd /opt
mkdir /opt/kubectl-aliases
wget http://download.jumpserver.org/public/kubectl_aliases.tar.gz -O kubectl_aliases.tar.gz
tar -xf kubectl_aliases.tar.gz -C /opt/kubectl-aliases
cd /opt
wget https://golang.google.cn/dl/go1.18.7.linux-amd64.tar.gz
tar -xf go1.18.7.linux-amd64.tar.gz -C /usr/local/
chown -R root:root /usr/local/go
export PATH=/usr/local/go/bin:$PATH
echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc
go version
go version go1.18.7 linux/amd64
- 编译。
OS | Arch | Command |
---|---|---|
Linux | amd64 | make linux |
macOS | amd64 | make darwin |
cd /opt/koko-v3.10.15
make
cp build/koko-v3.10.15-linux-amd64.tar.gz /opt
构建完成后, 生成在 build 目录下
OS | Arch | Name |
---|---|---|
Linux | amd64 | koko-v3.10.15-linux-amd64.tar.gz |
Linux | arm64 | koko-v3.10.15-linux-arm64.tar.gz |
linux | loong64 | koko-v3.10.15-linux-loong64.tar.gz |
Darwin | amd64 | koko-v3.10.15-darwin-amd64.tar.gz |
Darwin | arm64 | koko-v3.10.15-darwin-arm64.tar.gz |
cd /opt
wget https://download.jumpserver.org/public/kubectl-linux-amd64.tar.gz -O kubectl.tar.gz
tar -xf kubectl.tar.gz
mv kubectl /usr/local/bin/rawkubectl
wget https://download.jumpserver.org/public/helm-v3.9.0-linux-amd64.tar.gz
tar -xf helm-v3.9.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/rawhelm
chmod 755 /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
chown root:root /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
rm -rf linux-amd64
wget https://github.com/jumpserver/koko/releases/download/v3.10.15/koko-v3.10.15-linux-amd64.tar.gz
tar -xf koko-v3.10.15-linux-amd64.tar.gz -C /opt
cd koko-v3.10.15-linux-amd64
mv kubectl /usr/local/bin/kubectl
cd /opt
wget https://download.jumpserver.org/public/kubectl-linux-arm64.tar.gz -O kubectl.tar.gz
tar -xzf kubectl.tar.gz
mv kubectl /usr/local/bin/rawkubectl
wget https://download.jumpserver.org/public/helm-v3.9.0-linux-arm64.tar.gz
tar -xf helm-v3.9.0-linux-arm64.tar.gz
mv linux-arm64/helm /usr/local/bin/rawhelm
chmod 755 /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
chown root:root /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
rm -rf linux-arm64
wget https://github.com/jumpserver/koko/releases/download/v3.10.15/koko-v3.10.15-linux-arm64.tar.gz
tar -xf koko-v3.10.15-linux-arm64.tar.gz -C /opt
cd koko-v3.10.15-linux-arm64
mv kubectl /usr/local/bin/kubectl
1.3 修改配置文件⚓︎
cp config_example.yml config.yml
vi config.yml
# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }}
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080 # Core 的地址
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: ******** # 和 Core config.yml 的值保持一致
# 启动时绑定的ip, 默认 0.0.0.0
BIND_HOST: 0.0.0.0
# 监听的SSH端口号, 默认2222
SSHD_PORT: 2222 # 使用 0.0.0.0:2222
# 监听的HTTP/WS端口号,默认5000
HTTPD_PORT: 5000 # 使用 0.0.0.0:5000
# 项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null
# ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
# ACCESS_KEY_FILE: data/keys/.access_key
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: DEBUG # 开发建议设置 DEBUG, 生产环境推荐使用 ERROR
# SSH连接超时时间 (default 15 seconds)
# SSH_TIMEOUT: 15
# 语言 [en,zh]
# LANGUAGE_CODE: zh
# SFTP的根目录, 可选 /tmp, Home其他自定义目录
# SFTP_ROOT: /tmp
# SFTP是否显示隐藏文件
# SFTP_SHOW_HIDDEN_FILE: false
# 是否复用和用户后端资产已建立的连接(用户不会复用其他用户的连接)
# REUSE_CONNECTION: true
# 资产加载策略, 可根据资产规模自行调整. 默认异步加载资产, 异步搜索分页; 如果为all, 则资产全部加载, 本地搜索分页.
# ASSET_LOAD_POLICY:
# zip压缩的最大额度 (单位: M)
# ZIP_MAX_SIZE: 1024M
# zip压缩存放的临时目录 /tmp
# ZIP_TMP_PATH: /tmp
# 向 SSH Client 连接发送心跳的时间间隔 (单位: 秒),默认为30, 0则表示不发送
# CLIENT_ALIVE_INTERVAL: 30
# 向资产发送心跳包的重试次数,默认为3
# RETRY_ALIVE_COUNT_MAX: 3
# 会话共享使用的类型 [local, redis], 默认local
# SHARE_ROOM_TYPE: local
# Redis配置
# REDIS_HOST: 127.0.0.1 # 如果需要部署多个 koko, 需要通过 redis 来保持会话
# REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_CLUSTERS:
# REDIS_DB_ROOM:
1.4 启动 KoKo⚓︎
./koko