Landscape を使用する場合、juju ノードで sudo 権限を持たない

Landscape を使用する場合、juju ノードで sudo 権限を持たない

私は、Landscape セットアップにデプロイしたいカスタム チャームに取り組んでいます。MAAS と openstack-install を介して機能的なクラウドが稼働しています (インスタンスを起動できるなど)。Landscape が使用する juju セットアップにアクセスするために、MAAS ノードで次の操作を実行しました。

*JUJU_HOME=~/.cloud-install/juju をエクスポートします

ジュジュステータス

juju ssh landscape-server/0 sudo 'JUJU_HOME=/var/lib/landscape/juju-homes/sudo ls -rt /var/lib/landscape/juju-homes/ | tail -1 sudo -u landscape -E bash'

ジュジュステータス*

Openstack Autopilot が正常に完了した後、どの Openstack サービスがどのサーバーにデプロイされたかを確認するにはどうすればよいですか?

これで、ランドスケープ ノードに SSH で接続できるようになりました。ただし、SSH で接続したら、ローカルに展開できるようにカスタム チャームのファイルを scp で接続したいのですが、アクセス許可が拒否されたというエラーが発生します。

通常のユーザーとして新しいディレクトリを作成することすらできません。 landscape@juju-machine-0-lxc-1:~$ mkdir ola mkdir: ディレクトリ 'ola' を作成できません: 権限が拒否されました

Sudo を実行すると、ランドスケープ パスワードが要求されますが、そのパスワードを持っていません。どうすればこれを回避できますか?

答え1

長い sudo 行を使用せずに landscape-server/0 に juju ssh でログインすると、"ubuntu" としてそのノードにログインでき、landscape を含む他のユーザーにパスワードなしで sudo できるようになります。

ファイルを landscape-server/0 内の必要な場所に置き、landscape ユーザーがアクセスできることを確認してから、landscape ユーザーになって JUJU_HOME を設定します。その後、juju scp を使用して、内部クラウド環境の任意のノードにファイルをコピーできます。

landscape ユーザーにはデフォルトではシェルがありません。そのため、見つかった長い 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

関連情報