在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的各种远程命名.

 

转载于:https://www.cnblogs.com/fly-kaka/p/10882406.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐