我可以让 juju 动作将文件传回调用它的地方吗?

我可以让 juju 动作将文件传回调用它的地方吗?

文档描述“快照”操作,用于备份数据库。我曾经使用过类似的东西,但我想知道,一旦快照创建了一个文件(在我的情况下是 postgresql 转储),它就会停留在机器上,供特定的 charm 使用。有没有办法将它传回你最初运行“juju run-action ...”命令的机器?(我不确定这里的术语,所以我就把它称为“主机”)

我正在使用 python,我知道您可以使用它hookenv.action_set({})来传回消息,但是整个文件呢?我想我可以用它来传回文件的内容,但这似乎有点不合时宜。

如果我使用类似的方法: host_ip, _, machine_ip, __ = os.environ['SSH_CONNECTION'].split(' ') 然后尝试使用 host_ip 信息 scp 该文件,它需要密码,因此并不是真正自动化的。

有人对从行动中做到这一点有什么建议吗?

答案1

你可以在 charm action 中发送一个 shh 私钥,

$ juju run-action ssh_pkey=`cat .ssh/somekey`

并将公钥添加到主机authorized_keys。

或者只需在 charm config 中设置主机密钥

$ juju config myservice key=`cat .ssh/somekey`

相关内容