您好,登錄后才能下訂單哦!
命令格式:ansible [主機] [-m 模塊] [-a args]
ansible-doc -l #列出所有已安裝的模塊 注:按q退出
ansible-doc -s yum #-s列出yum模塊描述信息和操作動作
ansible 192.168.0.106 -m command -a 'date' #指定ip執行date
ansible abc -m command -a 'date' #指定分類執行date
ansible all -m command -a 'date' #所有hosts主機執行date命令
ansible all -a 'ls /root' #如果不加-m模塊,則默認運行command模塊
command模塊在遠程主機執行命令,不支持管道、重定向等shell的特性。常用的參數如下:
chdir:在遠程主機上運行命令前要提前進入的目錄;
creates:在命令運行時創建一個文件,如果文件已存在,則不會執行創建任務;
removes:在命令運行時移除一個文件,如果文件不存在,則不會執行移除任務;
executeable:指明運行命令的shell程序;
ansible web -m command -a 'ls /root'
shell模塊在遠程主機執行命令,相當于調用遠程主機的Shell進程,然后在該Shell下打開一個子Shell運行命令。和command模塊的區別是它支持Shell特性:如管道、重定向等。
ansible web -m shell -a "echo hello world " #輸出到屏幕
ansible web -m shell -a "echo hello world > a.txt" #輸出到a.txt
copy模塊用于復制指定主機文件到遠程主機的指定位置。常見的參數如下:
dest:指出復制文件的目標目錄位置,使用絕對路徑。如果源是目錄,則目標也要是目錄,如果目標文件已存在,會覆蓋原有內容;
src:指出源文件的路徑,可以使用相對路徑和絕對路徑,支持直接指定目錄。如果源是目錄,則目標也要是目錄;
mode:指出復制時,目標文件的權限,可選;
owner:指出復制時,目標文件的屬主,可選;
group:指出復制時目標文件的屬組,可選;
content:指出復制到目標主機上的內容,不能和src一起使用,相當于復制content指明的數據到目標文件中;
ansible web -m copy -a 'src=/root/m.txt dest=/root/ owner=root mode=640'
hostname模塊用于管理遠程主機上的主機名
常用的參數如下:
name:指明主機名;
ansible 192.168.0.100 -m hostname -a "name=web"
yum模塊基于yum機制,對遠程主機管理程序包。常用的參數如下:
name:程序包名稱,可以帶上版本號。若不指明版本,則默認為最新版本;
state=present|atest|absent:指明對程序包執行的操作:present表明安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包;
disablerepo:在用yum安裝時,臨時禁用某個倉庫的ID;
enablerepo:在用yum安裝時,臨時啟用某個倉庫的ID;
conf_file:yum運行時的配置文件,而不是使用默認的配置文件;
disable_gpg_check=yes|no:是否啟用完整性校驗功能;
ansible web -m yum -a "name=httpd" #安裝httpd
ansible web -m shell -a "rpm -qa | grep httpd" #查看安裝httpd
管理端只是發送yum指令到被管理端,被管理端要存在可用的yum倉庫才可以成功安裝。
service模塊為用來管理遠程主機上的服務的模塊。常見的參數如下:
name:被管理的服務名稱;
state=started|stopped|restarted:動作包含啟動,關閉或重啟;
enable=yes|no:表示是否設置該服務開機自啟動;
runlevel:如果設定了enabled開機自啟動,則要定義在哪些運行目標下自動啟動;
ansible web -m service -a "name=httpd
enabled=yes state=restarted" #設置httpd服務重新啟動和開機自動啟動
user模塊主要用于管理遠程主機上的用戶賬號。常見的參數如下:
name:必選參數,賬號名稱;
state=present|absent:創建賬號或者刪除賬號,present表示創建,absent表示刪除;
system=yes|no:是否為系統賬戶;
uid:用戶UID;
group:用戶的基本組;
groups:用戶的附加組;
shell:默認使用的shell;
home:用戶的家目錄;
mve_home=yes|no:如果設置的家目錄已經存在,是否將已存在的家目錄進行移動;
pssword:用戶的密碼,建議使用加密后的字符串;
comment:用戶的注釋信息;
remore=yes|no:當state=absent時,是否要刪除用戶的家目錄;
ansible web -m user -a "name=user01 system=yes uid=52 group=root groups=root shell=/etc/nologin home=/home/user01 password=123123"
在web組的所有主機上新建一個系統用戶,UID為52,
屬組是root,名字是user01,密碼是123123
ansible abc -m command -a 'tail -3 /etc/passwd'
用于定義任務計劃
兩種狀態(state):present表示添加(可以省略),absent表示移除。
ansible abc -m cron -a 'minute="*/1" job="/bin/echo hello world" name="test cron job"' #每一分鐘寫入“hello world”
ansible abc -a 'crontab -l' #查看計劃性任務
ansible abc -m cron -a 'name="test cron job" state=absent' #移除計劃任務
ansible abc -a 'crontab -l'
對用戶組進行管理
group模塊請求的是groupadd, groupdel, groupmod 三個指令。
ansible abc -m group -a 'name=nginx gid=306 system=yes'
ansible abc -a 'tail -2 /etc/group'
用于設置文件屬性 (path: 是文件路徑 src:定義源文件路徑 )
ansible abc -m file -a "path=/root/test.txt state=touch" #新建文件
ansible abc -a "ls -l /root/test.txt" #查看
ansible abc -m file -a "path=/root/test.txt state=absent" #刪除文件
用于檢測指定主機的連通性
ansible all -m ping
可以將本地腳本復制到被管理主機上進行執行。需要注意使用相對路徑來指定腳本
echo -e 'echo "this is ansible script !" >/root/abc.sh' > /root/test.sh
chmod +x test.sh
ansible abc -m script -a 'test.sh'
ansible abc -a 'cat /root/abc.sh'
備注:本地腳本不要加上聲明(#!/bin/bash),否則報錯
用于收集、查看被管理主機的facts(facts是Ansible采集被管理主機設備信息的一個功能)
ansible abc -m setup
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。