亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Ansible -i參數(shù)詳解:從靜態(tài)清單到動(dòng)態(tài)Inventory的自動(dòng)化運(yùn)維實(shí)踐

Ansible -i參數(shù)詳解:從靜態(tài)清單到動(dòng)態(tài)Inventory的自動(dòng)化運(yùn)維實(shí)踐 作為一個(gè)常年跟服務(wù)器打交道的運(yùn)維我對(duì)Ansible的態(tài)度一直是“能自動(dòng)化的絕不手工”。而在所有Ansible命令里-i參數(shù)可能是你最早接觸、卻又最容易用錯(cuò)的那一個(gè)。別小看它——ansible -i /path/to/inventory這種寫法表面上是指定一個(gè)清單文件實(shí)際上牽扯到一組主機(jī)的組織方式、環(huán)境隔離策略、批量的可重復(fù)性甚至是整個(gè)自動(dòng)化運(yùn)維體系能不能上線的關(guān)鍵。這篇東西不打算寫成手冊(cè)式的列舉而是想把我踩過(guò)的坑、驗(yàn)證過(guò)的用法、以及排查思路都攤開(kāi)聊一聊。無(wú)論你是剛接觸Ansible劇本的初學(xué)者還是已經(jīng)在自動(dòng)化運(yùn)維里摸爬滾打的老人這篇文章都會(huì)圍繞-i參數(shù)的幾種典型用法結(jié)合真實(shí)場(chǎng)景把原理、取舍和實(shí)操細(xì)節(jié)講清楚。看完之后你至少能明白什么時(shí)候該用靜態(tài)inventory什么時(shí)候該換動(dòng)態(tài)inventory-i和--limit到底怎么配合以及為什么說(shuō)“指定清單”這件小事往往是自動(dòng)化最值得投入精力的地方。1. 從inventory說(shuō)起-i參數(shù)到底在干什么1.1 最基礎(chǔ)也最容易忽略的概念講-i參數(shù)之前繞不開(kāi)inventory。Ansible本身沒(méi)有任何“服務(wù)器列表”的固化概念它執(zhí)行命令、跑劇本都依賴于一份或多份主機(jī)清單。默認(rèn)情況下Ansible會(huì)去找/etc/ansible/hosts但這在生產(chǎn)環(huán)境里幾乎不可用——你不可能讓所有項(xiàng)目都搶同一個(gè)文件更不可能在多人協(xié)作的時(shí)候?qū)χ粋€(gè)全局文件反復(fù)修改。所以真正的做法是用-i明確指定清單文件的路徑。-i的全稱是--inventory后面跟的既可以是一個(gè)普通文件也可以是一個(gè)目錄甚至可以是逗號(hào)分隔的主機(jī)列表。三種形式解決三種不同的問(wèn)題文件形式ansible -i hosts.ini all -m ping適合靜態(tài)環(huán)境簡(jiǎn)單直觀。目錄形式ansible -i inventory/dev/ all -m ping適合多環(huán)境管理目錄里可以放多個(gè)清單文件。逗號(hào)列表形式ansible -i web01,web02, all -m ping完全不依賴文件臨時(shí)排查、快速測(cè)試時(shí)極其方便。我第一次意識(shí)到-i的重要性是在同事留下的一堆混亂腳本里。當(dāng)時(shí)所有命令都依賴默認(rèn)的/etc/ansible/hosts一旦有人改了那個(gè)文件全公司跑腳本的人都受影響。后來(lái)我把清單全部改成顯式指定配合目錄隔離整個(gè)運(yùn)維腳本的穩(wěn)定性立刻上了一個(gè)臺(tái)階。這里想強(qiáng)調(diào)一個(gè)觀念顯式優(yōu)于隱式。-i把“我的命令控制哪些主機(jī)”這件事變成了一條明線而不是藏在某個(gè)全局文件里暗流涌動(dòng)。1.2 為什么不用默認(rèn)路徑有讀者可能會(huì)問(wèn)既然系統(tǒng)有默認(rèn)的/etc/ansible/hosts為什么非要折騰-i原因是實(shí)際場(chǎng)景里默認(rèn)路徑暴露了三個(gè)致命問(wèn)題。第一權(quán)限和隔離。生產(chǎn)、測(cè)試、開(kāi)發(fā)環(huán)境的清單如果擠在一個(gè)文件里任何誤操作都可能同時(shí)影響多個(gè)環(huán)境用-i配合獨(dú)立目錄每個(gè)環(huán)境自成體系就算有人改錯(cuò)了影響范圍也可控。第二可重復(fù)性。自動(dòng)化運(yùn)維的核心目標(biāo)之一是“同樣的腳本、同樣的參數(shù)在任何時(shí)間執(zhí)行結(jié)果一致”默認(rèn)路徑依賴機(jī)器本地的文件狀態(tài)換一臺(tái)機(jī)器跑結(jié)果就不同而把-i寫進(jìn)腳本里清單和腳本就成了一體的交付物。第三多項(xiàng)目共存。一個(gè)服務(wù)器上可能跑著多個(gè)業(yè)務(wù)線A項(xiàng)目的清單和B項(xiàng)目的清單本來(lái)就應(yīng)該互相隔離全局文件設(shè)計(jì)上就不義。還有一個(gè)細(xì)節(jié)值得注意-i指定的文件不要求固定的擴(kuò)展名。很多人習(xí)慣叫hosts或者inventory但Ansible只認(rèn)內(nèi)部格式不認(rèn)后綴名。你隨便命名prod、dev.ini、inventory.yaml都可以只要內(nèi)容符合格式要求。這給了我們?cè)谖募M織上極大的自由度后續(xù)在多環(huán)境管理那一節(jié)我會(huì)給出具體的目錄結(jié)構(gòu)。2. 實(shí)戰(zhàn)場(chǎng)景多環(huán)境、動(dòng)態(tài)清單、批量部署2.1 場(chǎng)景一多環(huán)境管理目錄化拆解實(shí)際工作中最常見(jiàn)的需求就是區(qū)分開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境。如果你把所有環(huán)境的主機(jī)都放在一個(gè)大文件里那每次執(zhí)行都要小心翼翼地加--limit去圈定范圍既煩瑣又危險(xiǎn)。我更推薦把-i指向一個(gè)目錄目錄里每個(gè)子目錄或文件對(duì)應(yīng)一個(gè)環(huán)境。舉個(gè)例子我的常見(jiàn)目錄結(jié)構(gòu)是這樣inventory/ ├── dev/ │ ├── hosts.ini │ └── group_vars/ ├── test/ │ ├── hosts.ini │ └── group_vars/ └── prod/ ├── hosts.ini └── group_vars/執(zhí)行時(shí)就這樣寫ansible-playbook -i inventory/prod/ deploy.yml為什么目錄化更好因?yàn)锳nsible讀取一個(gè)目錄時(shí)會(huì)自動(dòng)合并目錄下所有清單內(nèi)容和group_vars、host_vars目錄里的變量定義。這樣一來(lái)清單文件、組變量、主機(jī)變量就形成了完整的環(huán)境配置包。你交付的不再是“一個(gè)主機(jī)列表”而是一整套環(huán)境定義。更關(guān)鍵的是-i inventory/prod/和-i inventory/test/兩個(gè)命令在邏輯上強(qiáng)制隔離了環(huán)境。哪怕你在劇本里寫錯(cuò)了變量它的影響范圍也僅限于該命令指定的環(huán)境。我見(jiàn)過(guò)不少事故都是因?yàn)槟硞€(gè)文件被復(fù)用、變量串環(huán)境導(dǎo)致的目錄化之后這類問(wèn)題基本絕跡。2.2 場(chǎng)景二動(dòng)態(tài)inventory讓清單自己長(zhǎng)出來(lái)靜態(tài)文件在多環(huán)境場(chǎng)景下夠用但一旦上了云主機(jī)隨時(shí)彈性伸縮手工維護(hù)靜態(tài)清單就完全不現(xiàn)實(shí)了。AWS、阿里云、騰訊云的主機(jī)IP天天變你不能每次擴(kuò)縮容就去改一次hosts文件。這時(shí)候就該上動(dòng)態(tài)inventory。動(dòng)態(tài)inventory本質(zhì)上是一個(gè)可執(zhí)行腳本Ansible運(yùn)行-i script.py時(shí)會(huì)執(zhí)行這個(gè)腳本并解析它輸出到標(biāo)準(zhǔn)輸出的JSON數(shù)據(jù)。腳本根據(jù)云平臺(tái)API查詢實(shí)例狀態(tài)動(dòng)態(tài)生成主機(jī)列表和組信息。常見(jiàn)的實(shí)現(xiàn)方式有兩種使用官方或社區(qū)提供的動(dòng)態(tài)inventory插件。比如amazon.aws.aws_ec2、azure.azure_rm、google.cloud.gcp_compute只要在ansible.cfg里啟用對(duì)應(yīng)插件配上訪問(wèn)密鑰和區(qū)域信息就能直接以插件方式動(dòng)態(tài)獲取主機(jī)列表。自己寫一個(gè)腳本封裝API調(diào)用。適合定制化需求比如只篩選特定標(biāo)簽、特定VPC內(nèi)的實(shí)例。用一句話總結(jié)動(dòng)態(tài)inventory的價(jià)值-i不再指向一個(gè)文件而是指向一個(gè)“生成器”。它讓Ansible的主機(jī)清單和云上真實(shí)實(shí)例狀態(tài)始終保持一致消除手工同步帶來(lái)的滯后和誤差。我自己維護(hù)過(guò)一個(gè)內(nèi)部工具腳本大概邏輯是讀取配置文件里的云廠商AK/SK調(diào)用查詢接口拿回所有實(shí)例ID和IP再按實(shí)例名稱的前綴歸類到不同組。然后我只需要執(zhí)行ansible -i /opt/scripts/dynamic_inventory.py --list就能看到完整的JSON輸出驗(yàn)證腳本返回的數(shù)據(jù)結(jié)構(gòu)對(duì)不對(duì)。確認(rèn)無(wú)誤后再把它接到ansible-playbook里使用效果立竿見(jiàn)影。以前處理一批新擴(kuò)容機(jī)器先要把IP人工加進(jìn)文件再跑劇本現(xiàn)在擴(kuò)容完成直接跑劇本新節(jié)點(diǎn)自動(dòng)進(jìn)入目標(biāo)組。這里要特別提醒一個(gè)動(dòng)態(tài)inventory的細(xì)節(jié)腳本必須有可執(zhí)行權(quán)限而且輸出必須是合法的JSON。這是新手最容易栽的地方。Ansible執(zhí)行動(dòng)態(tài)清單腳本時(shí)會(huì)先運(yùn)行它再解析標(biāo)準(zhǔn)輸出任何一句額外的日志打印或者Python的print調(diào)試信息都會(huì)污染輸出導(dǎo)致解析失敗。我常用的排查方法就是先在命令行手動(dòng)運(yùn)行一次腳本看輸出的JSON是否完整再做調(diào)試。2.3 場(chǎng)景三臨時(shí)指定主機(jī)列表一條命令解決排查需求不是所有場(chǎng)景都需要文件和目錄。有時(shí)你只是想確認(rèn)某幾臺(tái)機(jī)器上某個(gè)服務(wù)是否啟動(dòng)或者快速批量執(zhí)行一個(gè)命令這時(shí)候最方便的反而是直接傳逗號(hào)分隔列表。ansible -i 192.168.1.21,192.168.1.22, all -m command -a systemctl status nginx注意寫法末尾有個(gè)逗號(hào)這是為了告訴Ansible“這是一個(gè)列表而不是一個(gè)文件名”。如果不加末尾逗號(hào)Ansible會(huì)把整段字符串當(dāng)作路徑去解析然后報(bào)錯(cuò)找不到文件。這個(gè)細(xì)節(jié)非常隱蔽我見(jiàn)過(guò)不止一個(gè)同事在這上面卡了半小時(shí)。這種臨時(shí)列表形式最適合配合-m模塊和-a參數(shù)做快速操作例如批量ping、查uptime、分發(fā)公鑰ansible -i node01,node02, all -m authorized_key -a userroot key{{ lookup(\file\, \/home/user/.ssh/id_rsa.pub\) }}它的優(yōu)勢(shì)就是零依賴不需要造文件、不需要考慮目錄結(jié)構(gòu)適合臨時(shí)搭建的環(huán)境或者故障排查。缺點(diǎn)也很明顯主機(jī)信息沒(méi)有持久化組變量、主機(jī)變量完全沒(méi)法用而且容易手滑漏掉某臺(tái)機(jī)器。所以我的建議是把這種形式限制在“一次性小操作”任何需要重復(fù)執(zhí)行的任務(wù)都應(yīng)該至少落一個(gè)靜態(tài)清單文件。3. 參數(shù)變體與核心細(xì)節(jié)解析3.1-i和--limit的辨析很多初學(xué)者會(huì)把-i和--limit混為一談或者用起來(lái)沒(méi)有章法。實(shí)際上這兩者解決的問(wèn)題完全不同。-i決定的是“候選主機(jī)池”也就是Ansible能從哪些主機(jī)里挑機(jī)器--limit決定的是“在這個(gè)池子里執(zhí)行哪些主機(jī)”。用白話講-i是劃定范圍--limit是細(xì)化到子集。生產(chǎn)中的正確姿勢(shì)是把環(huán)境級(jí)別的邊界全部交給-i避免意外觸碰環(huán)境外主機(jī)把單次執(zhí)行的目標(biāo)圈定交給--limit實(shí)現(xiàn)“整個(gè)生產(chǎn)池我只動(dòng)其中某臺(tái)”。舉例ansible-playbook -i inventory/prod/ upgrade.yml --limit db-01這條命令的含義是所有生產(chǎn)主機(jī)都是可操作范圍但我這次只對(duì)db-01執(zhí)行升級(jí)。好處是由于-i明確指向生產(chǎn)環(huán)境清單那么即使劇本里出現(xiàn)了組名、變量引用錯(cuò)誤也不會(huì)跑到測(cè)試環(huán)境去而--limit讓精確操作變得安全可控。相反如果你只用了--limit卻不指定-i那么主機(jī)池默認(rèn)是/etc/ansible/hosts里面混著哪些機(jī)器就有風(fēng)險(xiǎn)了。這也是我一直堅(jiān)持“命令里必須帶顯式-i”的原因。3.2 清單文件里的格式要點(diǎn)-i指向的清單文件不是隨便填幾個(gè)IP就行它有一套約定俗成的結(jié)構(gòu)。以INI格式為例[web] web01 ansible_host192.168.1.21 ansible_userroot web02 ansible_host192.168.1.22 [db] db01 ansible_host192.168.1.31 [prod:children] web db這個(gè)文件里包含了幾個(gè)信息組web、組db、父組prod以及每臺(tái)主機(jī)對(duì)應(yīng)的連接參數(shù)。-i指向它之后你既可以用-i hosts.ini web來(lái)操作web組也可以用-i hosts.ini prod來(lái)同時(shí)操作兩個(gè)子組。還有一個(gè)重要的隱式組all和ungrouped。-i hosts.ini all匹配清單里的所有主機(jī)-i hosts.ini ungrouped匹配沒(méi)有放進(jìn)任何組的主機(jī)。這決定了你如果不小心把某臺(tái)機(jī)器漏寫在組里它會(huì)不會(huì)被all誤執(zhí)行到。我強(qiáng)烈建議在靜態(tài)清單里給每個(gè)環(huán)境都建立一個(gè)明確的[env:children]父組例如[prod:children]、[test:children]。這樣可以極大地方便腳本里引用也讓-i inventory/prod/ web這樣的命令更直觀。3.3 兩種格式INI、YAML怎么選從Ansible 2.4開(kāi)始YAML格式的inventory也可以直接用但很多人沒(méi)意識(shí)到兩種格式在表達(dá)復(fù)雜變量時(shí)的差異。INI格式寫簡(jiǎn)單分組很方便一個(gè)文件幾行就完事YAML格式則結(jié)構(gòu)更清晰適合需要大量主機(jī)變量的場(chǎng)景。YAML版清單長(zhǎng)這樣all: children: web: hosts: web01: ansible_host: 192.168.1.21 web02: ansible_host: 192.168.1.22 db: hosts: db01: ansible_host: 192.168.1.31實(shí)際用下來(lái)我的判斷標(biāo)準(zhǔn)是如果只是幾十臺(tái)機(jī)器組結(jié)構(gòu)不復(fù)雜INI綽綽有余如果清單要交給多個(gè)團(tuán)隊(duì)維護(hù)、變量復(fù)用頻繁YAML更合適。-i對(duì)兩者都支持得很好所以選型不必糾結(jié)重點(diǎn)是整個(gè)團(tuán)隊(duì)保持一致。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 高頻報(bào)錯(cuò)速查表我整理了這幾年被問(wèn)到最多、也最典型的五個(gè)問(wèn)題全部跟-i和inventory直接相關(guān)。問(wèn)題現(xiàn)象常見(jiàn)原因解決方案No hosts matched指定的組名不存在或清單中實(shí)際沒(méi)有該組先執(zhí)行ansible -i 清單文件 --list-hosts 組名確認(rèn)匹配情況ERROR! Specified inventory hosts dont exist-i路徑寫錯(cuò)或逗號(hào)列表忘加末尾逗號(hào)用ls確認(rèn)文件存在列表形式檢查末尾逗號(hào)解析清單時(shí)報(bào)語(yǔ)法錯(cuò)誤INI里縮進(jìn)混用、ansible_host值寫了中文或異常字符逐個(gè)檢查主機(jī)行刪除隱藏字符用ansible-inventory -i 文件 --list驗(yàn)證動(dòng)態(tài)清單腳本無(wú)輸出或JSON解析失敗腳本沒(méi)有執(zhí)行權(quán)限或腳本里有額外print手動(dòng)運(yùn)行腳本清理非JSON輸出給腳本加x權(quán)限執(zhí)行到了不該執(zhí)行的主機(jī)-i指向了錯(cuò)誤的環(huán)境目錄命令中固定使用環(huán)境全路徑使用前先跑--list-hosts確認(rèn)范圍這里最推薦的一個(gè)習(xí)慣是在跑任何playbook之前先跑一次--list-hosts看匹配范圍。這個(gè)命令不會(huì)改變系統(tǒng)狀態(tài)純粹打印這次-i加主機(jī)模式匹配到了哪些機(jī)器。你只需在真正的playbook命令前面加一個(gè)--list-hosts參數(shù)就能避免絕大部分“誤操作到不該碰的機(jī)器”的慘劇。4.2 權(quán)限與連接問(wèn)題使用-i指定清單后每個(gè)主機(jī)的連接方式取決于清單里的連接參數(shù)。最常見(jiàn)的問(wèn)題是ansible_user沒(méi)有正確指定或者SSH端口不是默認(rèn)22。排查思路很直接ansible -i hosts.ini web -m ping -vvv-vvv參數(shù)會(huì)輸出完整的SSH連接日志你會(huì)看到它走了哪個(gè)ansible_user、嘗試了哪個(gè)端口、最終停在什么錯(cuò)誤上。我見(jiàn)過(guò)很多“ping不通”的假象最后都是因?yàn)榍鍐卫锏腶nsible_host寫成了內(nèi)網(wǎng)保留地址而執(zhí)行機(jī)根本訪問(wèn)不到。所以排查連通性時(shí)先確認(rèn)執(zhí)行機(jī)到目標(biāo)機(jī)的網(wǎng)絡(luò)路徑再確認(rèn)清單參數(shù)最后才考慮公鑰和密碼認(rèn)證的問(wèn)題。另外一個(gè)經(jīng)驗(yàn)是清單里連接參數(shù)如果和命令行的-u、--private-key產(chǎn)生沖突Ansible會(huì)優(yōu)先采用命令行指定的值。這就意味著如果你在command里硬性指定了-u root那么清單里的ansible_user就會(huì)失效。理解這個(gè)優(yōu)先級(jí)有助于你快速定位“為什么我改清單里的用戶沒(méi)起作用”這類困惑。4.3 常見(jiàn)誤操作和防呆建議我見(jiàn)過(guò)最意外的事故是把生產(chǎn)環(huán)境的清單文件內(nèi)容改動(dòng)后沒(méi)有驗(yàn)證就直接跑批量部署。結(jié)果新加的某臺(tái)機(jī)器由于沒(méi)有初始化直接被劇本執(zhí)行了一堆依賴安裝最后系統(tǒng)狀態(tài)變得不可預(yù)期。這類問(wèn)題不是-i本身造成的而是沒(méi)有在清單變更后做嚴(yán)格驗(yàn)證。所以我的防呆流程是這樣修改清單后總是先執(zhí)行ansible-inventory -i inventory/prod/ --list確認(rèn)數(shù)據(jù)結(jié)構(gòu)完整。再用ansible -i inventory/prod/ all --list-hosts確認(rèn)目標(biāo)范圍。最后才跑真正的playbook并且盡量加上--check參數(shù)做干跑演練。這套流程不用花很多時(shí)間但能幫你躲掉大多數(shù)因?yàn)榍鍐巫兏鼘?dǎo)致的批量事故。自動(dòng)化運(yùn)維半年來(lái)我最大的感悟就是慢就是快越小心的前置檢查才越能避免大故障的后置恢復(fù)。5. 實(shí)測(cè)驗(yàn)證從命令行到Playbook的組合玩法5.1 用-i組合模塊命令做快速巡檢單純列參數(shù)講概念遠(yuǎn)不如實(shí)際演示來(lái)得直觀。下面我給出幾個(gè)我在日常運(yùn)維里真實(shí)會(huì)用到的命令每個(gè)都緊密結(jié)合-i。第一批量檢查多臺(tái)機(jī)器的時(shí)間同步ansible -i inventory/prod/ prod -m shell -a date timedatectl這個(gè)命令會(huì)遍歷prod組內(nèi)所有主機(jī)先輸出日期時(shí)間再查看時(shí)區(qū)和NTP同步狀態(tài)。加上-i顯式指定環(huán)境之后我可以放心地把同一腳本丟給測(cè)試環(huán)境只需要換路徑ansible -i inventory/test/ test -m shell -a date timedatectl第二批量收集機(jī)器信息并生成報(bào)告ansible -i inventory/prod/ all -m setup 2/dev/null | grep ansible_hostnamesetup模塊會(huì)自動(dòng)收集主機(jī)的facts包括主機(jī)名、IP、系統(tǒng)版本、內(nèi)存、磁盤等大量信息。用-i指定環(huán)境后你得到的就是該環(huán)境下的機(jī)器“體檢報(bào)告”。我在做資產(chǎn)盤點(diǎn)時(shí)就用這個(gè)方法比登到每臺(tái)機(jī)器上去看快好幾倍。第三批量分發(fā)配置文件ansible -i inventory/prod/ web -m copy -a src/opt/config/nginx.conf dest/etc/nginx/nginx.conf backupyes這條命令配合-i的目錄化清單直接在指定環(huán)境的web組里分發(fā)配置。backupyes參數(shù)還會(huì)自動(dòng)備份遠(yuǎn)端舊配置降低出錯(cuò)的回滾成本。5.2 Playbook中使用-i的正確姿勢(shì)當(dāng)從單條ansible命令切換到ansible-playbook時(shí)-i的使用邏輯不變但要注意變量引用的差異。Playbook內(nèi)部通過(guò)hosts:關(guān)鍵字選擇執(zhí)行組這個(gè)組名必須能由-i指定的清單解析出來(lái)。一個(gè)典型的用法ansible-playbook -i inventory/prod/ deploy.yml --tags deploy --limit web這條命令的含義是從生產(chǎn)環(huán)境清單中僅選擇web組下的主機(jī)且只執(zhí)行playbook中帶有deploy標(biāo)簽的任務(wù)。因?yàn)?i指向生產(chǎn)才會(huì)有安全的環(huán)境隔離--limit再做一層細(xì)粒度控制兩條配合起來(lái)既靈活又安全。我還在playbook里大量使用group_vars按環(huán)境區(qū)分配置。目錄化的-i讓Ansible自動(dòng)加載對(duì)應(yīng)環(huán)境的group_vars這樣同一份playbook在不同環(huán)境跑拿到的配置參數(shù)天然不同。比如生產(chǎn)環(huán)境連的是生產(chǎn)數(shù)據(jù)庫(kù)地址測(cè)試環(huán)境連的是測(cè)試數(shù)據(jù)庫(kù)地址這些差異全部由inventory目錄結(jié)構(gòu)消化掉playbook本身保持純凈。5.3 動(dòng)態(tài)Inventory與Playbook的深度整合動(dòng)態(tài)inventory和playbook配合的坑在于動(dòng)態(tài)腳本輸出的組名必須和playbook里的hosts:字段完全一致否則就會(huì)報(bào)“no hosts matched”。所以我建議先把動(dòng)態(tài)腳本的輸出導(dǎo)出來(lái)看一眼python /opt/scripts/dynamic_inventory.py --list /tmp/inv.json jq .web /tmp/inv.json確認(rèn)web組存在后再執(zhí)行ansible-playbook -i /opt/scripts/dynamic_inventory.py deploy.yml另外一個(gè)細(xì)節(jié)是動(dòng)態(tài)inventory里經(jīng)常需要附帶額外變量比如ansible_user、ansible_ssh_private_key_file等。這些變量可以寫在腳本輸出JSON的_meta字段里Ansible會(huì)讀取_meta.hostvars來(lái)獲取主機(jī)級(jí)變量。很多初學(xué)動(dòng)態(tài)inventory的人只返回了主機(jī)列表忘了返回_meta導(dǎo)致playbook跑起來(lái)后用錯(cuò)誤的SSH用戶連接。所以設(shè)計(jì)動(dòng)態(tài)清單腳本時(shí)既要輸出組成員關(guān)系也要輸出連接參數(shù)這樣整個(gè)鏈路才是閉環(huán)的。6. 擴(kuò)展玩法自定義Inventory插件體系初探6.1 為什么需要自定義插件多數(shù)團(tuán)隊(duì)的清單需求無(wú)非是靜態(tài)文件和動(dòng)態(tài)腳本兩種。但當(dāng)你需要從內(nèi)部CMDB、工單系統(tǒng)、甚至一個(gè)Excel表格里讀取主機(jī)信息時(shí)動(dòng)態(tài)腳本仍然不夠優(yōu)雅。Ansible從2.4開(kāi)始豐富了inventory plugin機(jī)制允許通過(guò)配置ansible.cfg以插件方式加載自定義的清單來(lái)源。用插件最大的好處是可以和Ansible自己的配置體系無(wú)縫集成比如插件的配置可以直接寫在ansible.cfg里支持緩存、支持組合過(guò)濾條件。而動(dòng)態(tài)腳本則更加“黑盒”一切行為由腳本自己解釋閱讀和排錯(cuò)都更費(fèi)力。6.2 一個(gè)簡(jiǎn)單的自定義清單插件模板如果你的環(huán)境里已經(jīng)有了一個(gè)內(nèi)部API可以返回主機(jī)列表那么寫一個(gè)簡(jiǎn)單插件并不復(fù)雜。下面我提供一個(gè)最小可用的框架思路具體實(shí)現(xiàn)還是要結(jié)合你的內(nèi)部API格式來(lái)調(diào)整。插件主體通常是一個(gè)繼承BaseInventoryPlugin的Python類核心實(shí)現(xiàn)parse方法。parse方法里從配置讀取API地址請(qǐng)求數(shù)據(jù)解析JSON然后調(diào)用self.inventory.add_group、self.inventory.add_host、self.inventory.set_variable等API把主機(jī)信息填充進(jìn)Ansible的inventory對(duì)象。關(guān)鍵點(diǎn)有三個(gè)在ansible.cfg里配置enable_plugins確保自定義插件被加載。插件文件名要放在指定的inventory_plugins目錄里Ansible啟動(dòng)時(shí)會(huì)到這些目錄下尋找插件。-i后面的值要配置成插件對(duì)應(yīng)的清單源描述例如-i my_cmdb.yml其中my_cmdb.yml里寫API地址和認(rèn)證信息。寫自定義插件的門檻確實(shí)比動(dòng)態(tài)腳本高一點(diǎn)但它的回報(bào)也是很明顯的插件可以復(fù)用Ansible的緩存機(jī)制、變量合并機(jī)制調(diào)試起來(lái)也比腳本清晰得多。如果你所在團(tuán)隊(duì)的運(yùn)維規(guī)模常年幾百臺(tái)機(jī)器、且有成熟的資產(chǎn)系統(tǒng)這條路線值得投入時(shí)間去搭建。6.3 我的選型建議與判斷標(biāo)準(zhǔn)聊了這么多最后給一個(gè)務(wù)實(shí)的選型建議。如果機(jī)器數(shù)量在幾十臺(tái)級(jí)別且變化不頻繁直接用靜態(tài)文件加目錄化組織就夠了完全沒(méi)有必要引入動(dòng)態(tài)機(jī)制如果機(jī)器上了云、經(jīng)常擴(kuò)縮容那么動(dòng)態(tài)inventory腳本是性價(jià)比最高的選擇如果你已經(jīng)有了一套CMDB或者資產(chǎn)系統(tǒng)希望所有工具的清單來(lái)源統(tǒng)一再考慮自定義inventory插件。做任何方案之前先想清楚-i指向的清單到底承擔(dān)了什么角色它只是給Ansible提供連接信息還是同時(shí)承載了環(huán)境隔離、配置分層、權(quán)限邊界想得越清楚方案就越不容易被推翻。我本人目前的架構(gòu)是核心環(huán)境用靜態(tài)目錄化inventory臨時(shí)用逗號(hào)列表云節(jié)點(diǎn)通過(guò)動(dòng)態(tài)腳本接入內(nèi)部資產(chǎn)系統(tǒng)正逐步用自定義插件替換原先的腳本。這套組合并不復(fù)雜關(guān)鍵是每一步的選擇都有明確理由支撐。7. 踩坑經(jīng)驗(yàn)與工作習(xí)慣建議7.1 踩過(guò)的坑從環(huán)境混淆到變量泄漏先說(shuō)說(shuō)我真實(shí)經(jīng)歷過(guò)的幾次踩坑相信很多人也有共鳴。第一次是環(huán)境混淆事故。當(dāng)時(shí)項(xiàng)目剛開(kāi)始規(guī)模不大我把生產(chǎn)、測(cè)試的主機(jī)放在同一個(gè)inventory文件里靠著--limit來(lái)區(qū)分。結(jié)果某次升級(jí)時(shí)--limit寫錯(cuò)了一個(gè)前綴把一臺(tái)測(cè)試機(jī)器當(dāng)成生產(chǎn)機(jī)器執(zhí)行了數(shù)據(jù)遷移腳本。雖然沒(méi)有造成真正的數(shù)據(jù)丟失但那次教訓(xùn)讓我徹底放棄了“單文件加限制”的方案轉(zhuǎn)而用目錄強(qiáng)制隔離環(huán)境。第二次是變量泄漏。由于多個(gè)環(huán)境的group_vars放在同一個(gè)目錄層級(jí)下某個(gè)變量文件里不小心覆蓋了公共變量導(dǎo)致生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)連接地址被測(cè)試環(huán)境的值給串了。還好當(dāng)時(shí)有監(jiān)控及時(shí)發(fā)現(xiàn)沒(méi)有引發(fā)嚴(yán)重故障。從那以后每個(gè)環(huán)境的group_vars一律放在獨(dú)立的目錄里絕不允許相互引用。第三次是關(guān)于動(dòng)態(tài)inventory的-i權(quán)限問(wèn)題。腳本一開(kāi)始放在某個(gè)普通用戶目錄下Ansible執(zhí)行時(shí)報(bào)“Permission denied”。排查了很久才發(fā)現(xiàn)是腳本沒(méi)有加執(zhí)行權(quán)限-i解析時(shí)把它當(dāng)作不可執(zhí)行文件處理了。自那以后我每次新建動(dòng)態(tài)清單腳本都會(huì)順便執(zhí)行chmod x并寫進(jìn)團(tuán)隊(duì)規(guī)約里。7.2 推薦的工作習(xí)慣讓-i成為命令的標(biāo)準(zhǔn)配置從這些坑里我總結(jié)了幾條必須堅(jiān)持的工作習(xí)慣。第一所有ansible命令都顯式帶-i。不管這條命令是針對(duì)開(kāi)發(fā)環(huán)境還是生產(chǎn)環(huán)境把-i寫出來(lái)相當(dāng)于給執(zhí)行目標(biāo)上了保險(xiǎn)。你可以把它理解成寫SQL時(shí)必須帶上WHERE條件如果忘了寫可能就會(huì)更新到全表數(shù)據(jù)。第二環(huán)境目錄命名要統(tǒng)一且不可隨意改動(dòng)。inventory/dev/、inventory/test/、inventory/prod/一旦定了就不要為了節(jié)省幾個(gè)字符去改成d、t、p。全稱命名雖然長(zhǎng)但在腳本審查時(shí)一眼就能看出目標(biāo)環(huán)境這對(duì)多人協(xié)作極其重要。第三在playbook的首個(gè)任務(wù)里輸出當(dāng)前執(zhí)行環(huán)境。我經(jīng)常在playbook開(kāi)頭加一個(gè)debug任務(wù)- name: Print current environment debug: msg: Executing on {{ inventory_dir }}這樣每次跑playbook終端都會(huì)先打印出inventory目錄路徑確認(rèn)當(dāng)前環(huán)境。如果這里顯示的路徑和自己想的不一致馬上停止執(zhí)行。第四利用ansible-inventory做清單可視化。Ansible提供了一個(gè)專門調(diào)試inventory的子命令ansible-inventory用法是ansible-inventory -i inventory/prod/ --list ansible-inventory -i inventory/prod/ --graph--graph會(huì)以樹(shù)狀結(jié)構(gòu)顯示組與主機(jī)的關(guān)系非常直觀。我在寫復(fù)雜清單時(shí)都會(huì)先跑一下--graph檢查有沒(méi)有組嵌套錯(cuò)誤。7.3 腳本化-i參數(shù)管理的進(jìn)階建議如果團(tuán)隊(duì)規(guī)模稍大我建議把-i相關(guān)的路徑定義抽成公共變量或者腳本參數(shù)避免每個(gè)腳本里硬編碼一長(zhǎng)串路徑。比如可以寫一個(gè)運(yùn)維入口腳本#!/bin/bash ENV$1 shift ansible-playbook -i inventory/${ENV}/ $這樣在執(zhí)行時(shí)./ops.sh prod deploy.yml --tags restart好處是環(huán)境名稱被約束在dev/test/prod等枚舉值里降低了誤寫路徑的概率也讓新同事更容易上手。雖然這只是一個(gè)小包裝但在團(tuán)隊(duì)協(xié)作時(shí)的收益相當(dāng)明顯。如果你使用GitLab CI或Jenkins還可以把-i環(huán)境參數(shù)定義成CI變量讓不同流水線天然帶上環(huán)境標(biāo)簽從流程上杜絕“手動(dòng)指定錯(cuò)誤環(huán)境”的可能。這也是我把-i從“命令行參數(shù)”提升到“自動(dòng)化體系基礎(chǔ)設(shè)計(jì)”的原因它不是一個(gè)小細(xì)節(jié)而是環(huán)境邊界的錨點(diǎn)。所有上游工單系統(tǒng)、CMDB、發(fā)布平臺(tái)的對(duì)接最終都會(huì)落到“當(dāng)前這個(gè)任務(wù)應(yīng)該用哪份inventory”這個(gè)問(wèn)題上。我現(xiàn)在每寫一個(gè)自動(dòng)化腳本第一件事就是確定它的inventory來(lái)源每設(shè)計(jì)一個(gè)發(fā)布流程第一件事也是確定它作用于哪個(gè)清單環(huán)境。-i不只是參數(shù)而是一種把自動(dòng)化行為固定在可控邊界內(nèi)的紀(jì)律。有了這個(gè)紀(jì)律Ansible的強(qiáng)大能力才能真正安全地發(fā)揮出來(lái)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天美传媒麻豆一区二区三区国产精| 色97干| 亚洲天堂电影网| 久久91精品国产9丨久久分亭| 黑人精品成人一区二区三区| 精品女人999| 成人开心网在线视频| 精品九区| 91丨九色丨大屁股| 98超碰欧美| 岛国1区2区3区在线观看| 26uuu国产亚洲综合| 操逼啊啊啊91| 欧亚日韩一区在线| 亚洲天堂另类| 99热婷婷一区二区三| 97在线观视频免费观看| 久久一区无码| 久久一二三四五六七八九区区区| 欧美αv.com| 亚洲欧美日韩免费观看| 91精品国产综合久久久蜜臀酒店| 久久久久久久久久久久欧美日| 九九热视频在线观看| 亚洲啪啪视频一区二区| 中文字幕一区二区三区高清| 国产成人精品必看| 精品一区二区成人| 日韩免费性爱视频在线观看| 岛国精品视频在线观看| 影音先锋国产精品| 亚洲少妇喷视频看| 宅男91视频在线播放| 男人的天堂在线有码| 人人爱操| 91精品国产91久久青草| 在线视频97| 日韩在线欧美精品一区二区| 91欧美偷拍| 亚洲第一综合| 99热官网| 91色综| 日本污ww视频网站| av婷婷色婷婷色六月| 天堂中文资源在线bt| 能在线播放的国产三级| 国产欧美成人第一页在线观看| 亚洲精品自拍| 一级做a爰片久久毛片图片| 五月丁香黄色网| 精品日韩中文在线| 欧美v亚洲v日韩v最新在线二区| 国产亲戚伦亲在线| 人妻少妇久久久| 亚洲va综合va国产va中文| 天天欧美欧美亚洲网| 日韩三级视频一区二区三区| 国产成人资源| 久久人爽| 九热中文字幕| 可以在线观看的黄色网址| 视频黄色国产一级| 久久理论字幕视频| 极品AV网站在线观看| 精品妇操一区二区三区| 亚洲综合伊人无码久久| 人人妻碰人人免费| 3d成人精品一区二区| 国产小u女在线观看| 91一起操| 国内操逼视频二区| 五月情色天| a男人的天堂久久一级A毛片| 桃花色涩综合影院| 亚洲综合影片| 蜜臀va69| 老子午夜伦不卡影院| 黄片在线免费在线观看| 富二代亚洲精品99| 蜜臀久久精品久久久久视频| 国产欧美精选自拍一区| 九九伊人网| 久久手机视直播| 亚洲91综合| 天天综合官网| 操逼片中文| 嗯啊啊啊轻点视频 | 亚洲色欲天天人妻无码系列专区| av优播| 加勒比av中文| 自拍偷拍草一草| 婷婷丁香六月| 动漫av中文| 人妻欧美| 五月丁香啪| 夜夜 中文视频rt| 91福利网在线观看| 超碰天天久久79| 大香蕉中文| 国产无马av| 国产99999久久精品| 久久成人国产精品| 大香蕉天天看妹子| 91丝袜美女视频| 国产又大又硬又长又粗| 欧美亚洲激情一二三| 日韩电影在线观看网址| 一道本久久棕合爱| 大香蕉综合网| 欧美综合站| 男人综合网| 色香色欲天天综合网天天来吧| 国产女同性恋视频| 国内精品久久久久影院亚洲| 亚洲精品国产熟女久久久| 中文字幕日韩精品久久| 91色五月俺来也| 夫妻日逼| 97人妻色| 大学生美女口爆| 无码99| 亚洲AV无码乱码| 男人天堂一区二区| 亚洲 在线| 欧美精品999| 国产AV天美传媒一区二区三区 | 蜜臀AV成人精品蜜臀AV久久| 亚洲无992tv| 欧美日韩99精品麻豆传媒| 91精品人妻一品二品三品| 大香蕉伊人久久| 揉揉揉夜夜| 丁香激情五月| 亚洲精品国产精品成人| 成人综合网 欧美| 国产一区二区成人av在线播放| 婷婷情色综合网| 欧美激情专区| 绯色AV粉色AV蜜臀AV| AV和黑人在线播放| 日韩有码中文字幕女同性恋 | 性欧美999| 天堂种子在线www网资源| 日韩精品亚洲一二三| 五月天激情小说| 99999精品| 免费网色网站| 国产女性无套 免费观看| 欧美最婬乱婬爆婬牲视频| 婷婷久久综合久| 青青草国产欧美非洲黑人 | 亚欧毛片基地国产毛片基地| 日本免费一区二区不卡 | 91精品少妇搡搡搡| 亚洲熟妇图片| 99久久精品国产高潮| 色色九区| 久久久一区二区三区麻豆| 天天欧美色| 精品成人无码| 久久神马| 俺去啦自拍| 在线观看十八禁| 国产精品自拍xxxx| 91性片| 蜜奶av| 美国一区二区免费视频| 一区二区乱码福利| 青青草中日韩在线| 成人黄页| 涩涩久久精品| 人人操天天爽| 色噜噜婷婷| 国产精品视频自拍在线| 猛猛干| 日韩不卡网操逼中文字幕日韩| 99亚洲精品| 青娱乐亚洲自拍| 久久精品| 欧美天天干| 男女香蕉一区二区| 婷婷美人网| 亚洲图片欧美91N| 一本一道波多野毛片中文在线| 欲香欲色综合天天伊人| 欧美大色交| 国产久久视频| 亚洲人成色9999精品久久| 亚洲精品美女久久久久久久久| 亚洲啪啪视频免费| 成全动漫视频观看免费下载| 国产熟妇 码视频户外直播| 91色欧美| 五月天AV资源| 9丨久久九九九| 后入日本1234| 国产成人五月天丁香花| 久操免费电影| 97爱爱官网| 97视频播放| 欧美色图小说综合| 美女91色黄18| 亚洲综合色图欧美| 青草地一本线一区二区三区| 美女黄色91| 欧美一二级| 98福利在线视频| 久久久久久久久久黄色网| ′ !γ}丶。。久久精品欧美一区二区三区| 八人操人人摸人人看| 91深夜夜| 曰韩av中文字幕专区| 黑人黄片在线免费观看| 日本熟女中文| 丁香六月激情综合| 日韩懂色网| 久久超碰亚洲人| 伊人青青一区成人视频在线观看区 | 黑丝少妇| 女人妻一区| 成人无码专区精品视频| 午夜精品久久久久| 欧美在线电影| 亚洲黑人在线| 91亚洲色人| 欧美人与性动交a美精品| 国产精品干干干| 国产精品一区二区 尿失禁| 国产视频一区二区免费| 亚洲色图20p| 99久久综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产99久久99热这里只有精品15 | 东北女人操比视频| 男人的天堂com| 婷婷五月天激情四射| 国产白丝精品在线观看| 亚洲日韩美女中文字幕乱| 久99热| 蜜桃臀 后入 一区 二区 三区 在线| 台湾大香蕉99热| 日韩淫色网| juliaann丝袜| 强奸国产精品视频| 欧美色五月| 青青草视频在线观看一区二区| 国产地址二三| 午夜在线播放| 夜夜影视四色| 内射黑人| 久久69| 国产99精品一区二区三区免费| 久久久久亚洲Aⅴ无码| 九九视品黄色| 欧美第五页| 性无码专区2020| 久久久久久久国产a∨| 东京太热久久久| 天堂网 主播 亚洲| 92性色国产午夜福利在线661| 26uuu欧美| 无码人妻丰满熟妇奶水区毛片| 欧美成人精品一区二区男人蜜臀| 中国国产精品一区视频| 丝袜美腿欧美| 青青草公开在线免费不卡视频| 一区二区三区免费视频入口| 东京热亚洲一区二区| 日韩97视频| 亚洲A曰本VA欧美VA视频| 在线看免费无码AV天堂的| 色诱avtt| 亚洲精品97| www超碰| 国产欧洲精品亚洲午夜拍精品| 国产精品操| 国产精品亚洲美女久久久久| 999 久久久| 亚洲伊人久久综合97| 婷婷五月天色| 5252色欧美在线男人的天堂| 日韩精品一区二区日韩| 91网18| 啪啪视频免费在线观看| 久草精品热视| 人人操,人人液| 熟妇熟女亚洲天堂网| 欧美精品系列| 涩五月婷婷| 老熟乱一区二区三区四区| 丰满人妻无码一区二区三区| 青青欧美| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 激情综合网激情综合| 五月天婷婷色| 亚洲丝袜诱惑| 蜜桃在线观看一区二区三区| 久久精品一区二区一8| 日韩精品区二区三区不卡| 欧美劲爆第一页| 亚洲丝袜色| 亚洲另类天堂| 色诱中文字幕| 国产一级高跟丝袜| 久久6热精品99视频| 国产成人一级av88| 97K超碰在线| 婷婷色色五月天| 春色综合网| 色狠狠综合| 91成人无码| 日韩美女久久一区二区三区| 日韩有码 一区二区三区| 欧美九九99久久精品| 国内毛片热久久思思热| 精品人妻一区二区乱码一区二区 | www.色吧5.com| 91在线美女| 高清有码一区二区| 久久99草| 六月色色| 午夜啪| 色娱乐色呦呦夜夜夜夜av| 国产精品视频麻豆入口| 免费在线视频97| 亚洲欧美中日韩| 日韩操逼HD| 激情婷婷丁香网| 精品超碰中文在线| 亚洲欧美日韩二区视频| 亚欧洲日韩国产精品| 婷婷国产精品九区| 亚洲AV秘 精品久久老牛影视| 人妻少妇无码| 久久久9品一区二区三区| 免费的很黄很污的全部视频| 中国熟妇| 亚洲美女黄色| 丁香五月天婷婷姐| 全球成人中文在线| 人人爱人人乐人人操| 久偷拍欧美日韩三区| 亚洲色诱惑| 性爱视频啪啪啪啪| 人人妻人人爱人人玩| 亚洲男人的天堂网| 久久欧美1卡2卡3| 国语对白在线播放视频| 亚川综合视频| 无码久久国产| 97操| 久久久久久久久久久久97 | 亚洲国产欧美一区二区潘金莲 | 激情综合色| 国产日韩区| 国产精品国产精品国产| 日本二区不卡| 亚洲999综合| 淫色网综合| 国产精品一区二区黄片| 国产h片在线观看视频| 免费视频一二三区| 色97干| 亚洲精品黑丝| 中出20p| 久久曰曰| 色老汉色| 国产久久一区二区三区野外在线| 亚洲 综合 欧美| 中文字幕狠狠玩| 国产一级137片内射麻豆| 日本阿v天堂在线观看| 日韩欧美久久婷婷网站| 久久精品噜噜噜成人看免欧美大片| 九九成人精品| 91丝袜美女| 久久九九99| 一区在线国产播放| 99ri在线视频| 日韩中文字幕二区| 久久久久久久人妻| 精品久久視頻在线| 人妻啊啊人妻啊啊| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 色综合一区二区三巨| 国产伦精品一区二区三区在线观| 亚洲AV无码国产成人| 国产精品蜜乳AV| 夜夜影视四色| 国产97色在线| 日本一区三级韩国| 亚洲国产一级中文综合久久天堂在线免费观看 | 探花熟女,姿勢到位,體驗感也到位| 一级片视频啪啪| 激情五月综合开心五月| 国产极品粉嫩馒头一线天av| 国产欧美日韩一区二区三区| 377p欧洲日本亚洲大胆| 中日韩欧美精品无码AⅤ一区二区| 青娱乐欧美激情一区二区 | 女上位精品在线| 热G综合热G中文| 天天综合网视频91| 精品一级毛片在线观看| 在线视频免费观看午夜| 亚洲码和欧洲精品激情系列| av麻豆啪啪| 狠操91,com| 欧美线天码中字| 操逼免费视频无码国产| 永久免费发布性爱网| 人人干人人操人人..com| 久久性爱网站| 最新AVzaixian| 久久AV无码1区2区3区| 91爱看| 俺也射| 久久免费9| 啪啪视频免费在线观看| 日韩欧美aⅴ综合网站发布| 澳门特级毛片免费观看| 蜜桃久久久久久| B049AV在线播放| 日韩无码人妻| 岛国成人av在线播放网址| 日本有码久久| 亚洲一区亚洲天堂| 九九九九九九视频免费| 国产三级中文有码在线视频| 嗯嗯啊中文字幕| 日日摸日日碰| 国产精品999aaa| 乱伦系列一区二区| 亚洲精品欧洲精品| 亚洲同性aV综合| 欧美日韩不卡a片| 男人兔费天堂| 天天综合~91| 国产综合在线视频网站| 色五月激情网| 91老妇女| 搡老人老9丨女老熟人| 天天日B狠狠操| 国产中文字幕在线| av在线观看不卡网站| 欧美综合自拍成人自拍第二十页| 日韩精品人妻中文字有码在线 | 人人弄人人摸| 99这里有精品视频| 狠狠爱夜夜干| 亚洲三区视频| 日本啊啊啊啊啊视频| 亚洲激情久久久伊人综合| 亚洲欧美日韩二区视频| 青青操在线亚洲视频观看欧美在线 | 久久午夜鲁丝片| 大香交伊人网| 91欧| 九九99精品| 91国精产品| 日韩亚洲精品一区二区| 天天干天天日天天射黄色片| 国产激情视频一区区三区| 久热伊人| 91精品人妻一品二品三品| 亚洲欧美日韩夜夜| 97超碰欧美手机在线| 五月婷网站| 中文字幕十五区| 免费观看成人www精品视频| 亚洲天天艹| 五十路熟女人妻一区二区在线观看 | 97色97好| 操操操五月天婷婷丁香影院| 久久综合中文国产| 国产精品4p在线观看| 乱理日韩中文| 看免费的黄片| 99re这里| 免费看A片毛毛片在线播| 中文字幕久久婷婷丁香五月天| 欧美色棕合| 九九九九久久久久| 国产精品乱人伊人网| 少妇久久久久久| 2025亚洲男人天堂| 老外又粗又长一晚做五次| 欧美人妻色| 亚洲精品国产专区在线观看| 最新9久久久9免费视频| 97啪啪| 97亚洲欧美| 偷拍网站久久男女男| 欧美性爱日韩高清| 东京热99999| 欧美精品999| 超碰97色| 是还免费视频1727我| 俺去俺来也在线www| 久久女人| 天操老女人| 影音先锋中文字幕日本好一区二区| 久久中文字幕人妻熟av女蜜柚| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 91搞逼视频| 日韩 女同 综合| 色婷五月天| 亚洲精品尤物yw在线影院| 台湾佬中文娱乐网久久久久久久久久com| 国产精品午夜高潮呻吟久久av| 日韩精品午夜操呦呦不卡影院| 800zy一区二区| 久草网站免费在线观看| 999999精品| 91AV天美在线视频| 久jiu久神马影院| 日韩Va亚洲va欧美Ⅴa久久| 91精品国| 色综合久久夜色精品国产天堂| 免费看日产一区二区三区| 亚洲AV成人精品网站在AV| 大香蕉色欲AV| 亚洲精品一二三四区| 人妻 丝袜美腿 中文字幕| 丝袜综合网| 亚洲十八禁止| 美女淫穴| 日韩人妻资源在线看| 91九色蝌蚪在线观看| 99热这里只有精品18| 91精品国产乱码| 久久久久无码| 91oumei| a级理论午夜日本| 无码操逼视频一下| 91人妻少妇| 精品超碰色| 亚洲天堂日本| 欧美中字二区| 夜夜嗨av午夜成人| av优播| 91人妻Pr| 一区二区三区精品视频| 思思热国产在线视频| 人妻少妇视频在线播放| 国产色呦呦| 午夜福利无毒不卡| 国产精品黑人一区二区三区| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 久久久久久久久久久久久久久久9 亚洲成人妻日韩在线 | 97青娱乐超碰久久| 欧美日韩黄色片一区二区三区四区人与兽做爱| 国产激情久久| 婷婷久久综合久| 一区二区三区激情在线观看| 欧美系列在线一区二区| 日韩一级特黄av毛片| 最新亚洲人成网站在线影院| 亚洲国产精品无码AV久久久| 尤物av网站免费在线播放| 欧美少妇色图| 大JI巴好深好爽又大又粗视频| 加勒比aⅴ| 97se亚洲综合自| 天天综合网~91| 91性网| 日韩一级二级三级在线不卡观看完整| 国产精品播放| 九九九精品成人免费视频小说| 天美传媒婬乱| 亚洲国产精品V?在线播放| 强奸乱伦AV一天堂网| 日韩操p| 成人性爱视频在线看| 日韩精品人妻一| 国产 三级自拍| 久热伊人| 欧洲中文字幕| 国产热av| 夜夜欢天天干| 一中国女人毛片水真多| 99国产在线 精品 视频| 女同性恋久久| 国产不卡片| 亚洲www91| 欧美后入式| 免费国产视频| 欧美91视频| 亚洲综合中文字幕有码| 欧洲天天在线| 亚洲有码第一页| 日韩综合第八区国产精品| 96久久久| 亚洲成人一区二区精品| 黑丝少妇在线观看| 亚洲揄拍网| av2014 日韩在线中文字幕| 中文字幕在线免费观看 | 日韩成人私密一级精品av| 伊人久久综合影院| 99综合免费视频| av午夜玫瑰| 超碰4A| 黄色香蕉视频网站一区| 国产成人bd在线观看| 欧洲无码一区二区| 欧美综合传媒| 综合伊人网12色| 无遮挡h肉动漫在线观看| 爱爱动态120秒| 亚洲人人夜夜澡人人爽| 中国一级αV| A 天堂在线观看视频| 欧美日日夜夜| 青草地一本线一区二区三区| 国产精品无码久久久久2025| 熟女丰满人妻一区| 蜜桃网熟妇| 中文字幕一区二区日韩网| 成人在线日韩| 熟女91网| 亚洲精品无码久久AV| 夜夜嗨一区二区| 欧美色图99| 久久久久亚洲av综合波多野制衣| 玖玖视频在线资源一区二区三区| 美女让帅哥通她小鸡鸡| 国产成人 综合亚洲 天堂| 天天综合色| 久久久96精品| 影音先锋视频在线| 亚洲在高跟鞋自慰久久在色线| 国产熟女无套内射| 激情综合五月| 97国产|免费| 福利色色| 土豪酒店各种姿势玩弄极品幼稚| www.av在线视频| 日本九九久久99播| 日韩国产中文字幕| 91久久久久| 精品一区二区人妖| 亚洲国产蜜臀系列在线观看| 青娱乐亚洲自拍| 欧美日韩婷婷中文| 可以免费看黄片的视频| av在线人气| 国产精品第一区第一页| 午夜福利久久久噜久噜久久综合| 久久久久久久97| 久久久999日本大片| 伊人骚琪琪亚洲天堂网站| 91色情黑丝搞鸡在线观看一区二区三区三州 | 91情色在线| 91五月天| 激情小说亚洲| 日本午夜福利视频| av一区二区三区四区| 熟女欧美日韩综合婷婷| 国产精品女生av| 狠狠躁天天躁日日躁| 成人性爱视频在线看| 九九九九一级| 国产精品老师| 啊啊啊好想要| 久久久久久久久九九久孕交| 无码高清国产AV| 午夜久久久| 熟女乱伦二区| 欧美欧美啪啪视频| 欧美色日本| 亚洲国产一区二区三区四区国产| 精品美女少妇一区二区| 久妇网| 国产一级高跟丝袜| 亚洲不卡一| 亚洲 图片 综合91| 丁香九月 婷婷| 国产精品久久久久久久久久二区三区| av资源在线播放天堂| 性猛交| 夜夜综合| 欧美日韩成人在线| 色综合V| 91激情国产| 2020视频1区2区3区| 国产一区自拍欧美日韩| 啊啊在线| 91天美传媒精品| 国产成人无码网站在线视频| 中文字幕欧美日韩三级| 激情五月天校园春色网| 色婷五月天| 东北丰满熟女国产一区| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 人人喜人人妻| 国产一级黄色片在线观看 | 欧美性爱一区| 婷婷爱五月| 久久黄色性爱视频| 91搡老女人老妇女老熟女歌词翻译| 欧美白嫩女HD| 嗯嗯嗯好爽| 人妻99p| 人人操人人摸人人看人人插| 嗯嗯啊啊啊好爽| 97频视在线| 少妇无码太爽| 天天日日夜夜| 亚洲强奸乱伦影视网| 欧美v亚洲v综合v国产v妖精| 大香蕉手机在线| 色综合99999| 久久久久久中文字幕中文字幕最新| 婷婷激情五月天小说网| 国产精品免费1区2区视频| 欧美姓爱综合网| 免费99精品国产自在在线| 欧美性,色九九| 日韩精品99999| 在线性黄高清免费视频| 无码人妻精品一区二区中文| 国产精品 视频| 97人人爱人人乐| 天天操熟妇| 青春草莓视频在线观看网址| 青青草在线视频播放器| 99后入| 欧美色图成人网一区二区 | 九九热九九| 国产精品另类| 国产2.3.4区| 九久久精品| 果冻传媒一区二区三区| 亚洲欧美日韩电影网站一区| 神马午夜久久久| 美女裸体麻豆天美蜜桃91| 免费的av网| 丁香五月天婷婷姐| 1024久久高清视频| http://qxhbdz.com| 玖玖视频在线资源一区二区三区| 丁香五月婷婷啪啪| 五月婷丁香| 丁香五月色| 开心五月婷婷| 亚洲另类综合欧美| 久久久999日本大片| 另类综合另类| 91新在线欧美| 91五月天| 无码九九| 亚洲色图A| 91综合色噜噜| 国产成年女人免费视频播放a| 欧美亚洲一级在线观看| 日韩欧美tv一区二区在线观看| 温婉少妇玩3p| 色色五月丁香| 成年女人一区| 日逼五月天| 91女优在线观看| 免费视频观看60秒| 久久超碰网| 黄片qw| 亚洲一区二区三区AV无码| 免费看久久久性性| 亚洲最大91网| 国产精品久久久久久久久久久久久久久久 | 久久精品国产亚洲AV高清演员表| 国产女人极品高潮毛片| 操逼操操操91| 青娱乐av在线| 啊啊啊啊啊啊啊啊啊在线观看| K8久久久久| 午夜国产成人精品视频| 99久久婷婷丁香| 91狠狠综合久久久久久| 国产久久日韩网站导航| 激情四射婷婷六月天| 中文乱码字幕观看| 一起草日韩| 五月婷婷六月激情| 黄网站黄视频网站进入口| 1204人成网站色www| 久久久96| 岛国在线一区二区三区| 91久热这里只有精品| 超碰97欧美日韩| …亚洲黄色厕厕女女在线播…| 精品人妻中文字幕4399| 91啪啪视频| 北京美女一区二区| 日逼97| 国产福利在线视频网站| 精品国产乱码久久久久久影片| 91爱看| 少妇综合| 中文字幕在线日亚洲9| 久久一区,青青青青草视频在线播放| 91熟女少妇| 操操操五月天婷婷丁香影院| 九九黄色网| 日韩精品国模| 成人26uuu| 一区二区 韩日AV| 色天使AV天堂| 欧美亚洲一级在线观看| 麻豆天美电影一区二区| 本道在线| 在线观看色视频| 中文字幕日韩精品一区二区三区| 少妇淫妇久久久久久久| 国产精品熟女丝袜一区二区| 成人热久久精品| 中文字幕一区二区视频在线观看| 91久久久久久久久18| 亚洲色图第四色| 亚洲?V无码专区在线电影| 天天爽夜夜操| 青青草在线视频播放器| 啪啪啪精品视频| 久久久不卡区一区二区三区久久久| 天天综合官网| 成人情色一区二区| 青青草原伊人网| 色青青久久影视| 啊啊啊啊啊好舒服视频| 在线a v| 99色日| 亚洲国产精品9999在线观看 | 色网在线视频观看免费| 啊啊啊啊啊啊啊好爽不要| 久久一区二区三区四区五区| 67194国产| 亚洲欧美91| 99无码精品| 91岛国动作片| 久久久无码精品人妻二区| 精品国产一区二区三区四区在线看| 在线人妻熟女一区二区三区四区五区| 日本不卡五区| 欧洲中文字幕| 日日操免费视频| 亚洲精品天天影视综合网| 亚洲97成人在线观看| 久久欧洲| 一区二区三区黄色片a| 久久精品夜色国产亚洲AV| 国产精品极品美女视频| 精品人妻一二三四区视频| 日韩人妻 中文字幕| 2020中文字幕在线| 99久久婷婷国产综合| 激情一区二区| 久久国色天香香蕉| 岛国激情视频在线观看| 日韩综合97P| 人妻精品视频一区二区| 久久三区四区| ss久久| 亚洲成人性| 久热这里| 超碰调教97| 免费少妇一区二区| 中文字幕无码不卡啪啪| 久操操| 婷婷av在线中文字幕| 国内97干免费看| 日本欧美国内在线| 国产日本一区二区三区蜜臀在线观看| 亚州色站 日韩电影| 久久九九视频九九视频| 中文字幕视频在线观看| 91久久午夜无码鲁丝片久久人妻| 日本Xx性爱| 先锋女优在线观看视频| 玖玖资源中文字幕制服丝袜| 九九综合久久| 天天草天天日| 啊啊啊啊好大好硬啊啊啊啊啊| 国产亚洲综合欧美一区| 白丝被操91| 天天综合欧美黑人| 欧美色图天堂网m| 亚洲成人久久美女| 欧美亚洲中文| 人妻少妇久久| 少妇一区二区三区在线观看| 日韩性爱再线视频| 超碰午夜| yazhououmeizongya| 东北女人被操| 亚洲激情网一二三四区| 91午夜无码| 在线中文字幕视频| 中字一区| 超碰 另类 欧美 | 嗯阿好爽好紧| 国产精品一区二区黄片| 免费黄色片。| 人爽不卡视频| 在线 欧美 亚洲| 男人的天堂色偷偷青青草视频婷婷网| 国产成人精品亚洲日本| 亚洲无线码欧洲精品区别| 久久97精品久久久久久久不卡| 亚洲天天影视色综合| 99自拍B亚洲 | 伊人国产视频| 亚洲综合春色| 五月丁香激情啪啪| yellow网站免费观看日韩高清无码| dy888午夜老子影视达达兔| 国产亚热在线久久| 亚洲欧美setu| 亚洲精品一二三四区| 丰满人妻一区二区三区| 欧美性爱视频免费一区一A| 久久性爱精品一区| 久久精品人妻一区| 欧美 亚洲 在线| 91综合天天看| 日本天堂在线播放| 欧美色图91p| 九九九久久久久| 97色爱| 中日无幕一二三四区| 又黄又爽在线观看视频| 婷婷激情四射| 99综合| 亚洲激情久久| 色婷婷丁香五月| 色情五月综合婷婷| 国产无套粉嫩白浆在| 日韩精品 视频一区二区| 久久综合亚洲色1080p| 日韩精品碰碰| 日韩Va亚洲va欧美Ⅴa久久| 亚洲欧洲综合成人av一区| 夜夜操美女| 国产av强奸美女| av在线免费一区二区| 日韩欧美成人性爱在线| 超碰97玖玖爱| 成人日韩中文字幕| 九九英色视频| 国产青青美女玩逼视频| 色老久久| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 日韩电影天堂视频一区二区| 婷婷丁香一区二区三区| 裸体1区| 黄色一区三区| 激情另类激情| 91精品国产一区三一| 蜜臀在线视频| 免费成人在线观看91| 在线无码网站| 热99这里只有精品| 99九九精品| 97人妻色| 久久久久9999妇女| 伦理日韩国产久久| 精品女同一区| 欧美亚洲情色| 国产日韩欧美中文在线播放| 中文字幕成人理论在线| 麻豆这里只有精品| 97WW精品| 嫩草影院永久在线制服丝袜| 日韩特一级久久| 久久久久久加勒比| 久草尤物| 国产剧情AV不卡在线观看| 中日高清无码操逼视频| 欧洲免费一区二| 亚州欧美总和| 干少妇视频| 天堂а√在线最新版在线 | 就去色综合| 98人妻精品一区二区色欲| 欧美日韩国产高清在线一二三区| 一级黄色影片| 日韩国产十八禁| 国内外激情在线| 少妇高潮流水av免费| 亚洲 欧美 手机在线观看| oumeisetu综合| 中文字幕精品专区搜索结果91| JuliaAnn丝袜熟女系列| 国产日韩在线播放av| 精品久久視頻在线| 中文字幕乱偷人妻久久艾草网| 好吊色综合| 久操视频资源站公开| 久久精品人体AV| 91精品少妇搡搡搡| 亚洲第一视频 欧美风情 日韩| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91久久免费视频互動交流| 国产精品熟女九色九色蜜臀| 欧美久热| 狠色婷婷久久一区二区三区_| 欧美日本不卡在线| 欧美日韩免费性爱| 91N欧美| 亚洲一区制服诱惑| 免费观看网黄| 五月天激情小说网| 中文字幕精品亚洲熟女| 国产高清视频无码在线| 色五月综合网| 操死我了啊啊啊| 欧美一区二区三区四区综合| 五月激情天| 麻豆a'v电影| 国产精品人妻熟女aⅴ| 亚洲天天艹| 啪啪啪男女亚洲中文字幕99| 性在久久久久久| 少妇与黑人高潮在线| 亚洲丝袜综合| 天天日少妇逼AV| 99精品综合久久久久五月天| 97人人操人人摸| 一区二区视频你懂的| 国产高清成人免费视频| 五月丁香六月激情综合| 素人伊尹大香蕉免费下载视频| 天天躁日日躁AAAAXXXX国产 | 午夜精品久久久| www99热| 麻豆熟妇乱妇熟色A片在线看| 91高清无码下载| www.男人天堂| 伦激情人妻另类人妻| 啊啊啊啊啊在线视频| 污色区网站| 成人AV素股で擦久久| 日本精品一区二区三区四区的功能| 午夜丁香婷婷| 精品999一区二区| 屌色在线97视频| 男女啊啊啊啊啊| 色五月婷婷麻豆在| 欧美超碰在线| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 中文字幕乱码在线| 9/A片 | 熟女精品一区二区三区| 无码粉嫩白虎一线天b区| a网站免费观看| 色妇综合网| 91超碰人人| 极品欧美一区二区三区| 四虎国产成人精品免费一女五男| 人妻啪| 国产精品国产| 麻豆国产免费影片| 成人性生活高清视频在线播放| 亚洲美乱| 夜夜操美女| 久久人妻少妇| 五月丁香成人网| 黑人综合网| 97国产天堂岛| 白嫩国模丰满一二三区| 黄页| 亚洲免费97免费| 在线观看黄色电话| 美女9118禁| 国产美女91视频| 女人双腿搬开让男人桶| 五月情色天| 屌妞视频久久久久久久久久久久| 美女午夜福利免费视频| 精品玖九九久| 综合干干干av久久久综合网| 国产久久av| 91九色丨风韵犹存| 伊人久久久日韩一区| 熟妇操花| av网站国产主播在线| 久久久男人的天堂| 成功精品影院| www.久久制服糖| 超碰欧美COM| 人妻精品一区二区全免费| 亚洲第一无码播放立川理惠| 啊啊啊免费视频| 欧美 亚洲 91| 91美女在线精品视频| 精品一啪| 一级做受视频免费是看美女| 少妇久久久久久| 青青草啪啪网| 99久久婷婷| 欧美日韩电影成人在线| 精品九区| 亚拍在线| 亚洲s在线观看| 激情五月天丁香社区| 成全动漫视频观看免费下载| 日韩欧美久久婷婷网站| 九九碰九九爱97超| 高清不卡 中文 人妻| 婷婷四五区| 一级久久久久久久久久久| 日韩在线观看三级电影| 免费男人的天堂| 啊啊啊啊啊好大好舒服想要| www.超碰| 激情接吻视频久久久久久| 亚洲AV麻豆Aⅴ无码电影一| 99操逼| 天天内射| 97超碰色屌| 国产在线76页| 午夜天堂啪啪| 国语国产操逼伊人AV网| 欧美在线永久天堂| 女生看匆91网站| AV男人天堂网| 97欧美色资源| 久久色一区二区| 九九RE视频在线精品| 久久夜黄色无码A级大片| 国产精品无码成人精品| 成人怡红院| 中文字幕人妻丝袜乱一区三区| 青青欧美| 色在线69堂| 国产日韩人人| 97色欧州| 精品十三区| 欧美亚洲影视| 丝袜制服字幕在线| 九九精品美女高溯喷水| 蜜臀少妇一区二区| 99久热| 五月天婷婷综合| 天天日天天爽| 狠狠穞A片一區二區三區| 久久激情视频| 激情综合网五月婷婷| 日本午夜福利影院| 久久99视频| 日韩中文欧美| 婷婷九月| 国内91熟女人妻丝袜天天精品视频在线 | 啊啊啊啊嗯嗯在线久久久| 国产精品一区二区麻豆| 久射吧| AV中文字幕三四五| 久久久日本电影| 青草综合| 51久久夜色精品国产麻豆| 啪啪视频亚洲第一| 丝袜美腿制服人妻二区中文字幕|