ansible基礎nginx
注:-a參數後的命令用單引號,單引號,單引號;雙引號有可能會出問題,特別是在user模塊;web
配置文件:vim /etc/ansible/hostsshell
vim /.ssh/authorized_keysvim
語法格式:bash
ansible 匹配模式 -m 模塊 -a ‘須要執行的內容’架構
釋:匹配模式:那些機器生效 (能夠是某一臺,或某一組,或all)默認模塊爲command 執行常規的shell命令ssh
一:測試目標主機是否在線:ping模塊ide
主機若是在線,則回覆pong測試
二:command模塊和shell
做用:用於在各被管理節點運行指定的命令
shell和command的區別:shell模塊能夠特殊字符,而command是不支持
三:user模塊:管理用戶的模塊
參數詳解:
name:指定用戶名
password:設定用戶密碼,password參數須要接受md5加密後的值
state:用戶狀態,默認爲present
present:表示添加用戶
absent:表示刪除用戶
update_password:修改用戶密碼
always:新密碼和舊密碼不一樣時進行修改
on_create:爲新建立的用戶指定密碼
createhome:建立家目錄
yes:默認項,即建立用戶默認是有家目錄的
no:建立用戶時不建立家目錄
remove:
yes:刪除用戶家目錄,須要指定此參數
no:默認項,刪除用戶時默認不刪除用戶的家目錄
system:
yes:默認建立爲普通用戶,而非系統用戶
若是不指定默認生成的選項有:
home:建立家目錄
shell:建立默認的shell爲/bin/bash
system:默認建立爲普通用戶,而非系統用戶,指定是用yes
四:任務計劃模塊:cron
獲取幫助:ansibe-doc -s cron
參數詳解:
state:
present:建立任務
absent:刪除任務
backup:對遠程主機上的原任務計劃內容修改以前作備份
job:要執行的任務
name:該任務的描述(必須項)
user:以哪一個用戶的身份運行
minute:分鐘(0-59,*,*/2,……),不寫默認爲*
hour:小時(0-23,*,*/2,……),不寫默認爲*
day:日(1-31,*,*/2,……),不寫默認爲*
month:月(1-12,*,*/2,……),不寫默認爲*
weekday:周(0-7,*,……),不寫默認爲*
五:遠程複製備份模塊:copy
獲取幫助:ansible-doc -s copy
參數詳解:
src:指定源文件路徑,能夠是相對路徑,也能夠是絕對路徑,能夠是目錄(並不是是必須的,可使用content,直接生成文件內容)
dest=:指定目標文件路徑,只能是絕對路徑,若是src是目錄,此項必須是目錄
owner:指定屬主
group:指定屬組
mode:指定權限,能夠以數字指定好比0644
content:代替src,直接往dest文件中寫內容,能夠引用變量,也能夠直接使用inventory中的主機變量
backup:在覆蓋以前將原文件備份,備份文件包含時間信息。有兩個選項:yes|no
force:
yes:默認項,若是目標主機包含該文件,但內容不一樣,則強制覆蓋
no:則只有當目標主機的目標位置不存在該文件時,才複製
directory_mode:遞歸的設定目錄的權限,默認爲系統默認權限
六:對遠程文件管理的模塊:file
獲取幫助:ansible-doc -s file
參數詳解:
owner:修改屬主
group:修改屬組
mode:修改權限
path=:要修改文件的路徑
recurse:遞歸的設置文件的屬性,只對目錄有效
yes:表示使用遞歸設置
state:
touch:建立一個新的空文件
directory:建立一個新的目錄,當目錄存在時不會進行修改
link:建立軟鏈接,結果src一塊兒使用此選項才生效
hard:建立硬鏈接
absent:刪除文件,目錄,軟鏈接
src:當state=link時,要被鏈接文件的源路徑
七:在遠程主機執行本地腳本:script
八:收集遠程主機的信息:setup
收集可用的facts,收集每一個節點的相關信息:架構信息,IP,時間,域名,網卡,MAC,主機名,CPU等信息。
這些收集的信息,能夠做爲變量。
九:安裝模塊:yum
模塊參數詳解:
name:表示要安裝軟件包的名字,默認最新的程序包,指明要安裝的程序包,能夠帶上版本號
state:表示是安裝還卸載
present:默認的,表示爲安裝
lastest:安裝爲最新的版本
absent:表示刪除
十:服務模塊:service
模塊參數詳解:
enabled:表示設置服務開機是否啓動,取值爲true或者false;enabled=yes
name=:表示要控制哪個服務
state:
started:表示如今就啓動此服務
stopped:表示如今關閉此服務
restarted:表示重啓此服務
sleep:若是執行了restarted,在stop和start之間沉睡幾秒
runlevel:定義在哪些級別能夠自啓動
arguments:表示向命令行傳遞的參數
十一:文件編輯模塊:lineinfile
模塊參數詳解:
path:指定要修改的配置文件
regexp:匹配要修改的內容
line:要增長或者修改的內容
state:
absent:表示刪除,當匹配到時進行刪除
present:表示增長,當匹配到時進行修改,當沒有匹配到時在最後增長一行,默認爲此項
backrefs:
no:表示若是沒有匹配到,則增長line;若是匹配成功,則替換line;
yes:表示若是沒有匹配到,則不變line;若是匹配成功,則替換line;
backup:
no:表示若是沒有匹配到,則增長line;若是匹配成功,則替換line;不備份原文件
yes:表示若是沒有匹配到,則增長line;若是匹配成功,則替換line;備份原文件
insertafter(匹配的是此行):
在匹配到的行以後添加一行
insertbefore(匹配的是此行):
在匹配到的行以前添加一行
vim web.yaml
注:經測試,當不添加backerfs: yes參數時,匹配到後也會進行替換,但當匹配到的內容不存在時,會在最後增長一行;因此當不增長backerfs參數時,要肯定匹配到的內容存在;
替換存在的行:
匹配到的行後增長一行:
刪除匹配到的行: