这个变量会可见吗?

时间:2018-11-30 10:00:56

标签: ansible

我有一个简单的剧本:

- 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

2 个答案:

答案 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的lookupsearch

vars:
   out: "{{ lookup('file', '/etc/host') }}"

tasks:
  - name: "Use java role playbook"
    include_role:
      name: Java
    when: out is search("127.0.0.1")