もしこの内容がどこかウェブサイトに記録されている場合は、事前にお詫び申し上げます。解決策が見つからないので、こちらにお問い合わせください。
Ansibleの同期モジュールを使用して、次のようにリモートホストからファイルをインポートしようとしています。
- hosts: Server.A
gather_facts: no
tasks:
synchronize:
mode: pull
src: "file/to/pull"
dest: "path/to/destination"
delegate_to: NAS
つまり、NASホストはSSHを介してServer.Aに接続し、アップロードしたいファイルをインポートしたいと思います。
問題は、NASにデフォルト以外のユーザー(管理者)があることです。
マニフェストファイルを使用してNASの管理者を設定し、NASと正常に通信できます。
ただし、ジョブを実行すると、synchronize
存在しない管理ユーザーを使用してソースサーバー(Server.A)にログインしようとし、失敗します。
プレイブック、ホストファイル、およびホスト_varsでremote_user
モジュール設定become
を変更してみましたが、set_remote_user
うまく機能しなかったため、非常に混乱していました。
synchronize
ローカルユーザー以外のリモートユーザーでコマンドを実行するにはどうすればよいですか?
ありがとうございます!
答え1
からansible-doc synchronize
:
同期されたユーザーと権限は、
src
ローカルホストでAnsibleジョブを実行しているユーザー(またはDelegate_toを使用している場合はDelegate_toホストのリモートユーザー)のユーザーと権限です。
同期されたユーザーと権限は、ターゲット
dest
ホストにあるか有効になっている場合です。remote_user
become_user
become=yes