問答題
請總結今天所學的ansible模塊,以及各個模塊的作用!
ping
ping模塊用來檢查目標主機是否在線
例子:ansible webserver -m ping
yum
yum模塊用來在Centos系統上使用yum命令安裝軟件包
選項:
name: 指定安裝包的名字
state:latest 安裝最新版 present 默認安裝 installed 安裝 absent 卸載
removed 卸載
例子:ansible webservers -m yum -a ‘name=httpd state=latest’
command
command模塊用來執行系統命令,但是不支持shell下的特殊符號 如:| &&等
例子:ansible webservers -m command -a ‘echo 李想’
shell
shell模塊和command模塊使用方法基本一致,但是他可以支持shell的特殊符號,如: | && 等
例子:ansible webservers -m shell -a “cd /opt/ && touch lixiang”
service
service模塊用來管理centos上的服務的啟動、關閉、重啟和重載
選項:
name: 服務名字
state: started(啟動) stopped(停止) restarted(重啟) reloaded(重載)
enabled: 默認是no,將服務設置為開機自啟
file
file模塊用來創建文件、目錄、鏈接文件
選項:
group:定義文件/目錄的屬組
mode:定義文件/目錄的權限
owner:定義文件/目錄的屬主
path:必選項,定義文件/目錄的路徑
recurse:遞歸的設置文件的屬性,只對目錄有效
src:要被鏈接的源文件的路徑,只應用於state=link的情況
dest:被鏈接到的路徑,只應用於state=link的情況
state:
directory:如果目錄不存在,創建目錄
file:即使文件不存在,也不會被創建
link:創建軟鏈接
hard:創建硬鏈接
touch:如果文件不存在,則會創建一個新的文件,如果文件或目錄已存在,則更新其最后修改時間
absent:刪除目錄、文件或者取消鏈接文件
user
user模塊用來創建用戶
選項:
home: 指定創建的家目錄
groups:指定用戶組
uid:指定UID
password:設置密碼,密碼必須是密文
Openssl passwd
name:創建的用戶名字
createhome:是否創建家目錄(yes/no)
state: 是創建還是刪除。(present,absent),默認是創建
shell: 指定用戶登錄的shell環境
remove:刪除用戶家目錄,默認為no
group
group用來創建用戶組
選項
gid:指定用的gid。
name:指定用戶名。
state:是創建還是刪除。(present,absent)
copy
copy模塊用來復制文件至目標主機
選項:
src:文件在管理主機的據對路徑或者相對路徑
dest:將文件復制到目標主機的路徑
backup:是否將目標主機的同名文件備份,默認為no
mode: 授權
directory_mode:遞歸授權
例子:
ansible webservers -m copy -a ‘src=/root/nginx.sh dest=/opt/’
unarchive
unarchive模塊用來解壓文件
n 選項:
u copy:在解壓文件之前,是否先將文件復制到遠程主機,默認為yes。若為no,則要求目標主機上壓縮包必須存在
u creates:指定一個文件名,當該文件存在時,則解壓指令不執行
u dest:遠程主機上的一個路徑,即文件解壓的絕對路徑。
u group:解壓后的目錄或文件的屬組
u mode:解壓后文件的權限
u src:如果copy為yes,則需要指定壓縮文件的源路徑
u owner:解壓后文件或目錄的屬主
n 例子:
ansible webservers -m unarchive -a ‘src=/root/nginx.tar.gz dest=/opt/ group=www ower=www mode=777 ’
get_url
n get_url模塊,該模塊主要用於從http、ftp、https服務器上下載文件(類似於wget
n 選項:
u url: 指定要下載的文件的URL地址
n 例子:
ansible webservers -m get_url -a ‘url= http://nginx.org/download/nginx-1.15.7.tar.gz dest=/root/’
synchronize
n 使用rsync同步文件,將主控方目錄推送到指定節點的目錄下,使用此模塊需要先安裝rsync
n delete: 刪除不存在的文件,delete=yes 使兩邊的內容一樣(即以推送方為主),默認no
n src: 要同步到目的地的源主機上的路徑; 路徑可以是絕對的或相對的。如果路徑使用”/”來結尾,則只復制目錄里的內容,如果沒有使用”/”來結尾,則包含目錄在內的整個內容全部復制
n dest:目的地主機上將與源同步的路徑; 路徑可以是絕對的或相對的。
n dest_port:默認目錄主機上的端口 ,默認是22,走的ssh協議。
n mode: push或pull,默認push,一般用於從本機向遠程主機上傳文件,pull 模式用於從遠程主機上取文件。
n rsync_opts:通過傳遞數組來指定其他rsync選項。
fetch
n fetch模塊它用於從遠程機器獲取文件,並將其本地存儲在由主機名組織的文件樹中。
n 選項:
u src:遠程系統上要獲取的文件。 這必須是一個文件,而不是一個目錄。 后續版本可能會支持遞歸提取。
u dest:保存文件的目錄
setup
n setup 模塊用於收集遠程主機的一些基本信息。
n 選項:
u filter參數:用於進行條件過濾。如果設置,僅返回匹配過濾條件的信息。
u 常用的過濾關鍵詞:
l ansible_all_ipv4_addresses:僅顯示ipv4的信息
l ansible_devices:僅顯示磁盤設備信息
l ansible_distribution:顯示是什么系統,例:centos,suse等
l ansible_distribution_major_version:顯示是系統主版本
l ansible_distribution_version:僅顯示系統版本
l ansible_machine:顯示系統類型,例:32位,還是64位
l ansible_eth0:僅顯示eth0的信息
l ansible_hostname:僅顯示主機名
l ansible_kernel:僅顯示內核版本
l ansible_lvm:顯示lvm相關信息
l ansible_memtotal_mb:顯示系統總內存
l ansible_memfree_mb:顯示可用系統內存
l ansible_memory_mb:詳細顯示內存情況
l ansible_swaptotal_mb:顯示總的swap內存
l ansible_swapfree_mb:顯示swap內存的可用內存
l ansible_mounts:顯示系統磁盤掛載情況
l ansible_processor:顯示cpu個數(具體顯示每個cpu的型號)
l ansible_processor_vcpus:顯示cpu個數(只顯示總的個數)
l ansible_python_version:顯示python版本
u 例子:
獲取目標主機的ipv4地址
ansible webservers -m setup -a 'filter=ansible_all_ipv4_addresses'