
私は、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