如何有条件地在ansible上执行任务组?

编程入门 行业动态 更新时间:2024-10-28 10:27:39
本文介绍了如何有条件地在ansible上执行任务组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想有条件地执行一组任务.

I want to conditionally execute a set of tasks. Is there any syntax available that would let me execute a group of tasks, where the condition is evaluated once per whole group (like in a if statement in programming languages)?

看看下面的代码片段.我知道差异很小,但是第一个代码更好地表达了我的意图,而不会用其他变量(user_home_result2)污染名称空间.

Take a look at the code snippets below. I know the difference is small, but the first code better expresses my intention without polluting the namespace with additional variables (user_home_result2).

- name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result - set_fact: user_home={{ user_home_result.stdout }} - when: user_home != '' - name: Setting up user {{ user }} user: > generate_ssh_key=yes name="{{ user }}" - name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result - set_fact: user_home={{ user_home_result.stdout }}

解决方法:

- name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result - set_fact: user_home={{ user_home_result.stdout }} - name: Setting up user {{ user }} user: > generate_ssh_key=yes name="{{ user }}" when: user_home != '' - name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result2 when: user_home != '' - set_fact: user_home={{ user_home_result2.stdout }} when: user_home != ''

推荐答案

您可以将任务放入新的yml文件中,并使用条件包含:

You can put the tasks in a new yml file and use a conditional include:

# subtasks.yml --- - name: Setting up user {{ user }} user: > generate_ssh_key=yes name="{{ user }}" - name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result - set_fact: user_home={{ user_home_result.stdout }}

在剧本中:

- name: Capturing user's home directory shell: "getent passwd {{ user }} | awk -F: '{ print $6 }'" register: user_home_result - set_fact: user_home={{ user_home_result.stdout }} - include: subtask.yml when: user_home != ''

更多推荐

如何有条件地在ansible上执行任务组?

本文发布于:2023-11-22 04:10:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1615926.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有条件   ansible

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!