我有一个简单的剧本:
- name: "Ensure /etc/host contains '127.0.0.1'"
lineinfile:
name: /etc/host
line: "127.0.0.1"
state: present
check_mode: yes
register: conf
- name: "Use java role playbook"
roles:
- role: java
if_exist: conf
我的问题:此conf
变量是否可见并分配给if_exist
?
答案 0 :(得分:1)
首先,您可以使用shell模块读取文件并注册输出,然后使用“何时”在文件的注册输出中搜索特定内容,然后根据结果运行任务。
- name: cat
shell: "cat /etc/host "
register: conf
- include_role:
name:
when: conf.stdout.find('127.0.0.1') != 1
答案 1 :(得分:-1)
即使没有cat/grep/awk
,也可以使用Ansible的lookup
和search
。
vars:
out: "{{ lookup('file', '/etc/host') }}"
tasks:
- name: "Use java role playbook"
include_role:
name: Java
when: out is search("127.0.0.1")