内容纲要
概要描述
对于 Workflow 中的脚本任务,在一些场景下,可能需要从 Workflow 容器内免密登录某些宿主机执行特定脚本或读取相应数据;由于 TDH 容器化部署,所以免密配置的不好,会导致 Workflow 重启后免密失效,从而导致相应的任务报错失败。
本文就 Workflow 部署持久化免密宿主机提供一种简单的方法供参考;该方式无需重做 Workflow 的 image,且即使重启 Workflow 也不会失效。
详细说明
-
在 Workflow 角色的物理节点生成密钥文件,该处以 root 用户为例
# 检查密钥文件是否已存在,若存在则不用执行下面的生成密钥文件语句 ls -lrt /root/.ssh/id_rsa*
# 若上面检查密钥文件不存在,则执行如下命令生成密钥文件 ssh-keygen -t rsa -f /root/.ssh/id_rsa -P '' &>/dev/null
-
配置免密
eg:需要从上图中amen02-8
节点的 Workflow 容器内,以 ‘amen’ 用户免密登录172.22.39.88
节点,参考如下命令,该处需要输入172.22.39.88
节点 ‘amen’ 用户的密码ssh-copy-id -i /root/.ssh/id_rsa.pub -o StrictHostKeyChecking=no amen@172.22.39.88
-
拷贝第 1 步生成的 root 用户私钥文件到 Workflow 容器内可以读取的持久化目录
/etc/workflow1/conf
下cp /root/.ssh/id_rsa /etc/workflow1/conf/
-
Workflow 脚本任务采用如下方式进行登录
ssh -i /etc/workflow1/conf/id_rsa -o StrictHostKeyChecking=no
@ 该处的 user 和 host 即是第 2 步的
amen@172.22.39.88
-
如果是安装了多个 Workflow 角色,每个 Workflow 角色的物理节点都需要进行该操作