如何在ansible中使用set_facts设置一个值?

时间:2018-01-23 10:44:39

标签: ansible

当根据条件跳过任务并且寄存器的结果也不同时,另一个任务的原因已经失败。

- name: Check if the partition is already mounted
  shell: df | grep "{{item.partition}}" | wc -l
  with_items:
    - "{{ ebs_vol }}"
  register: ebs_checked
  when: ebs_vol is defined

- name: Make filesystem of the partition
  filesystem: fstype=ext4 dev={{item.item.partition}} force=no
  when:  ( ebs_vol is defined and "{{item.stdout}} == True" )
  changed_when: True
  with_items:
    - ebs_checked.results

1 个答案:

答案 0 :(得分:1)

使用@Module public abstract class MainActivityModule { @ActivityScoped @Provides static List<Fragment> provideList(HomeFragment home, NewsFragment news, MomentsFragment moments, WalletFragment wallet, PersonalFragment personal) { List<Fragment> fragments = new ArrayList<>(); fragments.add(home); fragments.add(news); fragments.add(moments); fragments.add(wallet); fragments.add(personal); return fragments; } } 过滤器来处理极端情况:

default

如果- name: Make filesystem of the partition filesystem: fstype=ext4 dev={{item.item.partition}} force=no when: item.stdout | bool changed_when: True with_items: "{{ ebs_checked.results | default([]) }}" 中没有results,这将迭代空列表(读作“将无效”)。

此外,您不应检查ebs_checked因为循环任务中的ebs_vol is defined语句应用于循环内部,并且请记住您在上一个任务中检查when,在循环中检查不必要的内容。