Ansible определяет новую переменную со значением из другого

Мне нужна помощь с переменными Ansible.

---
- name: create remote ansible account
  hosts: all
  gather_facts: false
  remote_user: admin
  vars:
    ansible_ssh_pass: mypassword
    ansible_become_pass: mypassword
    publickey: "{{ inputvalue }}"

  vars_files:
    - publickey_file.yml

roles:
  - create account

publickey_file.yml выглядит так:

entry1: ssh-rsa AAAAB3....
entry2: ssh-rsa AAAAC3....

Конкретная задача в роли выглядит так: амл

- name: install SSH Key
  authorized_key: 
    user: ansible
    key: '{{ publickey }}'
  become: yes

Я хотел бы нажать определенный открытый ключ при указании переменных с помощью ansible-playbook.

Я пробовал это, но это не работает:

ansible-playbook -i inventory.yml myplaybook.yml -e 'inputvalue=entry1'

Это не вставляет значение "{{ entry1 }}", а только слово 'entry1', поэтому вставленный ключ неверен в модуле authorized_key.

Как я могу вставить в publickey значение переменной "{{ entry1 }}" вместо 'entry1'?

Переменные, типы данных и операторы в Python
Переменные, типы данных и операторы в Python
В Python переменные используются как место для хранения значений. Пример переменной формы:
1
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужен vars поиск, чтобы найти переменную, названную в виде строки, содержащейся в переменной inputvalue:

publickey: "{{ lookup('vars', inputvalue) }}"

Другие вопросы по теме