文章目錄
- 模塊功能簡表:
- 模塊實驗:
- script模塊
- copy模塊
- fetch模塊
- file模塊
- archive模塊
- unarchive模塊
- hostname模塊
- cron模塊
- yum模塊
- service模塊
- 功能:
- 實驗內容:選項"state=started" 啓動服務
- 實驗步驟:
- 實驗內容三:選項"state=restarted" 重啓服務
- 實驗步驟:
- 實驗內容四:選項"state=stopped" 關閉服務
- 實驗步驟:
- user模塊
- group模塊
模塊功能簡表:
模塊 | 功能 | 選項 |
---|---|---|
setup | 用來可以獲取被管理主機的系統信息和變量 | "filter "進行過濾顯示指定信信息; "gather_subset "指定要獲取的具體信息名稱 |
command | 無法執行變量和shell的特殊符號 | |
shell | 在遠程主機上使用 /bin/sh 執行命令 | |
script | 遠程服務器上執行本地腳本 | |
copy | 將本地文件拷貝到遠程服務器 | |
fetch | 將遠程服務器的文件複製到本地ansible主機中 | |
file | 管理遠程主機上的文件屬性和軟硬連接功能 | |
archive | 在遠程主機上完成打包壓縮功能 | |
unarchive | 解壓本地壓縮包到遠程服務器上 | “copy= yes”,將解壓 ansible 服務器端的壓縮包到遠程服務器上; “copy =no”,將解壓遠程主機上的壓縮包到遠程主機指定路徑下; |
hostname | 用於修改遠程主機名 | “name =NAME01”,修改遠程主機名; |
cron | 用於設置遠程主機計劃任務和功能 | |
yum | 通過配置state定義安裝或者刪除指定的軟件 | “state =present”,安裝指定的軟件;"state =absent",卸載指定的軟件; |
service | 管理服務的啓動和關閉 | “state =stopped”,關閉服務;"state =restarted",重啓服務;"state =started",啓動服務; |
user | 用於管理遠程主機的操作系統用戶功能 | “name =NAME system= yes state= absent remove= yes”,刪除用戶;"name =NAME system =yes",創建用戶; |
group | 管理遠程主機操作系統用戶組功能 | “name =NAME system =yes”;創建用戶組; “name =NAME state =absent”;刪除用戶組 |
*ansible 中模塊衆多, 使用模塊前想想好自己的業務需要場景以及原生命令的使用細節,然後查詢 ansible 是否有對應的功能模塊,根據 ansible-doc 自己的需求找到對應的實現選項進進測試驗證。不要刻意記憶具體選項,有使用經驗和文檔參考即可。
ansible模塊幫助命令
ansible-doc -s ping #查看指定模塊幫助用法
ansible-doc ping #查看指定模塊幫助用法
ansible-doc -l #列出所有模塊
常用模塊幫助文檔參考
https://docs.ansible.com/ansible/latest/modules/modules_by_category.html
模塊實驗:
setup模塊
功能:
setup 模塊可以獲取被管理主機的系統信息和變量
實驗內容:
使用 filter 和gather_subsent進行信息過濾和指定顯示信息
實驗步驟:
1、選項filter 進行信息過濾
2、選項gether_subset 指定要獲取的具體信息名稱
command模塊
功能:
在遠程主機執行命令,此爲默認模塊,可忽略-m選項
注意:
此命令不支持 $VARNAME < > | ; & 等,用shell模塊實現
實驗:
使用command模塊在遠程主機上執行非特殊字符非shell命令
步驟:
1、使用command查看遠程主機的IP:
2、command 命令並非使用 shell 執行,因此變量 和 shell 的特殊符號無法使用
shell
功能:
和command相似,用shell執行命令,該模塊可以在遠程主機上使用 /bin/sh 執行命令。
注意:
調用bash執行命令 類似"cat /tmp/test.md | awk -F‘|’ ‘{print $1,$2}’ &> /tmp/example.txt
"這些複雜命令,即使使用shell也可能會失敗,解決辦法:寫到腳本時,copy到遠程,執行,再把需要的結果拉回執行命令的機器。
實驗內容:
在遠程主機上使用/bin/sh執行命令
實驗步驟:
1、導入遠程主機上的cpu信息至txt文檔中並查看
script模塊
功能:
在遠程主機上運行ansible服務器上的腳本
實驗內容:
在本地主機上創建義個腳本並在遠程主機上運行
實驗步驟:
1、創建一個shell腳本
2、將本地腳本在遠程服務器上執行:
copy模塊
功能:
從ansible服務器主控端複製文件到遠程主機
實驗內容:
使用 copy 模塊拷貝本地文件到遠程服務器
實驗步驟:
1、選定一個要拷貝的文件
2、拷貝選定的本地文件到遠程服務器並重命名
3、查看拷貝到遠程主機上重命名的文件
fetch模塊
功能:
從遠程主機提取文件至ansible的主控端,copy相反目前不支持目錄。
實驗內容:
提取遠程主機上一個文件至本地主機中
實驗步驟:
1、選定遠程主機上名爲index.html的文件
2、將遠程服務器的文件複製到本地 ansible 主機中並重命名
3、查看複製到本地主機上的重命名文件
file模塊
功能:
設置文件屬性、創建軟硬連接
實驗內容:
設置文件的權限
實驗步驟:
1、設置index.html文件的屬性
2、創建一個文件的軟鏈接
3、查看已創建的軟連接
archive模塊
功能:
打包壓縮
實驗內容:
在遠程主機上打包壓縮一個文件
實驗步驟:
1、選定遠程主機上的一個要壓縮的文件
2、選擇打包工具爲gz 權限爲777
3、查看遠程主機上壓縮後的文件
unarchive模塊
功能:
解包解壓縮、解壓文件模塊
實驗內容:
實驗解壓本地主機端的壓縮包到遠程服務器上
選項"copy=yes"
實驗步驟:
1、在本地主機上導入一個網址至html文件中打包該文件並重命名爲code.tar.gz
2、解壓本地主機上code.tar.gz文件到遠程主機上的/root目錄下
3、查看nodes01上解壓後的文件
選項"copy=no"
實驗步驟:
解壓遠程主機上的壓縮包到遠程主機指定路徑下
1、解壓至遠程主機上指定的目錄下
2、在遠程主機上查看解壓後的文件yum.repos.d
hostname模塊
功能:
管理主機名
實驗內容:
修改遠程主機名
實驗步驟:
1、修改遠程主機名爲"node01"
2、查看修改後的遠程主機名
cron模塊
功能:
計劃任務
支持時間:minute,hour,day,month,weekday
實驗內容一:
設置遠程主機計劃任務功能
實驗步驟:
1、設置minute 計劃任務
2、查看生成的文檔
3、查看進行中的計劃列表
實驗內容二:
刪除一個遠程主機的計劃任務
實驗步驟:
1、刪除遠程主機上的crontest任務
2、查看任務計劃情況
yum模塊
功能:通過配置 state 定義安裝或者刪除指定的軟件
實驗內容一:選項"state=present"
安裝指定的軟件
實驗步驟:
1、安裝httpd服務
實驗內容二:卸載指定的軟件 選項"state=absent"
實驗步驟:
1、卸載剛剛安裝的httpd服務
service模塊
功能:
管理服務的啓動和關閉
實驗內容:選項"state=started" 啓動服務
實驗步驟:
1、啓動httpd服務
2、檢查端口
實驗內容三:選項"state=restarted" 重啓服務
實驗步驟:
1、重啓httpd服務
實驗內容四:選項"state=stopped" 關閉服務
實驗步驟:
1、關閉httpd服務
user模塊
功能:
用於管理遠程主機的操作系統用戶功能
實驗內容一:
創建用戶
實驗步驟:
1、在遠程主機上創建名爲csdn的用戶
2、查看遠程主機上該id信息
實驗內容二:刪除遠程主機上的用戶並查看該id信息
group模塊
功能:
管理遠程主機操作系統用戶組功能
實驗內容一:
創建用戶組
實驗步驟:
1、創建csdn組
2、查看csdn組信息
實驗內容二:
刪除用戶組