Ansible чтение файла ansible_ssh_private_key_file из переменной - PullRequest
0 голосов
/ 04 марта 2020

Я добавляю хост, используя add_host

- hosts: localhost
  tasks:
    - set_fact:
        ssh_key: "{{ lookup('file','jenkins.pem')| replace('\n','') }}"
    - add_host:
        hostname: tower
        ansible_ssh_host: x.x.x.x
        ansible_ssh_user: jenkins
        ansible_ssh_private_key_file: "{{ ssh_key }}"
    - command: ls /tmp
      delegate_to: tower

Вышеприведенное работает нормально, если я указываю путь к файлу ansible_ssh_private_key_file. Но я хочу прочитать файл ansible_ssh_private_key_file из переменной, он не работает. Есть ли способ добиться этого.

1 Ответ

1 голос
/ 04 марта 2020

У вас неправильное понимание: lookup("file") возвращает содержимое файла, но - так как его имя - дешевая распродажа - ansible_ssh_private_key_file хочет путь на узле контроллера к s sh закрытый ключ файл , а не его содержимое.

Вы можете использовать lookup("fileglob", "jenkins.pem", wantlist=True) | first, чтобы получить путь к этому файлу jenkins.pem, если у вас его еще нет, так как я верю, что ansible хочет, чтобы ssh_private_key_file путь был полностью квалифицирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...