一、ping模塊 :python
檢查指定節點機器是否還能連通,用法很簡單,不涉及參數
命令行敲:ansible erp -m pingmysql
二、raw : nginx
模塊 執行原始的命令,而不是經過模塊子系統。在任何狀況下,使用shell或命令模塊是合適的。給定原始的參數直接經過配置的遠程shell運行。可返回標準輸出、錯誤輸出和返回代碼。此模塊沒有變動處理程序支持。
這個模塊不須要遠程系統上的Python,就像腳本模塊同樣。此模塊也支持Windows目標。git
三、yum模塊 :sql
這個模塊是RedHat / CentOS做爲遠端節點的OS的時候,用的最多的。 RedHat / CentOS包管理工具
使用`yum’軟件包管理器管理軟件包,其選項有:
– config_file:yum的配置文件 (optional)
– disable_gpg_check:關閉gpg_check (optional)
– disablerepo:不啓用某個源 (optional)
– enablerepo:啓用某個源(optional)
– name:要進行操做的軟件包的名字,默認最新的程序包,指明要安裝的程序包,能夠帶上版本號,也能夠傳遞一個url或者一個本地的rpm包的路徑
– state:狀態(present,absent,latest),表示是安裝還卸載
present:默認的,表示爲安裝
lastest: 安裝爲最新的版本
absent:表示刪除shell
四、apt模塊 :ubuntu
這個模塊是ubuntu做爲遠端節點的OS的時候,用的最多的。 Ubuntu/Debian的包管理工具。
– deb: 用於安裝遠程機器上的.deb後綴的軟件包(optional)
– install_recommends:這個參數能夠控制遠程電腦上是否只是下載軟件包,仍是下載後安裝,默認參數爲true,設置爲false的時候只下載軟件包,不安裝
– update_cache: 當這個參數爲yes的時候等於apt-get update(optional)
– name: apt要下載的軟件包名字,支持name=git=1.6 這種制定版本的模式
– state:狀態(present,absent,latest),表示是安裝還卸載
present:默認的,表示爲安裝
lastest: 安裝爲最新的版本
absent:表示刪除數組
五、pip模塊 :bash
用於管理Python庫依賴項,爲了使用pip模塊,必須提供參數name或者requirements
– chdir: 執行pip命令前cd進入的目錄
– name:要安裝的Python庫的名稱或遠程包的URL。
– requirements:一個pip requirements.txt文件的路徑,它應該是遠程系統的本地文件,若是使用chdir選項,則能夠將文件指定爲相對路徑。
– version:指定的Python庫的安裝版本。
– extra_args:額外的參數傳遞給pip。
– executable:顯式可執行文件或可執行文件的路徑名,用於爲系統中安裝的特定版本的Python運行pip。
– virtualenv:要安裝到的virtualenv目錄的可選路徑。 它不能與’executable’參數一塊兒指定(在2.1中添加)。 若是virtualenv不存在,則將在安裝軟件包以前建立它。 可選的virtualenv_site_packages,virtualenv_command和virtualenv_python選項會影響virtualenv的建立。
– virtualenv_command:用於建立虛擬環境的命令或路徑名。 例如pyvenv,virtualenv,virtualenv2,~/bin /virtualenv,/usr/local/bin/virtualenv。
– virtualenv_python:用於建立虛擬環境的Python可執行文件。 例如python3.5,python2.7。 未指定時,將使用用於運行ansible模塊的Python版本。 當virtualenv_command使用pyvenv或-m venv模塊時,不該使用此參數。
– state:狀態(present,absent,latest, forcereinstall),表示是安裝還卸載
present:默認的,表示爲安裝
lastest: 安裝爲最新的版本
absent:表示刪除
forcereinstall:「forcereinstall」選項僅適用於可ansible 2.1及更高版本。服務器
六、synchronize模塊 :
– 使用rsync同步文件,將主控方目錄推送到指定節點的目錄下,其參數以下:
– delete: 刪除不存在的文件,delete=yes 使兩邊的內容同樣(即以推送方爲主),默認no
– src: 要同步到目的地的源主機上的路徑; 路徑能夠是絕對的或相對的。若是路徑使用」/」來結尾,則只複製目錄裏的內容,若是沒有使用」/」來結尾,則包含目錄在內的整個內容所有複製
– dest:目的地主機上將與源同步的路徑; 路徑能夠是絕對的或相對的。
– dest_port:默認目錄主機上的端口 ,默認是22,走的ssh協議。
– mode: push或pull,默認push,通常用於從本機向遠程主機上傳文件,pull 模式用於從遠程主機上取文件。
– rsync_opts:經過傳遞數組來指定其餘rsync選項。
七、template模塊 :
基於模板方式生成一個文件複製到遠程主機(template使用Jinjia2格式做爲文件模版,進行文檔內變量的替換的模塊。它的每次使用都會被ansible標記爲」changed」狀態。)
– backup: 若是原目標文件存在,則先備份目標文件
– src:在ansible控制器上的Jinja2格式化模板的路徑。 這能夠是相對或絕對的路徑。
– dest:將模板渲染到遠程機器上的位置。
force:是否強制覆蓋,默認爲yes
– owner:目標文件屬主
– group:目標文件屬組
– mode:目標文件的權限模式,模式能夠被指定爲符號模式(例如,u + rwx或u = rw,g = r,o = r)。
八、copy模塊 :
在遠程主機執行復制操做文件。
– src:要複製到遠程主機的文件在本地的地址,能夠是絕對路徑,也能夠是相對路徑。若是路徑是一個目錄,它將遞歸複製。在這種狀況下,若是路徑使用」/」來結尾,則只複製目錄裏的內容,若是沒有使用」/」來結尾,則包含目錄在內的整個內容所有複製,相似於rsync。
– content:用於替代」src」,能夠直接設定指定文件的值
– dest:必選項。要將源文件複製到的遠程主機的絕對路徑,若是源文件是一個目錄,那麼該路徑也必須是個目錄
– directory_mode:遞歸的設定目錄的權限,默認爲系統默認權限
– force:若是目標主機包含該文件,但內容不一樣,若是設置爲yes,則強制覆蓋,若是爲no,則只有當目標主機的目標位置不存在該文件時,才複製。默認爲yes
– others:全部的file模塊裏的選項均可以在這裏使用
九、user 模塊與group模塊 :
user模塊是請求的是useradd, userdel, usermod三個指令,goup模塊請求的是groupadd, groupdel, groupmod 三個指令。
1:user模塊:
– home:指定用戶的家目錄,須要與createhome配合使用。
– groups:指定用戶的屬組。
– uid:指定用的uid。
– password:指定用戶的密碼。
注意:指定password參數時,不能使用明文密碼,由於後面這一串密碼會被直接傳送到被管理主機的/etc/shadow文件中,因此須要先將密碼字符串進行加密處理。而後將獲得的字符串放到password中便可
– name:指定用戶名。
– createhome:是否建立家目錄 yes|no。
– system:是否爲系統用戶。
– remove:當state=absent時,remove=yes則表示連同家目錄一塊兒刪除,等價於userdel -r。
– state:是建立仍是刪除。(present,absent)
– shell:指定用戶的shell環境。
– generate_ssh_key:是否爲相關用戶生成SSH密鑰。 這不會覆蓋現有的SSH密鑰。
– ssh_key_bits:可選擇指定要建立的SSH密鑰中的位數。
– ssh_key_passphrase:設置SSH密鑰的密碼。 若是沒有提供密碼,SSH密鑰將默認沒有密碼。
– ssh_key_file:指定SSH密鑰文件名(可選)。 若是這是一個相對的文件名,那麼它將是相對於用戶的主目錄。
– ssh_key_type:指定要生成的SSH密鑰的類型(可選)。 可用的SSH密鑰類型將取決於目標主機上的實現。
2.group模塊 :
– gid:指定用的gid。
– name:指定用戶名。
– state:是建立仍是刪除。(present,absent)
– system:若是是,則表示建立的組是系統組。
十、service 模塊 :
用於管理服務,記得針對Centos7就不要使用這個模塊了。
– arguments:給命令行提供一些選項
– enabled:是否開機啓動 yes|no, 要求狀態(state)和啓用(enabled)中至少有一個。
– name:必選項,服務名稱
– runlevel:運行級別
– sleep:若是執行了restarted,在則stop和start之間沉睡幾秒鐘
– state:對當前服務執行啓動,中止、重啓、從新加載等操做(started,stopped,restarted,reloaded)
十一、get_url 模塊 :
該模塊主要用於從http、ftp、https服務器上下載文件(相似於wget),主要有以下選項:
– sha256sum:下載完成後進行sha256 check;
– timeout:下載超時時間,默認10s
– url:下載的URL
– url_password、url_username:主要用於須要用戶名密碼進行驗證的狀況
– dest:將文件下載到哪裏的絕對路徑。若是dest是目錄,則使用服務器提供的文件名,或者若是沒有提供,將使用遠程服務器上的URL的基本名稱。
– headers:以格式「key:value,key:value」爲請求添加自定義HTTP標頭。
name: Download foo.conf
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
mode: 0440
name: Download file with custom HTTP headers
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
headers: 'key:value,key:value'
十二、fetch模塊 :
它用於從遠程機器獲取文件,並將其本地存儲在由主機名組織的文件樹中。
– src:遠程系統上要獲取的文件。 這必須是一個文件,而不是一個目錄。 後續版本可能會支持遞歸提取。
– dest:保存文件的目錄。 例如,若是dest目錄是/backup,在主機host.example.com上命名爲/ etc/profile的src文件將被保存到/backup/host.example.com/etc/profile。
– flat:容許您覆蓋將目標文件添加到主機名/ path / to / file的默認行爲。
1三、file模塊 :
file模塊主要用於遠程主機上的文件操做,file模塊包含以下選項:
– force:須要在兩種狀況下強制建立軟連接,一種是源文件不存在但以後會創建的狀況下;另外一種是目標軟連接已存在,須要先取消以前的軟鏈,而後建立新的軟鏈,有兩個選項:yes|no
– group:定義文件/目錄的屬組
– mode:定義文件/目錄的權限
– owner:定義文件/目錄的屬主
– path:必選項,定義文件/目錄的路徑
– recurse:遞歸的設置文件的屬性,只對目錄有效
– src:要被連接的源文件的路徑,只應用於state=link的狀況
– dest:被連接到的路徑,只應用於state=link的狀況
– state:
directory:若是目錄不存在,建立目錄
file:即便文件不存在,也不會被建立
link:建立軟連接
hard:建立硬連接
touch:若是文件不存在,則會建立一個新的文件,若是文件或目錄已存在,則更新其最後修改時間
absent:刪除目錄、文件或者取消連接文件
1四、unarchive模塊 :
用於解壓文件,模塊包含以下選項:
– copy:在解壓文件以前,是否先將文件複製到遠程主機,默認爲yes。若爲no,則要求目標主機上壓縮包必須存在。
– creates:指定一個文件名,當該文件存在時,則解壓指令不執行
– dest:遠程主機上的一個路徑,即文件解壓的絕對路徑。
– group:解壓後的目錄或文件的屬組
– list_files:若是爲yes,則會列出壓縮包裏的文件,默認爲no,2.0版本新增的選項
– mode:解壓後文件的權限
– src:若是copy爲yes,則須要指定壓縮文件的源路徑
– owner:解壓後文件或目錄的屬主
name: 將foo.tgz解壓縮到/var/lib/foo中
unarchive:
src: foo.tgz
dest: /var/lib/foo
name: 解壓遠程計算機上已存在的文件
unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
remote_src: yes
1五、command 模塊和shell :
用於在各被管理節點運行指定的命令
shell和command的區別:shell模塊能夠特殊字符,而command是不支持
1.command 模塊
– chdir:在運行命令以前,切換到此目錄。
name: return motd to registered var
command: cat /etc/motd
register: mymotd
2.shell 模塊 :
– chdir:在運行命令以前,切換到此目錄。
– executable:更改用於執行命令的shell(bash,sh)。 應該是可執行文件的絕對路徑。
name: Execute the command in remote shell; stdout goes to the specified file on the remote.
shell: somescript.sh >> somelog.txt
16.setup模塊 :
該模塊主要用於收集信息,是經過調用facts組件來實現的。
facts組件是Ansible用於採集被管機器設備信息的一個功能,咱們可使用setup模塊查機器的全部facts信息,可使用filter來查看指定信息。整個facts信息被包裝在一個JSON格式的數據結構中,ansible_facts是最上層的值。
ansible-doc -s setup
ansible mysql -m setup #查看mysql服務器上全部信息
17.script模塊 :
該模塊用於將本機的腳本在被管理端的機器上運行
在本身服務器設置腳本,其餘服務器去執行
ansible-doc -s script
#!/bin/bash
echo "this is test script" > /opt/script.txt
chmod 666 /opt/script.txt #設置權限
chmod +x shell.sh #爲腳本添加執行權限
ansible all -m script -a 'shell.sh'
18.cron模塊 :
該模塊適用於管理cron計劃任務的。
兩種狀態(state):present表示添加 absent 表示移除
ansible-doc -s cron #查看cron模塊信息
ansible all -m cron -a 'minute="/1" job="/usr/bin/echo heihei >> /opt/test.txt" name="test cron"' #-a: 指定添加參數 /1:每分鐘執行 job:執行內容