stackstorm docker中配置ssh免密码登录方式
在docker中配置st2的ssh登录方式折腾了好久,今天终于彻底搞懂了如何重启容器后也不丢失之前的配置,只要容器起来后就可以正常ssh 执行st2中的remote-shell-script 和remote-shell-cmd
1:修改docker-compose.yml 新增挂在目录,目的是将st2使用ssh时的配置放到宿主机的目录中,方便修改维护
主要是将st2中的/etc/st2/st2.conf 映射到st2-etc-config-volume:/etc/st2
默认的映射目录在(centos7): /var/lib/docker/volumes/
进入/var/lib/docker/volumes/
编辑 st2.conf (配置ssh 运行是指定的用户和秘钥所在目录)
在st2容器中生成秘钥的时候不要用默认的目录,不然容器重启后所配置的ssh就失效了,要把秘钥文件设置到挂在目录,防止容器重启失效
docker-compose up -d 启动
2:进入容器
或者 先查到容器的id docker exec -it e01482cc0755 bash
切换到configs目录
ssh-key-gen -t rsa
秘钥的目录不要放在默认的/home/***中,放在/opt/stackstorm/configs/.ssh/id_rsa
通过分发秘钥,
ssh-copy-id -i /opt/stackstorm/configs/.ssh/id_rsa.pub root@192.168.1.160
这一步有可能会分发失败,可以通过在目标机器中编辑 vim /etc/ssh/sshd_config
将PasswordAuthentication no 改为yes
再执行分发秘钥即可
3:以上操作执行完毕后需要将st2 重启,以加载新的配置使其生效
st2ctl restart
这样整个在容器中配置ssh 登录多台机器即可完成
针对docker安装的st2 说先将docker-compose.yml 添加新的挂在目录,配置st2.conf
ssh秘钥生成时需要放到挂在目录,防止容器重启失效,
最后重启st2服务,整个过程处理完毕,开心的运行st2的各种远程命名.