~/.ssh/config
私が追加した後ローカルコマンドこれにより、ターミナルの背景が素敵なラズベリーの色に変わります。
Host raspberrypi.local
LocalCommand printf '\033]11;#220505\007'
Host *
PermitLocalCommand yes
その後、ログアウトすると、ファイル内の複数の項目が.bashrc
背景色に戻ります。
colorsh() {
\ssh $* # use `command ssh`, `\ssh` or "ssh" to ignore alias; or infinite loop
printf '\033]11;#050505\007'
}
alias ssh='colorsh'
ありがとうブライアン・ギルバートこの考えのために。
ただし、単純なAnsible Playbookを実行すると、そのファイル''$'\033'']11'
名を含むディレクトリが作成されますAnsiballZ_setup.py
。
私の設定ファイルからsshを削除するとLocalCommand
問題は解決しましたが、色は消えました。明らかに、Ansibleはsshを使用して私のpiと通信しています。ファイルは次のようになりますinventory
。
local:
hosts:
localhost
vars:
ansible_connection: local
pi:
hosts:
raspberrypi.local
vars:
ansible_user: pi
ansible_connection: ssh
Ansibleでsshを使用すると、LocalCommandがこの効果を引き起こすというアイデアはありますか?
私はprintfコマンドを.bashrcラッパー関数に入れようとしましたが、望むように動作しなかったので、他の回避策を探しています。
- ホスト:WSL2のUbuntu 20.04
- クライアント:ラズベリーパイOS
編集:printf文字列の前にセミコロンを追加しようとしましたが、';\033]11;#220505\007'
SSH経由で接続すると、ウェルカムメッセージにセミコロンが最小限に表示されることがわかりました。ただし、最初の接続試行は次のエラーのため失敗します。
致命的:[raspberrypi.local]:接続できません! => {"changed": false, "msg": "認証または権限に失敗しました。場合によっては認証は可能ですが、ターゲットディレクトリに対する権限がない可能性があります。ansibleでリモートtmpパスを変更することを検討してください。失敗した場合、cfg コマンドは次のようになります
echo ;\u001b]11;#220505\u0007/home/pi/.ansible/tmp/ansible-tmp-1614707093.517033-188023619558789
。echo ;\u001b]11;#220505\u0007/home/pi/.ansible/tmp/ansible-tmp-1614707093.517033-188023619558789
Ansibleコマンドがprintfを介してパイプされると、どの文字列を使用しても問題が発生するようです。たとえば、'weird'
文字列で試してみましたが、最終的にディレクトリ構造で終わりましたweird/home/pi
。