1. 在plugins/lookup/ 中编写自定义 lookup模块
vim hahaha.py
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from ansible.errors import AnsibleError
from ansible.plugins.lookup import LookupBase
class LookupModule(LookupBase):
def run(self, terms, variables=None, **kwargs):
........ (业务逻辑)
res = [ item for item in terms.values() ]
return res
2. 在 role 或 playbook 中使用
vim test.yml
---
- hosts: all
remote_user: root
gather_facts: no
vars:
- arg: {'1':'a','2':'b','3':'c','4':'d'}
tasks:
- name:
debug:
msg: "{{item}}"
with_hahaha: "{{ arg }}"
3. 运行结果
TASK [debug] **************************************************************************
task path: /root/ansible-test/test.yml:8
ok: [dbw21as] => (item=a) => {
"msg": "a"
}
ok: [dbw21as] => (item=b) => {
"msg": "b"
}
ok: [dbw21as] => (item=c) => {
"msg": "c"
}
ok: [dbw21as] => (item=d) => {
"msg": "d"
}