ansible模塊簡介及實驗

文章目錄

模塊功能簡表:

模塊 功能 選項
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組信息

在這裏插入圖片描述

實驗內容二:

刪除用戶組

實驗步驟:

1、刪除csdn組

在這裏插入圖片描述

2、查看組信息,csdn組的信息已被移除

在這裏插入圖片描述

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 1225
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章