命令格式:ansible [主機(jī)] [-m 模塊] [-a args]
昔陽網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,昔陽網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為昔陽1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的昔陽做網(wǎng)站的公司定做!
ansible-doc -l #列出所有已安裝的模塊 注:按q退出
ansible-doc -s yum #-s列出yum模塊描述信息和操作動作
ansible 192.168.0.106 -m command -a 'date' #指定ip執(zhí)行date
ansible abc -m command -a 'date' #指定分類執(zhí)行date
ansible all -m command -a 'date' #所有hosts主機(jī)執(zhí)行date命令
ansible all -a 'ls /root' #如果不加-m模塊,則默認(rèn)運行command模塊
command模塊在遠(yuǎn)程主機(jī)執(zhí)行命令,不支持管道、重定向等shell的特性。常用的參數(shù)如下:
chdir:在遠(yuǎn)程主機(jī)上運行命令前要提前進(jìn)入的目錄;
creates:在命令運行時創(chuàng)建一個文件,如果文件已存在,則不會執(zhí)行創(chuàng)建任務(wù);
removes:在命令運行時移除一個文件,如果文件不存在,則不會執(zhí)行移除任務(wù);
executeable:指明運行命令的shell程序;
ansible web -m command -a 'ls /root'
shell模塊在遠(yuǎn)程主機(jī)執(zhí)行命令,相當(dāng)于調(diào)用遠(yuǎn)程主機(jī)的Shell進(jìn)程,然后在該Shell下打開一個子Shell運行命令。和command模塊的區(qū)別是它支持Shell特性:如管道、重定向等。
ansible web -m shell -a "echo hello world " #輸出到屏幕
ansible web -m shell -a "echo hello world > a.txt" #輸出到a.txt
copy模塊用于復(fù)制指定主機(jī)文件到遠(yuǎn)程主機(jī)的指定位置。常見的參數(shù)如下:
dest:指出復(fù)制文件的目標(biāo)目錄位置,使用絕對路徑。如果源是目錄,則目標(biāo)也要是目錄,如果目標(biāo)文件已存在,會覆蓋原有內(nèi)容;
src:指出源文件的路徑,可以使用相對路徑和絕對路徑,支持直接指定目錄。如果源是目錄,則目標(biāo)也要是目錄;
mode:指出復(fù)制時,目標(biāo)文件的權(quán)限,可選;
owner:指出復(fù)制時,目標(biāo)文件的屬主,可選;
group:指出復(fù)制時目標(biāo)文件的屬組,可選;
content:指出復(fù)制到目標(biāo)主機(jī)上的內(nèi)容,不能和src一起使用,相當(dāng)于復(fù)制content指明的數(shù)據(jù)到目標(biāo)文件中;
ansible web -m copy -a 'src=/root/m.txt dest=/root/ owner=root mode=640'
hostname模塊用于管理遠(yuǎn)程主機(jī)上的主機(jī)名
常用的參數(shù)如下:
name:指明主機(jī)名;
ansible 192.168.0.100 -m hostname -a "name=web"
yum模塊基于yum機(jī)制,對遠(yuǎn)程主機(jī)管理程序包。常用的參數(shù)如下:
name:程序包名稱,可以帶上版本號。若不指明版本,則默認(rèn)為最新版本;
state=present|atest|absent:指明對程序包執(zhí)行的操作:present表明安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包;
disablerepo:在用yum安裝時,臨時禁用某個倉庫的ID;
enablerepo:在用yum安裝時,臨時啟用某個倉庫的ID;
conf_file:yum運行時的配置文件,而不是使用默認(rèn)的配置文件;
disable_gpg_check=yes|no:是否啟用完整性校驗功能;
ansible web -m yum -a "name=httpd" #安裝httpd
ansible web -m shell -a "rpm -qa | grep httpd" #查看安裝httpd
管理端只是發(fā)送yum指令到被管理端,被管理端要存在可用的yum倉庫才可以成功安裝。
service模塊為用來管理遠(yuǎn)程主機(jī)上的服務(wù)的模塊。常見的參數(shù)如下:
name:被管理的服務(wù)名稱;
state=started|stopped|restarted:動作包含啟動,關(guān)閉或重啟;
enable=yes|no:表示是否設(shè)置該服務(wù)開機(jī)自啟動;
runlevel:如果設(shè)定了enabled開機(jī)自啟動,則要定義在哪些運行目標(biāo)下自動啟動;
ansible web -m service -a "name=httpd
enabled=yes state=restarted" #設(shè)置httpd服務(wù)重新啟動和開機(jī)自動啟動
user模塊主要用于管理遠(yuǎn)程主機(jī)上的用戶賬號。常見的參數(shù)如下:
name:必選參數(shù),賬號名稱;
state=present|absent:創(chuàng)建賬號或者刪除賬號,present表示創(chuàng)建,absent表示刪除;
system=yes|no:是否為系統(tǒng)賬戶;
uid:用戶UID;
group:用戶的基本組;
groups:用戶的附加組;
shell:默認(rèn)使用的shell;
home:用戶的家目錄;
mve_home=yes|no:如果設(shè)置的家目錄已經(jīng)存在,是否將已存在的家目錄進(jìn)行移動;
pssword:用戶的密碼,建議使用加密后的字符串;
comment:用戶的注釋信息;
remore=yes|no:當(dāng)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組的所有主機(jī)上新建一個系統(tǒng)用戶,UID為52,
屬組是root,名字是user01,密碼是123123
ansible abc -m command -a 'tail -3 /etc/passwd'
用于定義任務(wù)計劃
兩種狀態(tài)(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' #查看計劃性任務(wù)
ansible abc -m cron -a 'name="test cron job" state=absent' #移除計劃任務(wù)
ansible abc -a 'crontab -l'
對用戶組進(jìn)行管理
group模塊請求的是groupadd, groupdel, groupmod 三個指令。
ansible abc -m group -a 'name=nginx gid=306 system=yes'
ansible abc -a 'tail -2 /etc/group'
用于設(shè)置文件屬性 (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" #刪除文件
用于檢測指定主機(jī)的連通性
ansible all -m ping
可以將本地腳本復(fù)制到被管理主機(jī)上進(jìn)行執(zhí)行。需要注意使用相對路徑來指定腳本
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),否則報錯
用于收集、查看被管理主機(jī)的facts(facts是Ansible采集被管理主機(jī)設(shè)備信息的一個功能)
ansible abc -m setup
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。