我正在开发一个自定义 charm,我想将其部署在我的 Landscape 设置中。我已经通过 MAAS 和 openstack-install 启动并运行了一个功能云(可以启动实例等)。为了访问 Landscape 使用的 juju 设置,我在 MAAS 节点上执行以下操作:
*导出 JUJU_HOME=~/.cloud-install/juju
符咒状态
juju ssh 景观服务器/0 sudo'JUJU_HOME=/var/lib/landscape/juju-homes/sudo ls -rt /var/lib/landscape/juju-homes/| tail -1 sudo -u 景观-E bash'
魔力状态*
(按照Openstack Autopilot 成功完成后,如何查看哪些 Openstack 服务已部署到哪些服务器?)
现在我可以通过 SSH 进入景观节点。但是,一旦我通过 SSH 进入,我想通过 scp 跨我的自定义 charm 文件进行 scp,以便可以在本地部署,但我收到了“权限被拒绝”错误。
我甚至无法以普通用户身份创建新目录。landscape@juju-machine-0-lxc-1:~$ mkdir ola mkdir: 无法创建目录“ola”:权限被拒绝
Sudo 要求输入横向密码,但我没有。我该如何解决这个问题?
答案1
您无需使用长 sudo 行即可通过 juju ssh 进入 Landscape-server/0,这样您就可以以“ubuntu”的身份进入该节点,并且可以在不使用密码的情况下对任何其他用户(包括 Landscape)进行 sudo。
将文件放在 Landscape-server/0 中您想要的位置,确保 Landscape 用户可以访问它们,然后成为 Landscape 用户并设置 JUJU_HOME。然后,您可以将它们 juju scp 到内部云环境中的任何节点中。
景观用户默认没有 shell,这就是为什么您发现的那行长 sudo 最终会运行 bash 命令。
答案2
如果你正在使用 conjure-up,我使用过:
$:juju ssh landscape-server/0 sudo 'JUJU_DATA=/var/lib/landscape/juju-homes/`sudo ls -rt /var/lib/landscape/juju-homes/ | tail -1` sudo -u root -E bash'
然后切换到非默认控制器,这里它被称为控制器:
$: juju switch controller
$: juju status