邏輯運(yùn)算符
在Ansible中,除了比較運(yùn)算符,還支持邏輯運(yùn)算符:
and:邏輯與,當(dāng)左邊和右邊兩個(gè)表達(dá)式同時(shí)為真,則返回真
or:邏輯或,當(dāng)左右和右邊兩個(gè)表達(dá)式任意一個(gè)為真,則返回真
not:邏輯否,對(duì)表達(dá)式取反
():當(dāng)一組表達(dá)式組合在一起,形成一個(gè)更大的表達(dá)式,組合內(nèi)的所有表達(dá)式都是邏輯與的關(guān)系
比較運(yùn)算符
==:比較兩個(gè)對(duì)象是否相等,相等則返回真??捎糜诒容^字符串和數(shù)字
!=:比較兩個(gè)對(duì)象是否不等,不等則為真。
">":比較兩個(gè)對(duì)象的大小,左邊的值大于右邊的值,則為真
<:比較兩個(gè)對(duì)象的大小,左邊的值小于右邊的值,則為真
=:比較兩個(gè)對(duì)象的大小,左邊的值大于等于右邊的值,則為真
<=:比較兩個(gè)對(duì)象的大小,左邊的值小于等于右邊的值,則為真
條件判斷
1.when的值是一個(gè)條件表達(dá)式,如果條件判斷成立,這個(gè)task就執(zhí)行,如果判斷不成立,則task不執(zhí)行
2.如果需要根據(jù)變量、facts(setup)或此前任務(wù)的執(zhí)行結(jié)果來作為某task執(zhí)行與否的前提時(shí)要用到條件測(cè)試,在Playbook中條件測(cè)試使用when子句。
3.在task后添加when子句即可使用條件測(cè)試:when子句支持jinjia2表達(dá)式或語法,
例如:滿足這兩個(gè)條件會(huì)在 /home/ 創(chuàng)建 123.test 文件
- name: touch centos
2 command: touch /home/123.test
3 when:
4 - ansible_distribution == "CentOS" #條件一:為Centos 系統(tǒng)
5 - ansible_distribution_major_version == "7" #條件二:版本號(hào)為7
6 tags:
7 - touch_Cent
組條件判斷:當(dāng)系統(tǒng)版本是“centos7” or(或者) “debian6” 時(shí),創(chuàng)建目錄
- name: "CentOS 6 and Debian 7 systems"
command: mkdir /home/test_new/CentOS -p
when: (ansible_distribution == "CentOS" and ansible_distribution_major_version == "7") or
(ansible_distribution == "Debian" and ansible_distribution_major_version == "6")
tags:
- mkdir_Cent