ansible之模組 條件判斷

2022-08-02 08:18:11 字數 2158 閱讀 9296

一 setup

輸入命令 ansible all -m setup

#setup的一些引數

ansible_all_ipv4_addresses # ipv4的所有位址

ansible_all_ipv6_addresses # ipv6的所有位址

ansible_date_time # 獲取到控制節點時間

ansible_default_ipv4 # 預設的ipv4位址

ansible_distribution # 系統

ansible_distribution_major_version # 系統的大版本

ansible_distribution_version # 系統的版本號

ansible_domain #系統所在的域

ansible_env #系統的環境變數

ansible_hostname #系統的主機名

ansible_fqdn #系統的全名

ansible_machine #系統的架構

ansible_memory_mb #系統的記憶體資訊

ansible_os_family # 系統的家族

ansible_pkg_mgr # 系統的包管理工具

ansible_processor_cores #系統的cpu的核數(每顆)

ansible_processor_count #系統cpu的顆數

ansible_processor_vcpus #系統cpu的總個數=cpu的顆數*cpu的核數

ansible_python # 系統上的python

ansible cache -m setup -a 'filter=*processor*' # 用來搜尋

不同條件  不同版本   不同環境   不同使用者

boo4.yml

- hosts: db

remote_user: root

tasks:

- name: createfile

copy: content="大弦嘈嘈如急雨" dest=/tmp/a.txt

when: a=="3"

- name: cratefile

copy: content="小弦切切如私語" dest=/tmp/a.txt

when: a=="4"

執行: ansible-playbook -e 'a=="3"' book4.yml

注意 -e 代表傳參

book5.yml

- hosts: web

tasks:

- name: installnginx

yum: name=nginx

- name: copyfile

copy: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf

tags: copyfile

- name: start

service: name=nginx state=started

執行時:

ansible-playbook -t copyfile book5.yml

輸入 ansible-playbook 可以檢視它的引數

四 迴圈with_item

一次建立多個

book7.yml

- hosts: web

tasks:

- name: crateuser

user: name=}

with_items:

- mlh20

- mlh21

- mlh22

ansible-playbook book7.yml 執行

book7.yml

- hosts: web

tasks:

- name: crateuser

user: name=}

with_items:

- alex30

- alex31

- alex32

- name: crategroup

group: name=}

with_items:

- wulaoshi20

- wulaoshi21

- wulaoshi22

Ansible系列 六 迴圈和條件判斷

我寫了更完善的ansible專欄文章 一步到位玩兒透ansible ansible系列文章 ansible中的迴圈都是借助迭代來實現的。基本都是以 with 開頭。以下是常見的幾種迴圈。ansibel支援迭代功能。例如,有一大堆要輸出的命令 一大堆要安裝的軟體包 一大堆要copy的檔案等等。例如,要...

ansible模組之yum模組詳解(六)

語法格式 引數name 指定要安裝軟體包的名稱,如果有多個用 隔開 state 指定使用yum的方法 installed present 安裝軟體包 removed absent 移除軟體包 latest 安裝最新軟體包案例1 安裝已存在的軟體包 案例2 刪除指定的安裝包 root ansible ...

Ansible常用模組之命令類模組

在遠端節點上執行命令 root tiandong ansible all m command a ls 在遠端主機上執行ls命令。進入到 tmp目錄下面,然後執行 ls命令 存在 tmp copy檔案不執行 echo test 命令,不存在才執行 echo test 命令 root tiandong...