Ansible 使用其他变量的值定义新变量
Ansible define new variable with value from other
我需要一些关于 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
指定变量时按下特定的 public 键。
我试过了,但没用:
ansible-playbook -i inventory.yml myplaybook.yml -e 'inputvalue=entry1'
这不会插入值 "{{ entry1 }}"
,而只会插入单词 'entry1'
,因此,在 authorized_key
.
模块中插入的密钥不正确
如何在 publickey
中插入变量值 "{{ entry1 }}"
而不是 'entry1'
?
您需要 vars
lookup 才能找到以变量 inputvalue
中包含的字符串命名的变量:
publickey: "{{ lookup('vars', inputvalue) }}"
我需要一些关于 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
指定变量时按下特定的 public 键。
我试过了,但没用:
ansible-playbook -i inventory.yml myplaybook.yml -e 'inputvalue=entry1'
这不会插入值 "{{ entry1 }}"
,而只会插入单词 'entry1'
,因此,在 authorized_key
.
如何在 publickey
中插入变量值 "{{ entry1 }}"
而不是 'entry1'
?
您需要 vars
lookup 才能找到以变量 inputvalue
中包含的字符串命名的变量:
publickey: "{{ lookup('vars', inputvalue) }}"