ansible Playbookでは、後で使用する変数にデフォルトの公開鍵を読み込もうとしています。
[。]私のYMLです。
- hosts: hostsGroup
become: false
vars:
publicKey: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
_
スクリプトは次のエラーで分類されます。
fatal: [redacted-ip]: FAILED! =>
{"msg": "An unhandled exception occurred while templating '{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}'. Error was a <class 'ansible.errors.AnsibleError'>,
original message: An unhandled exception occurred while running the lookup plugin 'file'. Error was a <class 'ansible.errors.AnsibleError'>,
original message: could not locate file in lookup: /root/.ssh/id_rsa.pub"}
_
ファイルはその場所に存在することが確認されています。
より良い方法はありますか?それとも私は何をしていますか?
説明されているように Lookup Pluginsのマニュアル
すべてのテンプレートと同様に、これらのプラグインはターゲット/リモコンではなく、Ansible Controlマシンで評価されます。
あなたはあなたのリモートキーの内容を取得するために slurp module を使用することができます。
あなたが言った:false。 ansible_userのルックアップを/ home /ディレクトリに強制的に保存したいことを意味します。ただし、プレイブックはルートの場所のキーを探していました:ルックアップでファイルを見つけることができませんでした:/root/.ssh/id_rsa.pub
Ansible_userのGet Publickキーを取得すると仮定すると、リモートサーバー+ Lookup検索では、リモートのマシンのRemote Serverの検索検索に接続するたびに、プレイブックはrootユーザーにエスカレートされます。