ansible中when
时间: 2023-09-24 07:13:56 浏览: 45
Ansible中的when语句用于执行条件判断。只有当符合条件时,才会执行对应的任务。在when语句中,变量不需要使用{{ }}括起来。例如,在CentOS 7、RedHat 7.9和Fedora 28的情况下,可以使用逻辑与、逻辑或和组合使用的条件判断语句来控制任务的执行。在Ansible Playbook中,还可以进行条件判断、循环和控制任务的执行结果等流程控制操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [《Ansible语法篇:剧本对象关键字之when》](https://blog.csdn.net/m0_37814112/article/details/129421175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
ansible中when item不等于dkdkd
当您需要在Ansible中使用`when`条件语句来检查列表中的项是否不等于`dkdkd`时,可以使用以下语法:
```
- name: 示例任务
debug:
msg: "{{ item }}"
when: item != 'dkdkd'
loop:
- abc
- def
- dkdkd
- ghi
```
在上面的示例中,我们使用`loop`指定一个包含多个项的列表。然后,我们使用`when`条件语句来判断每个项是否不等于`dkdkd`,如果不等于,则会输出该项的值。
您可以根据需要更改列表中的项以及要比较的值。
ansible 的when
Ansible的when语句用于在执行任务之前进行条件判断,根据条件的真假来决定是否执行该任务。当条件为真时,任务会被执行;当条件为假时,任务会被跳过。
以下是两个使用when语句的Ansible任务的例子:
1. 使用自定义参数进行条件判断:
```yaml
- hosts: all
tasks:
- name: "Install package on specific host"
yum:
name: httpd
state: installed
when: ansible_hostname == 'specific_host'
```
2. 根据主机名进行条件判断:
```yaml
- hosts: tomcat
vars:
tomca: 1
tasks:
- name: "Install httpd on nod1"
yum:
name: httpd
state: installed
when: ansible_hostname == 'nod1'
- name: "Install mysql on nod2"
yum:
name: mariadb,mariadb-server
state: installed
when: ansible_hostname == 'nod2'
```
这两个例子展示了如何使用when语句根据不同的条件来执行不同的任务。