DataEase local 模式部署时,自带了 kettle 组件,组件的用户名 / 密码默认为 cluster / cluster ,并且配置文件已经打包进镜像里了,那么对于一些有安全性要求的公司来说,怎样才能修改 kettle 组件的密码呢?
1 查看 DataEase Kettle 组件自带用户名密码
首先我们要搞明白 kettle 的用户名 / 密码是如何存储的,我们可以执行以下命令查看 kettle 的用户名 / 密码
# 进入 kettle 容器
docker exec -it kettle bash
# 查看 kettle 密码文件
cat /opt/kettle/pwd/kettle.pwd
可以看到,cluster 即为 kettle 的用户名,而冒号后面的则是经过混淆后的密码。
2 添加密码文件,挂载至容器内部完成密码修改
理论上我们只要修改这个文件,将 cluster 修改成我们需要的用户名,冒号后面的内容修改成我们需要的密码(不需要加密),如 fit2cloud:fit2cloud,再执行 docker restart kettle,就可以完成我们 kettle 组件的修改了。
但是这样会带来一个问题,当我们执行 service dataease restart 或者其它会导致 kettle 容器重建的操作时,这个文件也就随之丢失了。我们需要将这个文件放到宿主机上,做成一个持久化的文件,再挂载到容器内部,覆盖原来的文件。
如图所示,我们在 /opt/dataease/conf 下创建了 kettle.pwd 文件,并且内容填充为 fit2cloud:fit2cloud
接着我们修改 /opt/dataease/docker-compose-kettle.yml 文件,将文件挂载到 kettle 容器内部
vim /opt/dataease/docker-compose-kettle.yml
version: '2.1'
services:
kettle:
image: registry.cn-qingdao.aliyuncs.com/dataease/kettle:v8.3-0318
container_name: kettle
ports:
- 18080:18080
environment:
- PENTAHO_DI_JAVA_OPTIONS=-Xms1024m -Xmx4096m -XX:MaxPermSize=256m -Dfile.encoding=utf-8
volumes:
- ${DE_BASE}/dataease/conf/:/opt/dataease/conf
- ${DE_BASE}/dataease/data/kettle:/opt/dataease/data/kettle
- ${DE_BASE}/dataease/conf/kettle.pwd:/opt/kettle/pwd/kettle.pwd
networks:
- dataease-network
restart: always
3 修改 DataEase 配置文件,验证 Kettle 密码是否修改成功
接着我们修改 /opt/dataease/conf/dataease.properties 里的 kettle 用户名 / 密码,并重启 dataease 容器
vim /opt/dataease/conf/dataease.properties
# 修改以下内容
carte.user=fit2cloud
carte.passwd=fit2cloud
# 重启 DataEase 容器
docker restart dataease
接着我们来试一下,Excel 文件的上传,借此验证下 kettle 用户名密码是否修改成功。
ok ,大功告成。