when判断
根据facts变量判断
例:centos和ubuntu都需要安装apache,
- centos: httpd
- ubuntu:httpd2
when:判断主机系统是centos则安装httpd、如果是ubuntu则安装httpd2
任务执行前,会先进行判断,如果条件满足,则执行,否则跳过
因为测试机都是centos系统所以httpd2的模块就都跳过了
match匹配
例:给对应web主机名的机器拷贝文件
- hosts: all
tasks:
- name: Copy File WebServers
copy:
src: nginx.conf.j2
dest: /opt/nginx.c
when: (ansible_hostname is match("web*"))
loop循环
批量安装软件、批量启动服务
批量安装
执行完后两台测试机上都批量装了这两个软件
批量启动服务
执行完后每台测试机上的两个服务都启动了
批量复制
复制不同的文件到不同的文件夹下
执行完后两个不同的文件被复制到了不同文件夹下