-
ansible應(yīng)用配置說明
- 掌握功能模塊
· 第一個(gè)模塊: command 命令模塊 批量執(zhí)行命令 默認(rèn)模塊
ansible oldboy -m command -a "hostname"
· 第二個(gè)模塊: shell 命令模塊 批量執(zhí)行命令 萬能模塊
ansible oldboy -m shell -a "yum install -y htop"
ansible oldboy -m shell -a "cd /tmp;pwd"用法問題:
- 不如專業(yè)模塊執(zhí)行批量管理功能效率更高
- 不像專業(yè)模塊具有冪等性(一個(gè)命令可以反復(fù)操作執(zhí)行)
第一個(gè)里程: 編寫腳本
第二個(gè)里程: 將腳本進(jìn)行分發(fā)
ansible oldboy -m copy -a "src=/server/scripts/create_user.sh dest=/server/scripts/"
第三個(gè)里程: 修改腳本權(quán)限
ansible oldboy -m file -a "path=/server/scripts/create_user.sh mode=755"
第四個(gè)里程: 批量執(zhí)行腳本
ansible oldboy -m shell -a "/server/scripts/create_user.sh"· 第三個(gè)模塊: script 命令模塊 批量運(yùn)行腳本
第一個(gè)里程: 編寫腳本
第二個(gè)里程: 批量執(zhí)行腳本
ansible oldboy -m script -a "/server/scripts/create_user.sh"· 第四個(gè)模塊: copy 文件模塊 可以將管理端數(shù)據(jù)進(jìn)行批量分發(fā)/可以移動(dòng)調(diào)整被管理端數(shù)據(jù)位置
重要模塊參數(shù):
src: 指定管理端要分發(fā)的數(shù)據(jù)路徑信息
dest: 指定數(shù)據(jù)傳輸?shù)奖还芾矶耸裁茨夸浿?br> mode: 數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)權(quán)限信息
owner: 數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)屬主信息
group: 數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)屬組信息
backup: 是否開啟數(shù)據(jù)分發(fā)備份功能 了解
remote_src: 指定源的路徑信息,從被管理端進(jìn)行讀取
content: 可以直接不在管理端創(chuàng)建文件,對(duì)文件進(jìn)行分發(fā),并且可以編輯文件簡單內(nèi)容信息
validate: ???模塊參數(shù)用法一:
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/ mode=600 owner=oldboy group=oldboy"
說明: 對(duì)目錄進(jìn)行分發(fā)- 修改文件權(quán)限信息 和 文件屬主屬組信息
- 可以在被管理端創(chuàng)建指定目錄信息
ansible oldboy -m copy -a "src=/oldboy/ dest=/oldboy/"
說明: 對(duì)目錄進(jìn)行分發(fā)
src指定目錄后面有斜線 oldboy/ xxxxxx
src指定目錄后面沒斜線 oldboy xxxxxx模塊參數(shù)用法二: 備份數(shù)據(jù)/還原數(shù)據(jù)方法
傳輸備份文件數(shù)據(jù)方法一:
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/ backup=yes"傳輸備份文件數(shù)據(jù)方法二:
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/oldboy.txt.bak remote_src=yes"
還原數(shù)據(jù)
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt.bak dest=/oldboy/oldboy.txt remote_src=yes"============================================================================
參數(shù)說明
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/ remote_src=yes"
== 相應(yīng)被管理端 mv /oldboy/oldboy.txt /opt/
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/"
== 相應(yīng)管理端 scp -rp /oldboy/oldboy.txt xx.xx.xx.xx:/opt/
============================================================================· 第五個(gè)模塊: fetch 文件模塊 進(jìn)行數(shù)據(jù)拉取操作
重要參數(shù):
src : 指定遠(yuǎn)程主機(jī)需要拉取數(shù)據(jù)信息
dest : 將數(shù)據(jù)保存到本地管理主機(jī)什么路徑中拉取數(shù)據(jù)方法:
ansible oldboy -m fetch -a "src=/opt/password.txt dest=/oldboy"拉取后數(shù)據(jù)信息
[root@m01 ~]# tree /tmp/172.16.1.41/
/tmp/172.16.1.41/
└── etc
└── httpd
└── conf
└── httpd.conf3 directories, 1 file
第六個(gè)模塊: file 文件模型 可以修改文件數(shù)據(jù)屬性信息(直接修改數(shù)據(jù)屬性)/創(chuàng)建或刪除數(shù)據(jù)信息
重要參數(shù):
path: 指定要操作的遠(yuǎn)程主機(jī)數(shù)據(jù)路徑信息
mode: 修改文件權(quán)限信息
owner: 修改文件屬主信息
group: 修改文件屬組信息
state: 狀態(tài)參數(shù)信息
創(chuàng)建目錄(directory) 創(chuàng)建文件(touch) 創(chuàng)建軟連接(link) 創(chuàng)建硬鏈接(hard) 刪除文件(absent) 查看文件是否存在(file)模塊參數(shù)用法一: 修改文件屬性信息
修改文件權(quán)限屬性信息:
ansible 172.16.1.41 -m file -a "path=/etc/hosts mode=666 owner=oldboy group=oldboy"
修改目錄權(quán)限屬性信息: 問題* 如何遞歸修改目錄權(quán)限???
ansible 172.16.1.41 -m file -a "path=/oldboy/ mode=666 owner=oldgirl group=oldgirl"
說明: 只是修改目錄本身權(quán)限,不會(huì)進(jìn)行遞歸修改權(quán)限信息(沒有-R功能)模塊參數(shù)用法二: 創(chuàng)建或刪除文件數(shù)據(jù)
創(chuàng)建目錄:
ansible 172.16.1.41 -m file -a "path=/oldboy/ state=directory"
創(chuàng)建文件:
ansible 172.16.1.41 -m file -a "path=/oldboy/oldboy.txt state=touch"
創(chuàng)建鏈接:
ansible 172.16.1.41 -m file -a "src=/oldboy/oldboy.txt path=/oldboy/oldboy_soft_link state=link" --- 創(chuàng)建軟鏈接
ansible 172.16.1.41 -m file -a "src=/oldboy/oldboy.txt path=/oldboy/oldboy_hard_link state=hard" --- 創(chuàng)建硬鏈接
刪除數(shù)據(jù):
ansible 172.16.1.41 -m file -a "path=/oldboy/oldboy.txt state=absent"
檢查普通文件是否存在
ansible 172.16.1.41 -m file -a "path=/etc/hosts state=file"第七個(gè)模塊: user 用戶模塊 創(chuàng)建或刪除用戶信息
name: 指定創(chuàng)建用戶名稱信息
create_home: 創(chuàng)建用戶是否有家目錄
shell: 指定用是否能夠登陸系統(tǒng) 虛擬用戶 /sbin/nologin
uid: 指定用戶uid數(shù)值
password 指定用戶密碼信息*** 使用密文信息設(shè)置密碼
state: 默認(rèn)present表示創(chuàng)建用戶 使用absent刪除用戶信息
group: 指定用戶屬于哪個(gè)用戶組 (主要組) == useradd -g
groups: 指定用戶屬于哪個(gè)用戶組 (附屬組) == useradd -G模塊參數(shù)用法一: 創(chuàng)建用戶
ansible 172.16.1.41 -m user -a "name=rsync uid=2000 create_home=no shell=/sbin/nologin" --- 創(chuàng)建虛擬用戶
ansible 172.16.1.41 -m user -a "name=oldboy uid=2001" --- 創(chuàng)建普通用戶模塊參數(shù)用法二: 給創(chuàng)建用戶設(shè)置密碼
ansible 172.16.1.41 -m user -a 'name=oldboy password=123456$yryajH2qY8ydGAcmwCNSmZM1/fI4gYqwTzXn9abB73ZmaDWJoe5s5Y.gOHgtBgqYrqRLB1Dsv6QTZsKsJbibJ1'
模塊參數(shù)用法三: 刪除用戶信息
ansible 172.16.1.41 -m user -a 'name=oldboy state=absent'
說明: 在刪除用戶是不會(huì)刪除用戶家目錄. 問題* 如何將用戶家目錄刪除 == userdel -r
[root@backup oldboy]# ll /home/oldboy -d
drwx------ 2 2001 2001 83 Aug 23 11:33 /home/oldboy================================================================================================
補(bǔ)充: 利用user模塊創(chuàng)建密文密碼信息
方法一:
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512', 'mysecretsalt') }}"
mypassword: 指定明文密碼信息
mysecretsalt: 密碼加密方式
生成密文密碼
[root@m01 ~]# ansible all -i localhost, -m debug -a "msg={{ 'oldboy123' | password_hash('sha512', '123456') }}"
localhost | SUCCESS => {
"msg": "123456$yryajH2qY8ydGAcmwCNSmZM1/fI4gYqwTzXn9abB73ZmaDWJoe5s5Y.gOHgtBgqYrqRLB1Dsv6QTZsKsJbibJ1"
}方法二: 利用python命令生成密文信息
第一個(gè)歷程: 安裝pip下載工具
yum install -y python-pip
第二個(gè)歷程: 利用pip工具下載python程序包
pip install passlib
第三個(gè)歷程: 生成密文信息
[root@m01 ~]# python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"
Password:
IQhh.egT4ow2dzmd$fk9W1.J4q1ArQ8nykkhh5A0waFbgU1Qa4sUdNm42.oYSpSMmIIl0262cSDg1Q6Ph8p3rnqHOs372A.GzD11.w/
================================================================================================第八個(gè)模塊: group 用戶模塊 創(chuàng)建或刪除用戶組信息
重要參數(shù)信息
name: 指定創(chuàng)建用戶組名稱信息
gid: 指定創(chuàng)建用戶組id編號(hào)信息
state: 默認(rèn)present 指定absent表示刪除用戶組模塊參數(shù)用法一: 創(chuàng)建指定用戶組
ansible 172.16.1.41 -m group -a "name=oldboy gid=3000"模塊參數(shù)用法二: 刪除指定用戶組
ansible 172.16.1.41 -m group -a "name=oldboy state=absent"第九個(gè)模塊: yum 安裝軟件模塊 安裝軟件/卸載軟件
name: 指定需要安裝軟件名稱
state: 指定狀態(tài)信息
安裝軟件(installed latest present) 卸載軟件(absent removed)模塊參數(shù)用法一: 安裝軟件程序
ansible 172.16.1.41 -m yum -a "name=telnet-server state=installed"模塊參數(shù)用法二: 卸載軟件程序
ansible 172.16.1.41 -m yum -a "name=telnet-server state=absent"第十個(gè)模塊: service 系統(tǒng)模塊 控制服務(wù)運(yùn)行狀態(tài)
重要參數(shù):
name: 指定要管理的服務(wù)名稱
state: 指定服務(wù)運(yùn)行狀態(tài)
停止(stopped) 啟動(dòng)(started) 重啟(restarted) 平滑重啟(reloaded)
enabled: 指定服務(wù)是否開機(jī)自動(dòng)啟動(dòng) yes開機(jī)自啟 no開機(jī)不要運(yùn)行模塊參數(shù)用法一: 控制服務(wù)運(yùn)行狀態(tài):
ansible 172.16.1.41 -m service -a "name=rsyncd state=started"
ansible 172.16.1.41 -m service -a "name=rsyncd state=stopped"
ansible 172.16.1.41 -m service -a "name=rsyncd state=restarted"
ansible 172.16.1.41 -m service -a "name=rsyncd state=reloaded"模塊參數(shù)用法二: 設(shè)置服務(wù)開機(jī)運(yùn)行狀態(tài):
ansible 172.16.1.41 -m service -a "name=rsyncd enabled=no"
ansible 172.16.1.41 -m service -a "name=rsyncd enabled=yes"第十一個(gè)模塊: cron 系統(tǒng)模塊 批量設(shè)置定時(shí)任務(wù)
name : 定義定時(shí)任務(wù)注釋信息/避免出現(xiàn)重復(fù)的定時(shí)任務(wù)
minute : 指定時(shí)間信息中分鐘信息 (0-59 */5 0,10)
hour : 指定時(shí)間信息中小時(shí)信息 (0-23 *)
day : 指定時(shí)間信息中日期信息 (1-31)
month : 指定時(shí)間信息中月份信息 (1-12)
weekday : 指定時(shí)間信息中星期信息 (0-6)
job : 指定定時(shí)任務(wù)命令信息crontab -e
- 執(zhí)行定時(shí)任務(wù) &>/dev/null
模塊參數(shù)用法一: 批量設(shè)置定時(shí)任務(wù)
ansible 172.16.1.41 -m cron -a "name=crond-id-02 minute=*/5 job='ntpdate ntp1.aliyun.com &>/dev/null'"模塊參數(shù)用法二: 刪除定時(shí)任務(wù)
ansible 172.16.1.41 -m cron -a "name=crond-id-02 state=absent"模塊參數(shù)用法三: 注釋定時(shí)任務(wù)
ansible 172.16.1.41 -m cron -a "name=crond-id-01 minute=/5 job='ntpdate ntp1.aliyun.com &>/dev/null' disabled=yes"
ansible 172.16.1.41 -m cron -a "name=crond-id-01 minute=/5 job='ntpdate ntp1.aliyun.com &>/dev/null' disabled=no"第十二個(gè)模塊: mount 系統(tǒng)模塊 進(jìn)行批量掛載操作
src: 掛載存儲(chǔ)設(shè)備信息
path: 掛載點(diǎn)目錄信息
fstype: 掛載的文件系統(tǒng)類型
state: 指定掛載或是卸載
掛載: mounted present
mounted: 臨時(shí)掛載存儲(chǔ)目錄信息 永久也掛載了存儲(chǔ)目錄信息 推薦
present: 只是實(shí)現(xiàn)永久掛載卸載: unmounted absent unmounted: 只是實(shí)現(xiàn)臨時(shí)卸載 absent: 臨時(shí)實(shí)現(xiàn)卸載 永久也實(shí)現(xiàn)卸載操作
參數(shù)操作方法一: 進(jìn)行掛載操作
ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=mounted"
ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=present"參數(shù)操作方法二: 進(jìn)行卸載操作
ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=unmounted"
ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=absent" - 掌握功能模塊
====================================================================
補(bǔ)充: 如何學(xué)習(xí)模塊使用方法:
01. 簡單了解模塊作用
command – Execute commands on targets 在目標(biāo)主機(jī)上執(zhí)行命令模塊
02. 模塊詳細(xì)說明
03. 掌握模塊參數(shù)用法
根據(jù)樣例學(xué)習(xí)參數(shù)信息
補(bǔ)充: 學(xué)習(xí)ansible會(huì)有不同顏色提示
01. 綠色: 對(duì)主機(jī)信息進(jìn)行查看, 操作執(zhí)行成功
02. 黃色: 對(duì)主機(jī)信息進(jìn)行查看, 對(duì)主機(jī)中信息有調(diào)整修改
03. 紫色: 錯(cuò)誤提示信息, 建議忠告信息
04. 紅色: 報(bào)錯(cuò)提示信息
====================================================================
需求: 如何利用ansible模塊, 進(jìn)行rsync服務(wù)部署
考察: 所學(xué)習(xí)模塊是否能夠靈活應(yīng)用
思路:
第一個(gè)歷程: 確認(rèn)好管理主機(jī)信息
管理服務(wù)端主機(jī): 172.16.1.41
管理客戶端主機(jī): 172.16.1.31 172.16.1.7
第二個(gè)歷程: 配置主機(jī)清單信息
vim /etc/ansible/hosts
[rsync_server]
172.16.1.41
[rsync_client]
172.16.1.31
172.16.1.7
第三個(gè)歷程: 進(jìn)行rsync服務(wù)部署
服務(wù)端:
1) 安裝軟件
ansible rsync_server -m yum -a "name=rsync state=installed"
2) 編寫配置文件
ansible rsync_server -m copy -a "src=/ansible_file/rsync/rsyncd.conf dest=/etc/"
3) 創(chuàng)建虛擬用戶
ansible rsync_server -m user -a "name=rsync create_home=no shell=/sbin/nologin"
4) 創(chuàng)建密碼文件并授權(quán)
ansible rsync_server -m copy -a "content='rsync_backup:oldboy123' dest=/etc/rsync.password mode=600"
5) 創(chuàng)建備份目錄并授權(quán)
ansible rsync_server -m file -a "path=/backup/ state=directory owner=rsync group=rsync"
6) 啟動(dòng)服務(wù)程序
ansible rsync_server -m service -a "name=rsyncd state=started enabled=yes"
客戶端:
1) 創(chuàng)建密碼文件
ansible rsync_client -m copy -a "content='oldboy123' dest=/etc/rsync.password mode=600"
2) 進(jìn)行傳輸測(cè)試 擴(kuò)展研究:synchronize
ansible rsync_client -m shell -a "rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password"
3) 掌握劇本編寫
將多個(gè)模塊操作命令進(jìn)行整合
模塊 === 命令
劇本 === shell腳本
作用說明:
01. 可以實(shí)現(xiàn)服務(wù)自動(dòng)部署
02. 可以提高運(yùn)維工作效率
03. 可以減少運(yùn)維工作問題
04. 可以節(jié)省公司運(yùn)維成本
劇本編寫組成:
1. 劇本角色信息: hosts --主機(jī)信息
2. 劇本任務(wù)信息: tasks --任務(wù)信息
劇本編寫規(guī)范: 遵循yaml語法規(guī)范 == python代碼語法規(guī)范
01. 縮進(jìn)規(guī)范: 兩個(gè)空格表示一個(gè)縮進(jìn)關(guān)系
標(biāo)題一
標(biāo)題二
標(biāo)題三
PS: 在縮進(jìn)時(shí)只能用空格表示縮進(jìn),不能用tab鍵代替縮進(jìn)
02. 字典規(guī)范: 冒號(hào)后面要有空格
oldboy: 123456 key: value
PS: 冒號(hào)結(jié)尾時(shí)不需要有空格/冒號(hào)信息出現(xiàn)在注釋說明中不需要有空格
03. 列表規(guī)范: 橫線后面要有空格
name:
- rsync
- nfs
- rpcbind
編寫測(cè)試劇本:
[root@m01 ansible_playbook]# cat /ansible_playbook/test01.yml
- hosts: rsync_server
tasks:
- name: create user:alex
user: name=alex uid=3000
- name: install software:iftop
yum: name=iftop state=installed
- hosts: rsync_client
tasks:
- name: create user:alex
user: name=alex uid=3000
劇本測(cè)試執(zhí)行方法:
1) 進(jìn)行劇本編寫檢查測(cè)試
ansible-playbook --syntax-check /ansible_playbook/test01.yml
2) 劇本運(yùn)行方式
模擬執(zhí)行:
ansible-playbook -C test01.yml
=================================================================================
補(bǔ)充: 取消cowsay小牛圖案出現(xiàn)
vim /etc/ansible/ansible.cfg --- 編寫修改ansible配置文件
217 # set to 1 if you don't want cowsay support or export ANSIBLE_NOCOWS=1
218 nocows = 1 --- 禁止調(diào)取遠(yuǎn)程主機(jī)cowsay程序
=================================================================================
真實(shí)執(zhí)行:
ansible-playbook -C test01.yml
測(cè)驗(yàn): 編寫劇本完成nfs服務(wù)一鍵自動(dòng)部署
第一個(gè)歷程: 定義主機(jī)清單信息
[nfs_server]
172.16.1.31
[nfs_client]
172.16.1.41
172.16.1.7
第二個(gè)歷程: 編寫劇本信息
服務(wù)端:
1) 安裝軟件程序
2) 編寫配置文件
3) 創(chuàng)建存儲(chǔ)目錄
4) 啟動(dòng)服務(wù)程序
客戶端:
1) 安裝軟件程序
2) 進(jìn)行掛載操作
劇本編寫方法:
01: 采用變量格式編寫劇本
02: 采用字典格式編寫劇本
03: 采用json語法格式編寫劇本 ???
劇本信息: 方法一 變量格式編寫劇本
- hosts: nfs_server
tasks:
- name: 01:install software
yum: name=nfs-utils state=installed
yum: name=rpcbind state=installed
- name: 02:push conf_file to server
copy: src=./nfs/exports dest=/etc/
- name: 03:create data dir
file: path=/data state=directory owner=nfsnobody group=nfsnobody
- name: 04:boot server
service: name=rpcbind state=started enabled=yes
service: name=nfs state=started enabled=yes
- hosts: nfs_client
tasks:
- name: 01:install software
yum: name=nfs-utils state=installed
- name: 02:mount data dir
shell: mount -t nfs 172.16.1.31:/data /mnt
劇本信息: 方法二 字典格式編寫劇本
- hosts: nfs_server
tasks:
- name: 01:install software
yum:
name:
- nfs-utils
- rpcbind
state: installed
- name: 02:push conf_file to server
copy:
src: ./nfs/exports
dest: /etc/
- name: 03:create data dir
file:
path: /data
state: directory
owner: nfsnobody
group: nfsnobody
- name: 04:boot server rpc
service:
name: rpcbind
state: started
enabled: yes
- name: 05:boot server nfs
service:
name: nfs
state: started
enabled: yes
- hosts: nfs_client
tasks:
- name: 01:install software
yum:
name: nfs-utils
state: installed
- name: 02:mount data dir
shell: mount -t nfs 172.16.1.31:/data /mnt
5) 劇本編寫擴(kuò)展功能
a 在劇本中設(shè)置變量信息 OK
b 在劇本中設(shè)置注冊(cè)信息 OK
c 在劇本中設(shè)置判斷信息
d 在劇本中設(shè)置循環(huán)信息
e 在劇本中設(shè)置錯(cuò)誤忽略
f 在劇本中設(shè)置標(biāo)簽信息
g 在劇本中設(shè)置觸發(fā)信息
a 在劇本中設(shè)置變量信息
設(shè)置變量方法一: 在劇本中設(shè)置變量
- hosts: 172.16.1.41
vars:
data_dir: /oldboy
tasks:
- name: copy file 01
copy: src={{ data_dir }}/oldboy01.txt dest=/tmp
- name: copy file 02
copy: src={{ data_dir }}/oldboy02.txt dest=/opt
- name: copy file 03
copy: src={{ data_dir }}/oldboy03.txt dest=/usr/local/
設(shè)置變量方法二: 在命令中設(shè)置變量
ansible-playbook -e data_dir=/oldboy test_變量配置功能.yml
設(shè)置變量方法三: 在主機(jī)清單中設(shè)置
a: 單個(gè)主機(jī)設(shè)置變量
172.16.1.41 data_dir=/oldboy
b: 多個(gè)主機(jī)設(shè)置變量
[oldboy]
172.16.1.41
[oldboy:vars]
data_dir=/oldboy
問題: 三種變量設(shè)置方式, 之間優(yōu)先級(jí)關(guān)系是什么
創(chuàng)建環(huán)境:
mkdir /oldboy/ -p
mkdir /oldgirl/ -p
mkdir /olddog/ -p
結(jié)論:
命令配置變量 最優(yōu)先
劇本配置變量 其次優(yōu)先
主機(jī)清單配置 最后選擇
b 在劇本中設(shè)置注冊(cè)信息
[root@m01 ansible_playbook]# cat test_注冊(cè)功能配置.yml
- hosts: nfs_client
tasks:
- name: mount dir
mount: src=172.16.1.31:/data path=/mnt fstype=nfs state=mounted
- name: check mount
shell: df -h
register: oldboy
- name: display mount info
debug: msg={{ oldboy.stdout_lines }}
c 在劇本中設(shè)置判斷信息
常見主機(jī)信息:
ansible_all_ipv4_addresses: 僅顯示ipv4的信息对室。
ansible_devices: 僅顯示磁盤設(shè)備信息黍聂。
ansible_distribution: 顯示是什么系統(tǒng)展运,例:centos,suse等。
ansible_distribution_major_version: 顯示是系統(tǒng)主版本钧嘶。
ansible_distribution_version: 僅顯示系統(tǒng)版本躁倒。
ansible_machine: 顯示系統(tǒng)類型幔亥,例:32位,還是64位察纯。
ansible_eth0: 僅顯示eth0的信息帕棉。
ansible_hostname: 僅顯示主機(jī)名。
ansible_kernel: 僅顯示內(nèi)核版本饼记。
ansible_lvm: 顯示lvm相關(guān)信息香伴。
ansible_memtotal_mb: 顯示系統(tǒng)總內(nèi)存。
ansible_memfree_mb: 顯示可用系統(tǒng)內(nèi)存具则。
ansible_memory_mb: 詳細(xì)顯示內(nèi)存情況即纲。
ansible_swaptotal_mb: 顯示總的swap內(nèi)存。
ansible_swapfree_mb: 顯示swap內(nèi)存的可用內(nèi)存博肋。
ansible_mounts: 顯示系統(tǒng)磁盤掛載情況低斋。
ansible_processor: 顯示cpu個(gè)數(shù)(具體顯示每個(gè)cpu的型號(hào))。
ansible_processor_vcpus: 顯示cpu個(gè)數(shù)(只顯示總的個(gè)數(shù))匪凡。
- hosts: all
tasks:
- name: install software
yum: name=nfs-utils state=installed
- name: create data dir
file: path=/data/ state=directory
when: (ansible_hostname == "nfs01")
判斷語法結(jié)構(gòu)信息:
01. 匹配單個(gè)信息:
when: (ansible_hostname == "nfs01")
02. 匹配多個(gè)信息 ???
when: (ansible_hostname == "nfs01") or (ansible_hostname == "backup")
when: (ansible_hostname == "nfs01") and (ansible_eth0 == "10.0.0.31")
03. 對(duì)匹配信息進(jìn)行取反
when: (ansible_hostname != "nfs01")
- 課程知識(shí)總結(jié)
- ansible模塊進(jìn)行詳細(xì)說明
command shell script
copy fetch file
user group
yum service
cron mount - ansible劇本編寫說明
劇本組成部分:- play角色信息--hosts
- task任務(wù)信息--tasks
劇本編寫規(guī)范: - 縮進(jìn)規(guī)范: 兩個(gè)空格表示一個(gè)縮進(jìn)關(guān)系
- 字典規(guī)范: 冒號(hào)后面需要有空格
- 列表規(guī)范: 橫線后面需要有空格
- ansible劇本編寫擴(kuò)展方法
a 劇本設(shè)置變量功能
b 劇本設(shè)置注冊(cè)功能
c 劇本設(shè)置判斷功能
- ansible模塊進(jìn)行詳細(xì)說明