web-dev-qa-db-ja.com

id_rsa.pubを読んでいるファイルを検索できませんでした。

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"}
 _

ファイルはその場所に存在することが確認されています。

より良い方法はありますか?それとも私は何をしていますか?

3
Teaspoon

説明されているように Lookup Pluginsのマニュアル

すべてのテンプレートと同様に、これらのプラグインはターゲット/リモコンではなく、Ansible Controlマシンで評価されます。

あなたはあなたのリモートキーの内容を取得するために slurp module を使用することができます。

2
sebthebert

あなたが言った:false。 ansible_userのルックアップを/ home /ディレクトリに強制的に保存したいことを意味します。ただし、プレイブックはルートの場所のキーを探していました:ルックアップでファイルを見つけることができませんでした:/root/.ssh/id_rsa.pub

Ansible_userのGet Publickキーを取得すると仮定すると、リモートサーバー+ Lookup検索では、リモートのマシンのRemote Serverの検索検索に接続するたびに、プレイブックはrootユーザーにエスカレートされます。

0
Haythem Houissa