lookup 读取csv
通过lookup方式,将用户密码把独立到credentials.csv文件中
credentials.csv
# Credentials File
Hostname,Password
web_server,Passw0rd
db_server,Passw0rd
inventory
db_server
web_server
playbook.yml
-
name: Test Connectivity
hosts: web_server
vars:
ansible_ssh_pass: "{{ lookup('csvfile', 'web_server file=credentials.csv delimiter=,') }}"
tasks:
- name: Ping target host
ping:
data: "Test"
执行命令
# ansible-playbook playbook.yml -i inventory
PLAY [test] ************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************
ok: [web_server]
TASK [Ping target host] ************************************************************************************************
ok: [web_server]
TASK [debug] ***********************************************************************************************************
ok: [web_server] => {
"msg": "vagrant"
}
PLAY RECAP *************************************************************************************************************
web_server : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
lookup读取ini文件
credentials.ini
# Credentials File
[web_server]
password=Passw0rd
hostname=12345
[db_server]
password=Passw0rd
inventory
db_server
web_server
playbook.yml
-
name: Test Connectivity
hosts: web_server
vars:
ansible_ssh_pass: "{{ lookup('ini', 'password section=web_server file=credentials.ini') }}"
hostname: "{{ lookup('ini', 'hostname section=web_server file=credentials.ini') }}"
tasks:
- name: Ping target host
ping:
data: "Test"
- debug: msg="hostname is {{ hostname }}"
执行命令
[root@master-1 ini]# ansible-playbook playbook.yml -i inventory
PLAY [Test Connectivity] ***********************************************************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************************************************************
ok: [web_server]
TASK [Ping target host] ************************************************************************************************************************************************************************
ok: [web_server]
TASK [debug] ***********************************************************************************************************************************************************************************
ok: [web_server] => {
"msg": "hostname is 12345"
}
PLAY RECAP *************************************************************************************************************************************************************************************
web_server : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0