日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

企业级自动化运维工具应用实战-ansible

發(fā)布時(shí)間:2024/9/19 综合教程 60 生活家
生活随笔 收集整理的這篇文章主要介紹了 企业级自动化运维工具应用实战-ansible 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

公司計(jì)劃在年底做一次大型市場(chǎng)促銷活動(dòng),全面沖刺下交易額,為明年的上市做準(zhǔn)備。公司要求各業(yè)務(wù)組對(duì)年底大促做準(zhǔn)備,運(yùn)維部要求所有業(yè)務(wù)容量進(jìn)行三倍的擴(kuò)容,并搭建出多套環(huán)境可以共開發(fā)和測(cè)試人員做測(cè)試,運(yùn)維老大為了在年底有所表現(xiàn),要求運(yùn)維部門同學(xué)盡快實(shí)現(xiàn),當(dāng)你接到這個(gè)任務(wù)時(shí),有沒有更快的解決方式?

技術(shù)說明

隨著信息時(shí)代的持續(xù)發(fā)展,IT運(yùn)維已經(jīng)成為IT服務(wù)內(nèi)涵中重要的組成部分。面對(duì)越來越復(fù)雜的業(yè)務(wù),面對(duì)越來越多樣化的用戶需求,不斷擴(kuò)展的IT應(yīng)用需要越來越合理的模式來保障IT服務(wù)能靈活便捷、安全穩(wěn)定地持續(xù)保障,這種模式中的保障因素就是IT運(yùn)維(其他因素是更加優(yōu)越的IT架構(gòu)等)。從初期的幾臺(tái)服務(wù)器發(fā)展到龐大的數(shù)據(jù)中心,單靠人工已經(jīng)無法滿足在技術(shù)、業(yè)務(wù)、管理等方面的要求,那么標(biāo)準(zhǔn)化、自動(dòng)化、架構(gòu)優(yōu)化、過程優(yōu)化等降低IT服務(wù)成本的因素越來越被人們所重視。其中,自動(dòng)化最開始作為代替人工操作為出發(fā)點(diǎn)的訴求被廣泛研究和應(yīng)用。IT運(yùn)維從誕生發(fā)展至今,自動(dòng)化作為其重要屬性之一已經(jīng)不僅僅只是代替人工操作,更重要的是深層探知和全局分析,關(guān)注的是在當(dāng)前條件下如何實(shí)現(xiàn)性能與服務(wù)最優(yōu)化,同時(shí)保障投資收益最大化。自動(dòng)化對(duì)IT運(yùn)維的影響,已經(jīng)不僅僅是人與設(shè)備之間的關(guān)系,已經(jīng)發(fā)展到了面向客戶服務(wù)驅(qū)動(dòng)IT運(yùn)維決策的層面,IT運(yùn)維團(tuán)隊(duì)的構(gòu)成,也從各級(jí)技術(shù)人員占大多數(shù)發(fā)展到業(yè)務(wù)人員甚至用戶占大多數(shù)的局面。

因此,IT運(yùn)維自動(dòng)化是一組將靜態(tài)的設(shè)備結(jié)構(gòu)轉(zhuǎn)化為根據(jù)IT服務(wù)需求動(dòng)態(tài)彈性響應(yīng)的策略,目的就是實(shí)現(xiàn)IT運(yùn)維的質(zhì)量,降低成本??梢哉f自動(dòng)化運(yùn)維一定是IT運(yùn)維高層面的重要屬性之一。

項(xiàng)目上線過程

場(chǎng)景說明

目前多數(shù)公司遇到的運(yùn)維問題現(xiàn)狀:

1、硬件選型多樣化

2、系統(tǒng)多版本并存

3、目錄結(jié)構(gòu)混亂

4、運(yùn)維人員水平參差不齊

5、歷史遺留問題多

6、同一軟件出現(xiàn)多個(gè)版本

7、無法批量化操作

8、工作效率低,故障率高

9、項(xiàng)目上線操作繁瑣

理想狀態(tài)下的運(yùn)維部門:

1、只有少數(shù)類型的硬件,便于管理

2、系統(tǒng)版本統(tǒng)一

3、目錄結(jié)構(gòu)規(guī)范

4、運(yùn)維工程師水平層次高

5、無歷史包袱

6、同一軟件只有單一版本

7、同一類操作可自動(dòng)化批量執(zhí)行

8、工作效率高,無大量重復(fù)機(jī)械化操作

9、開發(fā)自己上線,運(yùn)維比較輕松

日常運(yùn)維工作中的重要事件:

1、添加監(jiān)控,收集系統(tǒng)指標(biāo)

2、對(duì)日志進(jìn)行歸檔以及管理

3、數(shù)據(jù)備份于恢復(fù)

4、對(duì)計(jì)劃任務(wù)進(jìn)行管理

5、對(duì)軟件包進(jìn)行部署和管理

6、對(duì)腳本進(jìn)行批量執(zhí)行

7、對(duì)文件進(jìn)行批量復(fù)制和移動(dòng)

8、設(shè)置文件或者目錄對(duì)應(yīng)的權(quán)限

9、關(guān)閉和啟動(dòng)服務(wù)

10、對(duì)代碼程序進(jìn)行上下線

技術(shù)說明

所謂的運(yùn)維自動(dòng)化實(shí)際上就是某些運(yùn)維過程的自動(dòng)化,比如初始化自動(dòng)化、測(cè)試/部署自動(dòng)化,加監(jiān)控自動(dòng)化,簡(jiǎn)單報(bào)警處理自動(dòng)化,業(yè)務(wù)降級(jí)/恢復(fù)自動(dòng)化....集腋成裘,慢慢的讓系統(tǒng)可以承擔(dān)更多的重復(fù)勞動(dòng),減少人力投入和學(xué)習(xí)成本。

自動(dòng)化運(yùn)維常用工具

工具

用途

安裝系統(tǒng)

pxe/cobber

安裝系統(tǒng)

虛擬化系統(tǒng)

kvm/xen/vmware

虛擬機(jī)

應(yīng)用部署

puppet/ansible/saltstack

中大型規(guī)模

命令執(zhí)行

ansible/fabric/func

中小型規(guī)模

ansible聚集以上部署和命令執(zhí)行于一身,能夠完整輕易的實(shí)現(xiàn)應(yīng)用部署和批量命令功能,適用于主機(jī)數(shù)量中型規(guī)模,再大的用puppet。

作為運(yùn)維工程師,對(duì)于命令執(zhí)行的工具要掌握ansible,fabric,func或者shell其中的一種

ansible是什么

ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具,基于Python開發(fā),集合了眾多運(yùn)維工具(puppet、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。

ansible是基于 paramiko 開發(fā)的,并且基于模塊化工作,本身沒有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只是提供一種框架。ansible不需要在遠(yuǎn)程主機(jī)上安裝client/agents,因?yàn)樗鼈兪?strong>基于ssh來和遠(yuǎn)程主機(jī)通訊的。ansible目前已經(jīng)已經(jīng)被紅帽官方收購(gòu),是自動(dòng)化運(yùn)維工具中大家認(rèn)可度最高的,并且上手容易,學(xué)習(xí)簡(jiǎn)單。是每位運(yùn)維工程師必須掌握的技能之一。

ansible特點(diǎn)

1、部署簡(jiǎn)單,只需在主控端部署Ansible環(huán)境,被控端無需做任何操作;

2、默認(rèn)使用SSH協(xié)議對(duì)設(shè)備進(jìn)行管理;

3、有大量常規(guī)運(yùn)維操作模塊,可實(shí)現(xiàn)日常絕大部分操作。

4、配置簡(jiǎn)單、功能強(qiáng)大、擴(kuò)展性強(qiáng);

5、支持API及自定義模塊,可通過Python輕松擴(kuò)展;

6、通過Playbooks來定制強(qiáng)大的配置、狀態(tài)管理;

7、輕量級(jí),無需在客戶端安裝agent,更新時(shí),只需在操作機(jī)上進(jìn)行一次更新即可;

8、提供一個(gè)功能強(qiáng)大、操作性強(qiáng)的Web管理界面和REST API接口——AWX平臺(tái)。

ansible架構(gòu)圖

Ansible:Ansible核心程序。

HostInventory:記錄由Ansible管理的主機(jī)信息,包括端口、密碼、ip等。

Playbooks:"劇本"YAML格式文件,多個(gè)任務(wù)定義在一個(gè)文件中,定義主機(jī)需要調(diào)用哪些模塊來完成的功能。

CoreModules:核心模塊,主要操作是通過調(diào)用核心模塊來完成管理任務(wù)。

CustomModules:自定義模塊,完成核心模塊無法完成的功能,支持多種語(yǔ)言。

ConnectionPlugins:連接插件,Ansible和Host通信使用

ansible任務(wù)執(zhí)行

ansible任務(wù)執(zhí)行模式

Ansible系統(tǒng)由控制主機(jī)對(duì)被管節(jié)點(diǎn)的操作方式可分為兩類,即adhoc和playbook:

ad-hoc模式使用單個(gè)模塊,支持批量執(zhí)行單條命令。 ad-hoc 命令是一種可以快速輸入的命令,而且不需要保存起來的命令。就相當(dāng)于bash中的一句話shell。

playbook模式是Ansible主要管理方式,也是Ansible功能強(qiáng)大的關(guān)鍵所在。playbook通過多個(gè)task集合完成一類功能,如Web服務(wù)的安裝部署、數(shù)據(jù)庫(kù)服務(wù)器的批量備份等。可以簡(jiǎn)單地把playbook理解為通過組合多條ad-hoc操作作的配置文件。

ansible執(zhí)行流程

簡(jiǎn)單理解就是Ansible在運(yùn)行時(shí),首先讀取ansible.cfg中的配置,根據(jù)規(guī)則獲取Inventory中的管理主機(jī)列表,并行的在這些主機(jī)中執(zhí)行配置的任務(wù),最后等待執(zhí)行返回的結(jié)果。

Ansible命令執(zhí)行過程

1、加載自己的配置文件 默認(rèn)/etc/ansible/ansible.cfg

2、查找對(duì)應(yīng)的主機(jī)配置文件,找到要執(zhí)行的主機(jī)或者組

3、加載自己對(duì)應(yīng)的模塊文件,如command

4、通過ansible將模塊或命令生成對(duì)應(yīng)的臨時(shí)py文件,并將該文件傳輸至遠(yuǎn)程服務(wù)器的

5、對(duì)應(yīng)執(zhí)行用戶的家目錄的.ansible/tmp/XXX/XXX.PY文件

6、給文件+x執(zhí)行

7、執(zhí)行并返回結(jié)果

8、刪除臨時(shí)py文件,sleep 0退出

ansible安裝方式

ansible安裝常用兩種方式,yum安裝和pip程序安裝

1使用yum安裝

yum install epel-release -y

yum install ansible –y

2 使用pip(python的包管理模塊)安裝

pip install ansible

如果沒pip,需先安裝pip.yum可直接安裝:

yum install python-pip

pip install ansible

ansible程序結(jié)構(gòu)

安裝目錄

配置文件目錄:/etc/ansible/

執(zhí)行文件目錄:/usr/bin/

Lib庫(kù)依賴目錄:/usr/lib/pythonX.X/site-packages/ansible/

Help文檔目錄:/usr/share/doc/ansible-X.X.X/

Man文檔目錄:/usr/share/man/man1/

ansible配置文件的查找順序

(1).檢查環(huán)境變量ANSIBLE_CONFIG指向的路徑文件(export ANSIBLE_CONFIG=/etc/ansible.cfg)

(2).~/.ansible.cfg,檢查當(dāng)前目錄下的ansible.cfg配置文件

(3)./etc/ansible.cfg 檢查etc目錄的配置文件

Ansible配置文件

vim /etc/ansible/ansible.cfg

設(shè)置ansible.cfg配置參數(shù),ansible有許多參數(shù),下面列出常用的參數(shù):

inventory: #這個(gè)參數(shù)表示資源清單inventory文件的位置,資源清單就是一些Ansible需要連接管理的主 機(jī)列表。這個(gè)參數(shù)的配置實(shí)例如下:

inventory = /etc/ansible/hosts

library:Ansible的操作動(dòng)作,無論是本地或遠(yuǎn)程,都使用一小段代碼來執(zhí)行,這小段代碼稱為模塊,這個(gè)library參數(shù)就是指向存放Ansible模塊的目錄。配置實(shí)例如下:

library = /usr/share/ansible

Ansible支持多個(gè)目錄方式,只要用冒號(hào)(:)隔開就可以,同時(shí)也會(huì)檢查當(dāng)前執(zhí)行playbook位置下的./library目錄。

forks: 設(shè)置默認(rèn)情況下Ansible最多能有多少個(gè)進(jìn)程同時(shí)工作, 從Ansible 1.3開始,fork數(shù)量默認(rèn)自動(dòng)設(shè)置為主機(jī)數(shù)量或者潛在的主機(jī)數(shù)量,默認(rèn)設(shè)置最多5個(gè)進(jìn)程并行處理。具體需要設(shè)置多少個(gè),可以根據(jù)控制主機(jī)的性能和被管節(jié)點(diǎn)的數(shù)量來確定,可能是 50或100。默認(rèn)值5是非常保守的值,配置實(shí)例如下:

forks = 5

sudo_user:

這是設(shè)置默認(rèn)執(zhí)行命令的用戶,也可以在playbook中重新設(shè)置這個(gè)參數(shù)。配置實(shí)例如下:

sudo_user = root

remote_port:

這是指定連接被管節(jié)點(diǎn)的管理端口,默認(rèn)是22。除非設(shè)置了特殊的SSH端口,不然這個(gè)參數(shù)一般是不需要修改的(如果需要修改,則還需修改ssh的配置文件,更改端口)。

配置實(shí)例如下:

remote_port = 22

host_key_checking:

這是設(shè)置是否檢查SSH主機(jī)的密鑰??梢栽O(shè)置為True或False,關(guān)閉后第一次連接沒有提示(就是第一次連接不在提示yes或者no)

配置實(shí)例:

host_key_checking = False

timeout:

這是設(shè)置SSH連接的超時(shí)間隔,單位是秒。配置實(shí)例如下:

timeout = 60

log_path:Ansible系統(tǒng)默認(rèn)是不記錄日志的,如果想把Ansible系統(tǒng)的輸出記錄到日志文件中,需要置log_path

來指定一個(gè)存儲(chǔ)Ansible日志的文件。配置實(shí)例如下:

log_path = /var/log/ansible.log

另外需要注意,執(zhí)行Ansible的用戶需要有寫入日志的權(quán)限,模塊將會(huì)調(diào)用被管節(jié)點(diǎn)的syslog來記錄

Ansible主機(jī)清單

編輯/etc/ansible/hosts:

#vim /etc/ansible/hosts定義方式:

1、直接指明主機(jī)地址或主機(jī)名:

## green.example.com#

# blue.example.com#

# 192.168.100.1

# 192.168.100.10

2、定義一個(gè)主機(jī)組[組名]把地址或主機(jī)名加進(jìn)去

[mysql_test]

192.168.253.159

192.168.253.160

192.168.253.153

#組成員可以使用通配符來匹配,如下 192.168.2.[1:6] #表示匹配從192.168.2.1——192.168.2.6的主機(jī)

Ansible常用命令

Ansible命令集

/usr/bin/ansible # Ansibe AD-Hoc 臨時(shí)命令執(zhí)行工具,常用于臨時(shí)命令的執(zhí)行

/usr/bin/ansible-doc # Ansible 模塊功能查看工具

/usr/bin/ansible-galaxy # 下載/上傳優(yōu)秀代碼或Roles模塊 的官網(wǎng)平臺(tái),基于網(wǎng)絡(luò)的

/usr/bin/ansible-playbook # Ansible 定制自動(dòng)化的任務(wù)集編排工具

/usr/bin/ansible-pull # Ansible遠(yuǎn)程執(zhí)行命令的工具,拉取配置而非推送配置(使用較少,海量機(jī)器時(shí)使用,對(duì)運(yùn)維的架構(gòu)能力要求較高)

/usr/bin/ansible-vault # Ansible 文件加密工具

/usr/bin/ansible-console # Ansible基于Linux Consoble界面可與用戶交互的命令執(zhí)行工具

Ansible-doc命令

查看 ansible-doc 的使用說明:

一般用法:

ansible-doc -l 獲取模塊信息

ansible-doc -s MOD_NAME 獲取指定模塊的使用幫助

ansible-doc 選項(xiàng):

-h --help 顯示命令參數(shù)API文檔

-l --list 列出可用的模塊

-M MODULE_PATH, --module-path=MODULE_PATH 指定模塊的路徑

-s, --snippet 顯示playbook制定模塊的用法

--version 顯示ansible-doc的版本號(hào)查看模塊列表

Ansible命令詳解

命令格式:

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

host-pattern 主機(jī)組

-f forks 并發(fā)連接數(shù)

-m module_name 指定模塊 執(zhí)行模塊的名字,默認(rèn)使用 command 模塊,所以如果是只執(zhí)行單一命令可以不用 -m參數(shù)module name to execute (default=command)

-a args 指定模塊參數(shù)

-k, --ask-pass登錄密碼,提示輸入SSH密碼而不是假設(shè)基于密鑰的驗(yàn)證

--ask-su-pass su切換密碼

-K, --ask-sudo-pass ask for sudo password 提示密碼使用sudo,sudo表示提權(quán)操作

--ask-vault-pass ask for vault password

-B SECONDS, --background=SECONDS 后臺(tái)運(yùn)行超時(shí)時(shí)間

-C, --check don't make any changes; instead, try to predict some of the changes that may occur

只是測(cè)試一下會(huì)改變什么內(nèi)容,不會(huì)真正去執(zhí)行;相反,試圖預(yù)測(cè)一些可能發(fā)生的變化

-c CONNECTION, --connection=CONNECTION 連接類型使用。

-i INVENTORY, --inventory-file=INVENTORY 指定庫(kù)存主機(jī)文件的路徑,默認(rèn)為/etc/ansible/hosts

-M MODULE_PATH, --module-path=MODULE_PATH 要執(zhí)行的模塊的路徑,默認(rèn)為/usr/share/ansible/

specify path(s) to module library (default=/usr/share/ansible/)

-o, --one-line condense output 壓縮輸出,摘要輸出.嘗試一切都在一行上輸出。

-P POLL_INTERVAL, --poll=POLL_INTERVAL 調(diào)查背景工作每隔數(shù)秒。需要- b

set the poll interval if using -B (default=15)

-S, --su run operations with su 用 su 命令

-R SU_USER, --su-user=SU_USER 指定SU的用戶,默認(rèn)是root用戶

run operations with su as this user (default=root)

-s, --sudo run operations with sudo (nopasswd)(使用sudo需要配置sudo的配置文件)

-U SUDO_USER, --sudo-user=SUDO_USER sudo到哪個(gè)用戶,默認(rèn)為 root

desired sudo user (default=root)

-T TIMEOUT, --timeout=TIMEOUT 指定SSH默認(rèn)超時(shí)時(shí)間, 默認(rèn)是10S

-t TREE, --tree=TREE log output to this directory 將日志內(nèi)容保存在該輸出目錄,結(jié)果保存在一個(gè)文件中在每臺(tái)主機(jī)上。

-u REMOTE_USER, --user=REMOTE_USER 遠(yuǎn)程用戶, 默認(rèn)是root用戶 connect as this user (default=root)

--vault-password-file=VAULT_PASSWORD_FILE vault password file

-v, --verbose verbose mode (-vvv for more, -vvvv to enable 詳細(xì)信息

--version show program's version number and exit 輸出ansible的版本

ansible all --lists-hosts 列出所有主機(jī)組里面主機(jī)

ansible web --lists-hosts 列出指定主機(jī)組里面的主機(jī)

Ansible配置公私鑰

配置ansible使用公鑰驗(yàn)證

雖然ansible支持其他主機(jī)認(rèn)證方式,但是我們最常用的的還是基于秘鑰的認(rèn)證

1、首先生成秘鑰

ssh-keygen -t rsa -P ''

2、然后向主機(jī)分發(fā)秘鑰:

ssh-copy-id root@ #@后面跟主機(jī)名或者IP地址

例如:ssh-copy-id root@192.168.10.190

3.然后測(cè)試,使用ssh連接,不用密碼就可登陸

4、如果出現(xiàn)以下情況:

# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.6.72

-bash: ssh-copy-id: command not found請(qǐng)嘗試:

yum -y install openssh-clientsansible

Ansible常用模塊

我在/etc/ansible/hosts中配置了主機(jī)組,如圖:

1、主機(jī)連通性測(cè)試:

#ansible all -m ping執(zhí)行效果如下:

也可以ansible web -m ping

2、command:在遠(yuǎn)程主機(jī)執(zhí)行命令;不支持|管道命令

ansible all|web -m command -a 'ifconfig'

命令模塊接受命令名稱,后面是空格分隔的列表參數(shù)。給定的命令將在所有選定的節(jié)點(diǎn)上執(zhí)行。它不會(huì)通過shell進(jìn)行處理,比如$HOME和操作如"小于"<",">", "|", ";","&"' 工作(需要使用(shell)模塊實(shí)現(xiàn)這些功能)。

action: command

chdir # 在執(zhí)行命令之前,先切換到該目錄

ansible web -a "chdir=/app ls"

creates # 一個(gè)文件名,當(dāng)這個(gè)文件存在,則該命令不執(zhí)行,可以用來做判斷

ansible web -a "creates=/app/111 chdir=/app ls" 因?yàn)?92.168.10.187主機(jī)上存在/app/111所以跳過,不列出

executable # 切換shell來執(zhí)行命令,需要使用命令的絕對(duì)路徑

free_form # 要執(zhí)行的Linux指令,一般使用Ansible的-a參數(shù)代替。

removes # 一個(gè)文件名,這個(gè)文件不存在,則該命令不執(zhí)行,與creates相反的判斷

因?yàn)?92.168.10.190主機(jī)上沒有/app/111,所以跳過,不列出

3、shell模塊在遠(yuǎn)程主機(jī)上調(diào)用shell解釋器運(yùn)行命令,支持shell的各種功能,例如管道等

例如:ansible web -m shell -a 'cat /etc/passwd|grep root'

4、copy:復(fù)制文件到遠(yuǎn)程主機(jī),可以改權(quán)限等用法:

(1) 復(fù)制文件

-a "src= dest= "

例如:ansible web -m copy -a "src=/app/111 dest=/app/test.sh"

然后在主機(jī)組中看看拷貝的文件

主機(jī)192.168.10.187

主機(jī)192.168.10.190

(2) 給定內(nèi)容生成文件

-a "content= dest= "

例如:ansible web -m copy -a "content='hello word' dest=/app/test.ansible mode=666"源是給定的內(nèi)容hello word,目標(biāo)是/app/test.ansible,拷貝過去的文件權(quán)限為666

然后在主機(jī)組中看看拷貝的文件

另一個(gè)也是如此

相關(guān)選項(xiàng)如下:

backup:在覆蓋之前,將源文件備份,備份文件包含時(shí)間信息。有兩個(gè)選項(xiàng):yes|no backup=yes備份

content:用于替代"src",可以直接設(shè)定指定文件的值

dest:必選項(xiàng)。要將源文件復(fù)制到的遠(yuǎn)程主機(jī)的絕對(duì)路徑,如果源文件是一個(gè)目錄,那么該路徑也必須是個(gè)目錄

directory_mode:遞歸設(shè)定目錄的權(quán)限,默認(rèn)為系統(tǒng)默認(rèn)權(quán)限

force:如果目標(biāo)主機(jī)包含該文件,但內(nèi)容不同,如果設(shè)置為yes,則強(qiáng)制覆蓋,如果為no,則只有當(dāng)目標(biāo)主機(jī)的目標(biāo)位置不存在該文件時(shí),才復(fù)制。默認(rèn)為yes

others:所有的file模塊里的選項(xiàng)都可以在這里使用

src:被復(fù)制到遠(yuǎn)程主機(jī)的本地文件,可以是絕對(duì)路徑,也可以是相對(duì)路徑。如果路徑是一個(gè)目錄,它將遞歸復(fù)制。在這種情況下,如果路徑使用"/"來結(jié)尾,則只復(fù)制目錄里的內(nèi)容,如果沒有使用"/"來結(jié)尾,則包含目錄在內(nèi)的整個(gè)內(nèi)容全部復(fù)制,類似于rsync。

5、file 設(shè)置文件屬性:

創(chuàng)建目錄:-a "path= state=directory"

創(chuàng)建鏈接文件:-a "path= src= state=link"

刪除文件:-a "path= state=absent"

其他選項(xiàng):

force:需要在兩種情況下強(qiáng)制創(chuàng)建軟鏈接,一種是源文件不存在,但之后會(huì)建立的情況下;另一種是目標(biāo)軟鏈接已存在,需要先取消之前的軟鏈,然后創(chuàng)建新的軟鏈,有兩個(gè)選項(xiàng):yes|no

group:定義文件/目錄的屬組 mode:定義文件/目錄的權(quán)限

owner:定義文件/目錄的屬主 path:必選項(xiàng),定義文件/目錄的路徑

recurse:遞歸設(shè)置文件的屬性,只對(duì)目錄有效 src:被鏈接的源文件路徑,只應(yīng)用于state=link的情況

dest:被鏈接到的路徑,只應(yīng)用于state=link的情況

state:

directory:如果目錄不存在,就創(chuàng)建目錄

file:即使文件不存在,也不會(huì)被創(chuàng)建

link:創(chuàng)建軟鏈接

hard:創(chuàng)建硬鏈接

touch:如果文件不存在,則會(huì)創(chuàng)建一個(gè)新的文件,如果文件或目錄已存在,則更新其最后修改時(shí)間

absent:刪除目錄、文件或者取消鏈接文件

例如:

ansible web -m file -a "path=/data/webapps state=directory" 創(chuàng)建目錄

ansible web -m file -a "path=/data/webapps/111 state=touch"創(chuàng)建文件

ansible web -m file -a "path=/data/webapps/111.link src=/data/webapps/111 state=link" 創(chuàng)建軟鏈接

或者ansible web -m file -a "dest=/data/webapps/111.link src=/data/webapps/111 state=link"

ansible web -m file -a "path=/data/webapps state=absent"刪除目錄

6、fetch從遠(yuǎn)程某主機(jī)獲取文件到本地:

dest:用來存放文件的目錄,例如存放目錄為backup,源文件名稱為/etc/profile在主機(jī)pythonserver中,那么保存為/backup/pythonserver/etc/profile

Src:在遠(yuǎn)程拉取的文件,并且必須是一個(gè)file,不能是目錄

例如:ansible web -m fetch -a "src=/app/111 dest=/root/test"

然后在本機(jī)查看從遠(yuǎn)程主機(jī)獲取的文件

已經(jīng)用遠(yuǎn)程主機(jī)IP給你建好了目錄結(jié)構(gòu),讓你知道是從哪臺(tái)主機(jī)拷過來的文件,非常貼心

7、cron 管理cron計(jì)劃任務(wù):

-a "": 設(shè)置管理節(jié)點(diǎn)生成定時(shí)任務(wù)

action: cron backup= # 如果設(shè)置,創(chuàng)建一個(gè)crontab備份 【yes|no】

cron_file= #如果指定, 使用這個(gè)文件cron.d,而不是單個(gè)用戶

crontab

day= #日應(yīng)該運(yùn)行的工作( 1-31, *, */2, )

hour= # 小時(shí) ( 0-23, *, */2, )

minute= #分鐘( 0-59, *, */2, )

month= # 月( 1-12, *, /2, )

weekday # 周 ( 0-6 for Sunday-Saturday,, )

job= #指明運(yùn)行的命令是什么

name= #定時(shí)任務(wù)描述

reboot # 任務(wù)在重啟時(shí)運(yùn)行,不建議使用,建議使用special_time

special_time #特殊的時(shí)間范圍,參數(shù):reboot(重啟時(shí)),annually(每年),monthly(每月),weekly

(每周),daily(每天),hourly(每小時(shí))

state #指定狀態(tài),present表示添加定時(shí)任務(wù),也是默認(rèn)設(shè)置,absent表示刪除定時(shí)任務(wù)

user # 以哪個(gè)用戶的身份執(zhí)行

例如:ansible web -m cron -a "name='ntp update every 5' minute=*/5 job='/sbin/ntpdate 172.17.0.1 &> /dev/null'"

然后再去查看一下,計(jì)劃任務(wù)已經(jīng)添加進(jìn)去了

再添加計(jì)劃任務(wù),但是name注釋不能和之前設(shè)置的name注釋一樣,否則將會(huì)覆蓋之前的計(jì)劃任務(wù)

刪除已經(jīng)設(shè)置的計(jì)劃任務(wù),指定狀態(tài)state=absent

ansible web -m cron -a "name='ntp update every 5' minute=*/5 job='/sbin/ntpdate 172.17.0.1 &> /dev/null' state=absent"

也可以用special_time來設(shè)置計(jì)劃任務(wù),例如:

ansible web -m cron -a "name='ntp update every 5' special_time=hourly job='/sbin/ntpdate 172.17.0.1 &> /dev/null'"

8、yum安裝軟件

conf_file #設(shè)定遠(yuǎn)程yum安裝時(shí)所依賴的配置文件。如配置文件沒有在默認(rèn)的位置。

disable_gpg_check #是否禁止GPG checking,只用于`present' or `latest'。

disablerepo #臨時(shí)禁止使用yum庫(kù)。 只用于安裝或更新時(shí)。

enablerepo #臨時(shí)使用的yum庫(kù)。只用于安裝或更新時(shí)。

name=#所安裝的包的名稱

state= #present安裝, latest安裝最新的, absent 卸載軟件。

update_cache#強(qiáng)制更新yum的緩存。

例如:ansible web -m yum -a "name=vsftpd state=present disable_gpg_check=yes" 安裝包

ansible web -m yum -a "name=vsftpd state=absent"卸載包

安裝yum倉(cāng)庫(kù)里面沒有的包

1.將一個(gè)rpm包從本機(jī)拷貝到遠(yuǎn)程主機(jī)的家目錄中

ansible web -m copy -a "src=/root/mha4mysql-node-0.56-0.el6.noarch.rpm dest=/root"

2.安裝包,需要指定路徑

ansible web -m yum -a "name=/root/mha4mysql-node-0.56-0.el6.noarch.rpm state=present disable_gpg_check=yes"

3,卸載包,此時(shí)就不需要指定路徑了,而且名字也改變了

ansible web -m yum -a "name=mha4mysql-node state=absent"

9、service: 服務(wù)程序管理

arguments #命令行提供額外的參數(shù)

enabled #設(shè)置開機(jī)啟動(dòng)。

name=#服務(wù)名稱

runlevel #開機(jī)啟動(dòng)的級(jí)別,一般不用指定。

sleep #在重啟服務(wù)的過程中,是否等待。如在服務(wù)關(guān)閉以后等待2秒再啟動(dòng)。

state#started啟動(dòng)服務(wù), stopped停止服務(wù), restarted重啟服務(wù), reloaded重載配置啟動(dòng)nginx服務(wù)并設(shè)置范圍自啟動(dòng):

例如:nginx服務(wù)

1.先安裝個(gè)nginx

ansible web -m yum -a "name=nginx state=present disable_gpg_check=yes"

2.開啟nginx服務(wù),并設(shè)置為開機(jī)自啟

ansible web -m service -a "name=nginx state=started enabled=yes"

3.關(guān)閉nginx服務(wù)

ansible web -m service -a "name=nginx state=stopped"

10、user模塊管理

用戶模塊,管理用戶帳號(hào)action: user

comment # 用戶的描述信息

createhome # 是否創(chuàng)建家目錄

force # 在使用state=absent是, 行為與userdel –force一致.

group # 指定基本組

groups # 指定附加組,如果指定為(groups=)表示刪除所有組

home # 指定用戶家目錄

move_home # 如果設(shè)置為home=時(shí), 試圖將用戶主目錄移動(dòng)到指定的目錄

name # 指定用戶名

non_unique # 該選項(xiàng)允許改變非唯一的用戶ID值(可以多個(gè) 用戶共用一個(gè)ID)

password # 指定用戶密碼

remove # 在使用state=absent時(shí), 行為是與userdel –remove一致

shell # 指定默認(rèn)shell(例如:不讓用戶登錄的shell是/sbin/nologin)

state # 設(shè)置帳號(hào)狀態(tài),不指定為創(chuàng)建,指定值為absent表示刪除

system # 當(dāng)創(chuàng)建一個(gè)用戶,設(shè)置這個(gè)用戶是系統(tǒng)用戶。這個(gè)設(shè)置不能更改現(xiàn)有用戶(centos6是0-500是系統(tǒng)用戶,centos7 0-1000是系統(tǒng)用戶)

uid # 指定用戶的uid

update_password # 更新用戶密碼

例如:創(chuàng)建一個(gè)用戶ansible web -m user -a "name=magedu01 password=magedu uid=10001 shell=/bin/sh" (注意:這里指定的密碼在/etc/shadow里面是明文的,所以密碼還需要通過openssl去加密一下)

查看一下,創(chuàng)建成功

刪除用戶ansible web -m user -a "name=magedu01 state=absent"

11、group

用戶組模塊,添加或刪除組

action: group

gid # 設(shè)置組的GID號(hào)

name= # 管理組的名稱

state # 指定組狀態(tài),默認(rèn)為創(chuàng)建,設(shè)置值為absent為刪除

system # 設(shè)置值為yes,表示為創(chuàng)建系統(tǒng)組

創(chuàng)建名為tom的組

ansible web -m group -a 'name=tom state=present'

12、script在指定節(jié)點(diǎn)運(yùn)行服務(wù)端的腳本

在本機(jī)家目錄下寫一個(gè)腳本,然后在兩臺(tái)遠(yuǎn)程主機(jī)上運(yùn)行

vim /root/test.sh

#!/bin/bash

date >> /app/disk_total.log

df -lh >> /app/disk_total.log

ansible web -m script -a '/root/test.sh'

然后去查看

13、setup模塊

facts組件是Ansible用于采集被管機(jī)器設(shè)備信息的一個(gè)功能,我們可以使用setup模塊查機(jī)器的所有facts信息,可以使用filter來查看指定信息。整個(gè)facts信息被包裝在一個(gè)JSON格式的數(shù)據(jù)結(jié)構(gòu)中,ansible_facts是最上層的值

facts就是變量,內(nèi)建變量 。每個(gè)主機(jī)的各種信息,cpu顆數(shù)、內(nèi)存大小等。會(huì)存在facts中的某個(gè)變量中。調(diào)用后返回很多對(duì)應(yīng)主機(jī)的信息,在后面的操作中可以根據(jù)不同的信息來做不同的操作。如redhat系列用yum安裝,而debian系列用apt來安裝軟件。

setup模塊,主要用于獲取主機(jī)信息,在playbooks里經(jīng)常會(huì)用到的一個(gè)參數(shù)gather_facts就與該模塊相關(guān)。setup模塊下經(jīng)常使用的一個(gè)參數(shù)是filter參數(shù),具體使用示例如下(由于輸出結(jié)果較多,這里只列命令不寫結(jié)果):

absible web -m setup 獲取所有的主機(jī)信息

ansible web -m setup -a 'filter=ansible_*_mb' //查看主機(jī)內(nèi)存信息

ansible web -m setup -a 'filter=ansible_eth[0-2]' //查看地接口為eth0-2的網(wǎng)卡信息

ansible all -m setup --tree /tmp/facts //將所有主機(jī)的信息輸入到/tmp/facts目錄下,每臺(tái)主機(jī)的信息輸入到主機(jī)名文件中(/etc/ansible/hosts里的主機(jī)名)

在本機(jī)中查看

Ansible playbook簡(jiǎn)介

playbook是ansible用于配置,部署,和管理被控節(jié)點(diǎn)的劇本。

通過playbook的詳細(xì)描述,執(zhí)行其中的一系列tasks,可以讓遠(yuǎn)端主機(jī)達(dá)到預(yù)期的狀態(tài)。playbook就像Ansible控制器給被控節(jié)點(diǎn)列出的的一系列to-do-list,而被控節(jié)點(diǎn)必須要完成。

也可以這么理解,playbook 字面意思,即劇本,現(xiàn)實(shí)中由演員按照劇本表演,在Ansible中,這次由計(jì)算機(jī)進(jìn)行表演,由計(jì)算機(jī)安裝,部署應(yīng)用,提供對(duì)外服務(wù),以及組織計(jì)算機(jī)處理各種各樣的事情。

Ansible playbook使用場(chǎng)景

(1)執(zhí)行一些簡(jiǎn)單的任務(wù),使用ad-hoc命令可以方便的解決問題,但是有時(shí)一個(gè)設(shè)施過于復(fù)雜,需要大量的操作時(shí)候,執(zhí)行的ad-hoc命令是不適合的,這時(shí)最好使用playbook。

(2)就像執(zhí)行shell命令與寫shell腳本一樣,也可以理解為批處理任務(wù),不過playbook有自己的語(yǔ)法格式。

(3)使用playbook你可以方便的重用這些代碼,可以移植到不同的機(jī)器上面,像函數(shù)一樣,最大化的利用代碼。在你使用Ansible的過程中,你也會(huì)發(fā)現(xiàn),你所處理的大部分操作都是編寫playbook。可以把常見的應(yīng)用都編寫成playbook,之后管理服務(wù)器會(huì)變得十分簡(jiǎn)單。

Ansible playbook格式

playbook由YMAL語(yǔ)言編寫。YAML( /?jæm?l/ )參考了其他多種語(yǔ)言,包括:XML、C語(yǔ)言、Python、Perl以及電子郵件格式RFC2822,Clark Evans在2001年5月在首次發(fā)表了這種語(yǔ)言,另外Ingy döt Net與Oren Ben-Kiki也是這語(yǔ)言的共同設(shè)計(jì)者。

YMAL格式是類似于JSON的文件格式,便于人理解和閱讀,同時(shí)便于書寫。首先學(xué)習(xí)了解一下YMAL的格式,對(duì)我們后面書寫playbook很有幫助。以下為playbook常用到的YMAL格式。

文件的第一行應(yīng)該以 "—" (三個(gè)連字符)開始,表明YMAL文件的開始。

在同一行中,#之后的內(nèi)容表示注釋,類似于shell,python和ruby。

YMAL中的列表元素以"-"開頭然后緊跟著一個(gè)空格,后面為元素內(nèi)容。就像這樣

- apple - banana - orange等價(jià)于JSON的這種格式

[ "apple", "banana", "orange" ]

同一個(gè)列表中的元素應(yīng)該保持相同的縮進(jìn)。否則會(huì)被當(dāng)做錯(cuò)誤處理。

play中hosts,variables,roles,tasks等對(duì)象的表示方法都是鍵值中間以":"分隔表示,":"后面還要增加一

個(gè)空格。

例如:vim /etc/ansible/mysql.yml

在mysql.yml中,主要由三個(gè)部分組成。

hosts部分:使用hosts指示使用哪個(gè)主機(jī)或主機(jī)組來運(yùn)行下面的tasks,每個(gè)playbook都必須指定hosts,hosts也可以使用通配符格式。主機(jī)或主機(jī)組在inventory清單中指定,可以使用系統(tǒng)默認(rèn)的

/etc/ansible/hosts,也可以自己編輯,在運(yùn)行的時(shí)候加上-i選項(xiàng),指定清單的位置即可。在運(yùn)行清單文件的時(shí)候,–list-hosts選項(xiàng)會(huì)顯示那些主機(jī)將會(huì)參與執(zhí)行task的過程中

remote_user:指定遠(yuǎn)端主機(jī)中的哪個(gè)用戶來登錄遠(yuǎn)端系統(tǒng),在遠(yuǎn)端系統(tǒng)執(zhí)行task的用戶,可以任意指定,也可以使用sudo,但是用戶必須要有執(zhí)行相應(yīng)task的權(quán)限。

tasks:指定遠(yuǎn)端主機(jī)將要執(zhí)行的一系列動(dòng)作。tasks的核心為ansible的模塊,前面已經(jīng)提到模塊的用法。tasks包含name和要執(zhí)行的模塊,name是可選的,只是為了便于用戶閱讀,不過還是建議加上去,模塊是必須的,同時(shí)也要給予模塊相應(yīng)的參數(shù)。

使用ansible-playbook運(yùn)行playbook文件,得到如下輸出信息,輸出內(nèi)容為JSON格式。并且由不同顏色組成,便于識(shí)別。一般而言

綠色代表執(zhí)行成功,系統(tǒng)保持原樣

黃色代表系統(tǒng)代表系統(tǒng)狀態(tài)發(fā)生改變

紅色代表執(zhí)行失敗,顯示錯(cuò)誤輸出。

執(zhí)行有三個(gè)步驟:1、收集facts 2、執(zhí)行tasks 3、報(bào)告結(jié)果

Playbook的核心元素:

Hosts:主機(jī)

Tasks:任務(wù)列表

Variables

Templates:包含了模板語(yǔ)法的文本文件;

Handlers:由特定條件觸發(fā)的任務(wù);

Playbooks配置文件的基礎(chǔ)組件:

Hosts:運(yùn)行指定任務(wù)的目標(biāo)主機(jī);

remoute_user: 在遠(yuǎn)程主機(jī)上執(zhí)行任務(wù)的用戶;

sudo_user:

tasks:任務(wù)列表

模塊,模塊參數(shù);

格式:

(1) action: module arguments

(2) module: arguments

注意:shell和command模塊后面直接跟命令,而非key=value類的參數(shù)列表;

(1) 某任務(wù)的狀態(tài)在運(yùn)行后為changed時(shí),可通過"notify"通知給相應(yīng)的handlers

(2) 任務(wù)可以通過"tags"打標(biāo)簽,而后可在ansible-playbook命令上使用-t指定進(jìn)行調(diào)用;

handlers:

任務(wù),在特定條件下觸發(fā);

接收到其它任務(wù)的通知時(shí)被觸發(fā);

tasks:

– name: TASK_NAME

module: arguments

notify: HANDLER_NAME

handlers:

– name: HANDLER_NAME

module: arguments

小實(shí)驗(yàn):

先做一個(gè)簡(jiǎn)單的劇本,安裝個(gè)samba,然后再開啟服務(wù),劇本內(nèi)容如圖:

然后再去讓web中的遠(yuǎn)程主機(jī)執(zhí)行劇本

但是現(xiàn)在我只想開啟服務(wù),不想再次安裝samba(因?yàn)橐呀?jīng)安裝過了),此時(shí)就可以給啟動(dòng)服務(wù)打個(gè)標(biāo)簽,這樣執(zhí)行劇本就只開啟服務(wù)了

更改劇本,打個(gè)標(biāo)簽,如圖:

先停掉smb服務(wù)

ansible web -m service -a "name=smb state=stopped"

然后再去執(zhí)行劇本,使用-t調(diào)用我們剛才打的標(biāo)簽,如圖:沒有再去安裝samba,只啟動(dòng)服務(wù)

現(xiàn)在有一個(gè)需求,當(dāng)nginx的配置文件發(fā)生變化時(shí),就restarted,劇本如下圖所示:

然后執(zhí)行劇本

ansible-playbook nginx.yml

然后查看端口號(hào)

現(xiàn)在改變nginx的配置文件,也就是修改/app/nginx.conf,然后就可以觸發(fā)handlers

我就修改一個(gè)端口,將nginx監(jiān)聽的端口改為8888

然后再次執(zhí)行劇本,-t調(diào)用打的標(biāo)簽

然后再來查看端口

variables:

(1) facts:可直接調(diào)用;

注意:可使用setup模塊直接獲取目標(biāo)主機(jī)的facters;ansible web -m setup 來獲取主機(jī)的信息,里面有各種變量

{{ ansible_eth0['ipv4']['address'] }} centos6的IP地址變量

{{ ansible_ens33['ipv4']['address'] }} centos7的IP地址變量

(2) 用戶自定義變量:

(a) ansible-playbook命令的命令行中的

-e VARS, --extra-vars=VARS 也就是在命令中指定變量是什么

ansible-playbook nginx.yml -e rpmname=vsftpd

(b) 在playbook中定義變量的方法:

如圖:

再去改一下/app/nginx.conf,再改變一個(gè)端口如:9999

然后執(zhí)行劇本

(3) 通過roles傳遞變量;

(4) Host Inventory

(a) 用戶自定義變量

(i) 向不同的主機(jī)傳遞不同的變量;

IP/HOSTNAME varaiable=value var2=value2

(ii) 向組中的主機(jī)傳遞相同的變量;

[groupname:vars]

variable=value

[web]

172.17.251.188

172.17.250.209

[web:vars]

rpmname=samba

運(yùn)行playbook的方式:

(1) 測(cè)試

ansible-playbook --check 只檢測(cè)可能會(huì)發(fā)生的改變,但不真正執(zhí)行操作;

ansible-playbook --list-hosts 列出運(yùn)行任務(wù)的主機(jī);

(2) 直接運(yùn)行

模板:templates

文本文件,嵌套有腳本(使用模板編程語(yǔ)言編寫)

Jinja2:Jinja2是python的一種模板語(yǔ)言,以Django的模板語(yǔ)言為原本

支持:

字符串:使用單引號(hào)或雙引號(hào);

數(shù)字:整數(shù),浮點(diǎn)數(shù);

列表:[item1, item2, ...]

元組:(item1, item2, ...)

字典:{key1:value1, key2:value2, ...}

布爾型:true/false

算術(shù)運(yùn)算:

+, -, *, /, //, %, **

比較操作:

==, !=, >, >=, <, <=

邏輯運(yùn)算:

and, or, not

使用模板示例:

1.將/app/nginx.conf改名為/app/nginx.conf.j2 這個(gè)配置文件就變成模板配置文件了

mv /app/nginx.conf /app/nginx.conf.j2

2.然后將模板配置文件里面的監(jiān)聽端口寫成變量,cpu顆數(shù)也寫成變量

變量nginxport是我們自己定義的

變量ansible_processor_vcpus是用ansible命令獲取的ansible web -m setup |grep cpu

3.編寫劇本

4.執(zhí)行劇本,查看端口,有8888端口

條件測(cè)試:

when語(yǔ)句:在task中使用,jinja2的語(yǔ)法格式

tasks:

- name: install conf file to centos7

template: src=files/nginx.conf.c7.j2

when: ansible_distribution_major_version == "7"

- name: install conf file to centos6

template: src=files/nginx.conf.c6.j2

when: ansible_distribution_major_version == "6"

判斷ansible_distribution_major_version這個(gè)變量等于6還是7,如果是6,說明是centos6系統(tǒng),就執(zhí)行template: src=files/nginx.conf.c6.j2,如果是7,說明是centos7的系統(tǒng),就執(zhí)行 template: src=files/nginx.conf.c7.j2

循環(huán):迭代,需要重復(fù)執(zhí)行的任務(wù);對(duì)迭代項(xiàng)的引用,固定變量名為"item"而后,要在task中使用with_items給定要迭代的元素列表;

Ansible playbook字典

- name: install some packages

yum: name={{ item }} state=present

with_items:

- nginx

- memcached

- php-fpm

- name: add some groups

group: name={{ item }} state=present

with_items:

- group11

- group12

- group13

- name: add some users

user: name={{ item.name }} group={{ item.group }} state=present

with_items:

- { name: 'user11', group: 'group11' }

- { name: 'user12', group: 'group12' }

- { name: 'user13', group: 'group13' }

企業(yè)級(jí)應(yīng)用:

角色定制:roles

對(duì)于以上所有的方式有個(gè)弊端就是無法實(shí)現(xiàn)復(fù)用假設(shè)在同時(shí)部署Web、db、ha 時(shí)或不同服務(wù)器組合不同的應(yīng)用就需要寫多個(gè)yml文件。很難實(shí)現(xiàn)靈活的調(diào)用。

roles 用于層次性、結(jié)構(gòu)化地組織playbook。roles 能夠根據(jù)層次型結(jié)構(gòu)自動(dòng)裝載變量文件、tasks以及handlers等。要使用

roles只需要在playbook中使用include指令即可。簡(jiǎn)單來講,roles就是通過分別將變量(vars)、文件(file)、任務(wù)(tasks)、模塊

(modules)及處理器(handlers)放置于單獨(dú)的目錄中,并可以便捷地include它們的一種機(jī)制。角色一般用于基于主機(jī)構(gòu)建服務(wù)的場(chǎng)景中,但也可以是用于構(gòu)建守護(hù)進(jìn)程等場(chǎng)景中。

roles目錄結(jié)構(gòu)

角色集合:roles/

mysql/

httpd/

nginx/

files/:存儲(chǔ)由copy或script等模塊調(diào)用的文件;

tasks/:此目錄中至少應(yīng)該有一個(gè)名為main.yml的文件,用于定義各task;其它的文件需要由main.yml進(jìn)行"包含"調(diào)用;

handlers/:此目錄中至少應(yīng)該有一個(gè)名為main.yml的文件,用于定義各handler;其它的文件需要由main.yml進(jìn)行"包含"調(diào)用;

vars/:此目錄中至少應(yīng)該有一個(gè)名為main.yml的文件,用于定義各variable;其它的文件需要由main.yml進(jìn)行"包含"調(diào)用;

templates/:存儲(chǔ)由template模塊調(diào)用的模板文本;

meta/:此目錄中至少應(yīng)該有一個(gè)名為main.yml的文件,定義當(dāng)前角色的特殊設(shè)定及其依賴關(guān)系;其它的文件需要由main.yml進(jìn)行"包含"調(diào)用;

default/:此目錄中至少應(yīng)該有一個(gè)名為main.yml的文件,用于設(shè)定默認(rèn)變量;

實(shí)驗(yàn):角色定制:roles

1、在roles目錄下生成對(duì)應(yīng)的目錄結(jié)構(gòu)

cd /etc/ansible/roles

mkdir -pv ./{nginx,mysql,httpd}/{files,templates,vars,tasks,handlers,meta,default}

我們就以定義nginx角色為例

2、定義tasks/main.yml的配置文件

vim /etc/ansible/roles/nginx/tasks/main.yml

- name: cp

copy: src=nginx-1.10.2-1.el7.ngx.x86_64.rpm dest=/tmp/nginx-1.10.2-1.el7.ngx.x86_64.rpm

- name: install

yum: name=/tmp/nginx-1.10.2-1.el7.ngx.x86_64.rpm state=latest

- name: conf

template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf

tags: nginxconf

notify: new conf to reload

- name: start service

service: name=nginx state=started enabled=true

3.將最新版本的nginx rpm包下載到/etc/ansible/roles/nginx/files下

cd /etc/ansible/roles/nginx/files

lftp 172.17.0.1

cd /pub/Sources/7.x86_64/nginx

get nginx-1.10.2-1.el7.ngx.x86_64.rpm

quit

4.在/etc/ansible/roles/nginx/templates中配置模板文件

cp /etc/nginx/nginx.conf /etc/ansible/roles/nginx/templates/nginx.conf.j2

vim nginx.conf.j2

將nginx監(jiān)聽端口和cpu顆數(shù)設(shè)置為變量

5.在/etc/ansible/roles/nginx/vars目錄下配置變量文件mian.yml

cd /etc/ansible/roles/nginx/vars

vim main.yml

nginxport: 6666

只配置端口變量就行了,cpu顆數(shù)變量是內(nèi)建的,不用聲明

6.配置handlers文件

cd /etc/ansible/roles/nginx/handlers

vim main.yml

- name: new conf to reload

service: name=nginx state=restarted

7.定義/etc/ansible/roles.yml的playbook文件

---

- hosts: web

remote_user: root

roles:

- nginx

只需定義主機(jī)組,遠(yuǎn)程連接的用戶和角色(角色可以配置多個(gè))

8.測(cè)試,執(zhí)行劇本

ansible-playbook roles.yml 執(zhí)行成功

查看端口

文件目錄結(jié)構(gòu):

.

├── httpd

│ ├── default

│ ├── files

│ ├── handlers

│ ├── meta

│ ├── tasks

│ ├── templates

│ └── vars

├── mysql

│ ├── default

│ ├── files

│ ├── handlers

│ ├── meta

│ ├── tasks

│ ├── templates

│ └── vars

└── nginx

├── default

├── files

│ └── nginx-1.10.2-1.el7.ngx.x86_64.rpm

├── handlers

│ └── main.yml

├── meta

├── tasks

│ └── main.yml

├── templates

│ └── nginx.conf.j2

└── vars

└── main.yml

總結(jié)

以上是生活随笔為你收集整理的企业级自动化运维工具应用实战-ansible的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久伊人国产精品 | 成年人在线看片 | 成人午夜剧场在线观看 | 九九在线高清精品视频 | 亚洲精品国产精品国自产 | 久草手机视频 | 五月婷网站 | 99久久精品国 | 日韩精品免费一区二区 | 亚洲精品色 | 久久伊人婷婷 | 亚洲黄色免费观看 | 青青草国产在线 | 五月天亚洲综合 | 在线观看中文字幕第一页 | 精品视频专区 | 成人h视频在线播放 | 天天爽天天碰狠狠添 | 中文字幕电影在线 | a在线免费观看视频 | 一区二区三区在线影院 | 亚洲一区二区精品在线 | 在线播放国产一区二区三区 | 综合激情婷婷 | 国产在线一区二区三区播放 | 国产xx视频 | 国产男女无遮挡猛进猛出在线观看 | 天天插日日插 | 日韩在线免费观看视频 | 久久视频免费在线观看 | 国产一级片毛片 | 97超碰人人澡人人爱 | 亚洲高清在线观看视频 | 国产专区视频 | 午夜精品一区二区三区视频免费看 | www.天天射| 欧美十八 | 亚洲精品中文字幕在线观看 | 97手机电影网 | 欧美精品一区二区免费 | 国产免费亚洲高清 | 狠狠色伊人亚洲综合成人 | 久久免费片 | www.xxxx变态.com | 91麻豆精品国产自产在线游戏 | 国产又粗又猛又爽又黄的视频免费 | 免费看污片| 国产精品露脸在线 | 久久免费99精品久久久久久 | 久久人人爽人人爽人人 | 2024国产精品视频 | 国产精品久久久久久久毛片 | 免费电影播放 | 日韩欧美高清在线 | 亚洲一区 影院 | 国产私拍在线 | 888av| 日韩免费视频观看 | 久热爱| 欧美精品在线视频 | 中文字幕在线播放一区二区 | 国产精品va最新国产精品视频 | 久艹视频在线观看 | 你操综合 | 色综合久久88色综合天天 | 精品久久久久久久久久岛国gif | 亚洲视频久久久 | 欧美激情另类文学 | 久久亚洲专区 | 激情欧美丁香 | 中文字幕在线观看的网站 | 国产高清视频在线播放 | 久久久久久久国产精品影院 | 免费91在线 | 天天操天天射天天舔 | 免费在线视频一区二区 | 91黄色在线视频 | 国模精品在线 | 91精品在线看 | 成人三级网站在线观看 | 在线影视 一区 二区 三区 | 婷婷av电影 | 久久精品国产免费看久久精品 | 亚洲精品一区二区三区高潮 | 亚洲理论电影网 | 日韩成人黄色 | 免费视频久久久 | 国产亚洲精品综合一区91 | a爱爱视频 | 成人作爱视频 | 国产视频午夜 | 色噜噜在线观看视频 | 久久久久色 | 欧美一二在线 | 久久免费高清 | 黄色网中文字幕 | 久久久九色精品国产一区二区三区 | 国内精品小视频 | 国产精品欧美激情在线观看 | 亚洲综合色丁香婷婷六月图片 | 欧美坐爱视频 | 亚洲精品大片www | 久草爱 | 欧美一级性生活视频 | 免费观看一区 | 精品国产1区2区 | 亚洲国产日韩av | 狠狠色丁香婷婷综合基地 | 国产精品v欧美精品v日韩 | av在线播放不卡 | 免费久久久久久久 | 99久久久久久 | 91精品国产92久久久久 | 国产精品久久嫩一区二区免费 | 黄色在线观看免费 | 97av色| 五月天最新网址 | 日日夜夜人人精品 | 精品福利片| 欧美日韩国产网站 | 久久婷婷色综合 | 久久国产精品99久久久久久老狼 | 中文字幕综合在线 | 韩国一区二区三区在线观看 | 在线成人欧美 | 欧美国产日韩一区二区三区 | 久久免费视频国产 | 亚洲精品456在线播放第一页 | 中文一区二区三区在线观看 | 免费观看性生交 | 欧美日韩免费看 | 91高清免费 | 中文字幕在线观看国产 | 欧美日韩一区二区三区在线观看视频 | 免费色视频 | va视频在线观看 | 免费看在线看www777 | 久久99久久久久 | 99在线精品视频观看 | 久久免费看毛片 | 色吊丝在线永久观看最新版本 | 四虎www com| 国产精品av免费观看 | 久久蜜臀一区二区三区av | 91av国产视频 | 中文国产在线观看 | 欧美久久影院 | 成人在线视频免费看 | 久久高清免费 | 狠狠色丁香婷婷综合 | 中文字幕一区二区三区久久蜜桃 | 欧美日韩精品在线播放 | 999视频在线观看 | 九九精品视频在线观看 | 久久久影视| 人人舔人人干 | 亚洲一级片在线观看 | 久久久久成人精品免费播放动漫 | 色偷偷88888欧美精品久久 | 中文一区二区三区在线观看 | 91av亚洲| 日本久久免费视频 | 精品免费视频. | 欧美一区二区在线免费看 | 碰超人人 | 中文字幕免费在线 | 91最新视频 | 日韩av高清| 视频国产一区二区三区 | 色久综合 | 久久一本综合 | 中文字幕第 | 亚洲 欧美 91 | 91在线免费观看国产 | 在线a人v观看视频 | 欧美人人 | 日韩资源在线 | 韩日成人av | 国产一二三四在线视频 | 国产麻豆精品95视频 | 五月av在线 | 97成人资源| 成人av电影免费观看 | 一级特黄av | 黄色资源在线 | 日韩午夜视频在线观看 | 成人性生交大片免费看中文网站 | 一区中文字幕电影 | 国产精品mv| 久久久久女教师免费一区 | 国产精品久久久久久久久久久久久久 | a亚洲视频 | 日韩电影精品 | 四虎成人精品在永久免费 | 亚洲日本欧美在线 | 成人午夜精品久久久久久久3d | 黄色av网站在线免费观看 | 91av亚洲 | 日韩理论视频 | 黄色一级大片在线免费看国产一 | 免费一级片视频 | 久久久国产精品亚洲一区 | 欧美性护士 | 91大神电影 | 免费a级毛片在线看 | 激情久久一区二区三区 | 成人黄大片视频在线观看 | 91精品在线免费视频 | 久久99热国产 | 五月天九九 | 8x成人在线 | 久久亚洲精品电影 | 亚洲高清激情 | 一区二区三区精品在线 | 亚洲成人av在线 | 欧美日韩亚洲第一页 | 97成人精品区在线播放 | www一起操| 99精品视频精品精品视频 | 00av视频| 国产69精品久久99不卡的观看体验 | 久草在线视频资源 | 91视视频在线直接观看在线看网页在线看 | 国产精品免费在线播放 | 亚洲丝袜一区 | 久久国产区 | 久久深夜| 一区精品久久 | 亚洲天堂网站视频 | 亚洲狠狠丁香婷婷综合久久久 | 五月激情丁香婷婷 | 国产高清无av久久 | 国产综合91 | 99久久精品国产免费看不卡 | 中文字幕一区二区在线观看 | 成人超碰97 | 久久尤物电影视频在线观看 | 国内外成人在线 | 国产精品免费视频网站 | 久久少妇av | 六月丁香婷婷久久 | 日韩欧美在线观看 | 人人爽人人爽 | 国产手机视频 | 99热这里精品 | 国产精品久久嫩一区二区免费 | 久久综合久久综合这里只有精品 | 91高清完整版在线观看 | 99理论片 | 久久综合影音 | 粉嫩高清一区二区三区 | 欧美成人播放 | av中文字幕网址 | 中文字幕在线视频一区二区三区 | 国产精品久久久久一区二区三区共 | 在线观看完整版免费 | 久久国产亚洲视频 | 韩国av免费 | 香蕉影院在线 | 亚洲精品五月 | 色av男人的天堂免费在线 | 日本精品一区二区三区在线观看 | 日本久久电影 | 国产在线精品一区二区三区 | 成人在线播放免费观看 | h久久| 人人爱爱| 亚洲国产手机在线 | 91精品视频免费在线观看 | 色悠悠久久综合 | 国产精品99久久久 | 久久久穴| 免费观看久久久 | 久久国产亚洲精品 | 成人黄色电影在线观看 | 精品极品在线 | 国产精品高潮呻吟久久久久 | 免费久久网 | 九九九九九九精品 | a色视频 | 国产精品毛片一区二区在线看 | 狠狠的干狠狠的操 | 亚洲不卡在线 | 国产亚洲精品久久 | 欧美日韩一区二区免费在线观看 | 少妇av片 | 在线亚洲免费视频 | 永久免费av在线播放 | 国产精品美女www爽爽爽视频 | 久久久网址 | 欧美最猛性xxx | 色综合久久中文字幕综合网 | 国产在线观看黄 | 国产在线观看 | 欧美日韩高清一区二区三区 | 亚洲精品美女久久17c | 手机在线小视频 | 成全免费观看视频 | 免费在线观看一区 | 伊人天天干 | 免费观看性生交 | 中文字幕欧美日韩va免费视频 | 久草视频在线免费看 | www中文在线| 五月婷婷丁香综合 | 一区二区三区精品在线 | 久久亚洲综合国产精品99麻豆的功能介绍 | av一区二区三区在线播放 | 一区免费视频 | 久久免费精品一区二区三区 | 亚洲第一色| 丁香激情综合久久伊人久久 | 国产伦理久久 | 在线看v片 | 国产麻豆视频网站 | 最近中文字幕在线中文高清版 | av电影免费看 | 天天色天天爱天天射综合 | 国产99久久久欧美黑人 | 久久99视频免费 | 久久视频这里有久久精品视频11 | 天天综合导航 | 成人一区二区三区中文字幕 | 日韩在线免费播放 | 操处女逼| 激情综合五月婷婷 | 亚洲精品黄色片 | 成人黄色小说在线观看 | 黄色成人小视频 | 毛片视频电影 | 玖玖视频国产 | 免费日韩一区二区三区 | 国产美女精品久久久 | 久久伊人五月天 | 天天操天天舔天天干 | 国产高清av免费在线观看 | 欧美综合久久久 | 永久免费的av电影 | 国产精品久久久久久久久久 | 国产精品6999成人免费视频 | 亚洲区色 | 天天干天天干天天操 | 国产一区二区三精品久久久无广告 | 婷婷激情久久 | 国产日韩在线看 | 日韩电影精品 | 91av网址| 久草在线中文888 | 欧美一区中文字幕 | 国产午夜精品一区二区三区嫩草 | 99视频偷窥在线精品国自产拍 | av午夜电影| 天堂av官网| 中文字幕一二 | 国产精品久久伊人 | 99av在线视频 | 久久久久亚洲精品男人的天堂 | 久久国产精品精品国产色婷婷 | 中文字幕精品三级久久久 | 开心丁香婷婷深爱五月 | 国产中的精品av小宝探花 | 久久亚洲在线 | 六月色播 | 免费看色视频 | 麻豆视频免费在线观看 | 欧美性色黄大片在线观看 | 国产视频一区二区三区在线 | 最新av在线播放 | 午夜精品视频免费在线观看 | 99在线观看精品 | 国产一区国产二区在线观看 | 日本久久中文 | 日韩免费视频播放 | 在线看黄色的网站 | a黄在线观看 | 成年人在线观看视频免费 | 亚洲一区二区三区miaa149 | 成人看片 | 免费a级大片 | av片子在线观看 | 国产二区视频在线 | 久久久国产日韩 | 超碰97免费观看 | 91最新国产 | 在线亚洲人成电影网站色www | 欧美日韩精品国产 | 日日干夜夜草 | 热久在线| 日韩一级电影在线观看 | 亚洲国产中文在线观看 | 97精品国自产拍在线观看 | av网址在线播放 | 日韩精品一区二 | 亚洲高清视频在线观看 | 天天色天天色天天色 | 久久有精品 | 日日麻批40分钟视频免费观看 | 91在线视频免费观看 | 日韩在线观看的 | 久精品视频免费观看2 | av短片在线 | 69av免费视频 | 日本天天操 | 美女搞黄国产视频网站 | 亚洲国产精品成人女人久久 | 国产精品18久久久久久久久 | 国产美女视频免费 | 婷婷在线播放 | a久久免费视频 | 亚洲黄色免费观看 | 超碰人人草人人 | 97成人在线观看 | 免费涩涩网站 | 欧美日韩视频精品 | 五月天激情综合 | 国产精品一区二区精品视频免费看 | 久久视频在线看 | 国产在线播放不卡 | 99久久婷婷 | 亚洲精品美女在线 | 91九色蝌蚪 | 色婷婷久久一区二区 | 亚洲黄色片| 色综合久久久久综合99 | 在线免费观看的av | 91精品国自产在线观看欧美 | 欧美日韩亚洲在线 | 国产成人精品一区二区三区免费 | 国产福利一区二区三区在线观看 | 成年人免费看的视频 | 91精品国产自产老师啪 | 99热精品久久 | 久久艹人人 | 欧美成年人在线视频 | 国产高清视频免费最新在线 | 亚洲 综合 国产 精品 | 97国产在线观看 | 麻豆av一区二区三区在线观看 | 丁香婷婷综合激情五月色 | 色偷偷av男人天堂 | 一区 二区电影免费在线观看 | 91视频91自拍 | 激情片av| 粉嫩av一区二区三区入口 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久国产精品成人免费浪潮 | 96国产在线| www.xxx.性狂虐 | 成人国产综合 | 深爱婷婷激情 | 欧美精品国产综合久久 | 日韩免费观看一区二区三区 | 国产不卡视频在线 | 一本—道久久a久久精品蜜桃 | 夜夜天天干 | 波多野结衣视频一区 | 国产一级特黄毛片在线毛片 | 亚洲黄色在线 | 91精品国产综合久久福利不卡 | 久久久久久久久毛片精品 | 伊人婷婷久久 | 999久久a精品合区久久久 | 99久久精品久久久久久动态片 | 欧美日韩国产一区二区三区在线观看 | av色一区 | 亚洲 综合 专区 | 免费一级日韩欧美性大片 | 日日夜夜添 | 99热.com| 国产最新在线 | 中文在线a天堂 | 中文字幕在线看视频 | 一区二区三区影院 | 99久热在线精品视频观看 | 国产91精品一区二区麻豆网站 | 五月婷婷天堂 | 国产精品网红福利 | 国产亚洲精品无 | 成人免费观看av | 中文字幕黄色网 | 国产日韩欧美在线播放 | 成人av一区二区三区 | 美女视频黄,久久 | 九九爱免费视频在线观看 | 黄色免费网站大全 | 婷婷伊人综合亚洲综合网 | 欧美孕妇视频 | 国产精品 亚洲精品 | 日韩激情免费视频 | 国产精品v欧美精品v日韩 | 亚洲综合在线五月 | 天天干天天操天天干 | av一级免费 | x99av成人免费| 国产性天天综合网 | 亚洲精品在线一区二区 | 五月天婷婷丁香花 | 五月婷在线观看 | 日本夜夜草视频网站 | 免费看黄在线观看 | 青青草久草在线 | 久久成人精品电影 | 亚洲第一区精品 | 911精品美国片911久久久 | 日韩黄色一区 | 91cn国产在线 | 日韩精品一区二区三区免费观看视频 | 夜夜骑天天操 | 日韩视 | 中文字幕在线播放一区 | 久久午夜精品影院一区 | 国产v在线观看 | 日韩在线视频免费播放 | 欧美另类巨大 | 特级西西人体444是什么意思 | 九九久久国产精品 | 男女啪啪网站 | 国产小视频在线 | 日本成人中文字幕在线观看 | 99热这里 | 丰满少妇在线观看网站 | 99re久久资源最新地址 | 欧美黑吊大战白妞欧美 | 欧美日韩激情视频8区 | 国产精品免费观看视频 | 欧美激情视频一区二区三区免费 | 免费观看一级视频 | 青青草国产精品视频 | 免费日韩一区 | 免费观看一级成人毛片 | 一级一级一片免费 | 成 人 黄 色 免费播放 | 精品久久久久久亚洲 | 精品专区一区二区 | 国产天天综合 | 久久99国产精品久久99 | 欧美一区日韩精品 | 波多野结衣一区二区三区中文字幕 | 天天操网址 | 欧美一二区视频 | 久久久久久久久毛片 | 视频在线观看入口黄最新永久免费国产 | 精品国产大片 | 97在线观看免费观看高清 | 欧美日韩国产一区 | 欧美天天综合网 | 国产黄色一级大片 | 亚洲综合在线五月天 | 久久精品视频在线播放 | 国产高清日韩 | 亚洲精品国产精品99久久 | 婷婷电影在线观看 | 国产一二三四在线视频 | 正在播放一区二区 | 日韩理论片在线观看 | 国产看片 色| 在线观看午夜 | 在线观看免费色 | 在线播放日韩 | 亚洲 欧美 变态 国产 另类 | 日韩久久久久 | 美女视频黄免费的 | 国产精品久久久久久久久久直播 | 观看免费av | 精品福利视频在线观看 | 九九视频一区 | 国产成人精品久久二区二区 | 97超碰免费在线观看 | 午夜少妇一区二区三区 | 国产精品网站一区二区三区 | 中文字幕在线观看国产 | 人人爽人人干 | 亚洲作爱 | 色综合中文字幕 | 亚洲精品在线免费看 | 99色在线观看视频 | 99在线观看 | 国内精品视频在线播放 | 在线观看韩日电影免费 | 在线免费黄色av | 免费黄色在线网址 | 欧美一级久久久久 | 精品久久一级片 | 欧美日韩国产一区二区在线观看 | 91成人免费看 | 免费看的黄色网 | 久久亚洲二区 | 精品国产观看 | 久草视频视频在线播放 | 欧美一级久久久 | 五月婷婷天堂 | 99久久99久久精品 | av观看久久久 | 97电影在线 | 日韩在线短视频 | 色婷婷久久久综合中文字幕 | 久久久久久福利 | 国产成人区 | 欧美va电影| 久久亚洲人 | 在线观看免费91 | 免费a v观看| 国产一级在线看 | av黄色免费在线观看 | 欧美一级在线观看视频 | 手机在线永久免费观看av片 | 国产999| 国产亚洲精品久久久久秋 | 日批网站在线观看 | 国产精品video爽爽爽爽 | 欧美aaa一级 | 成年人免费电影在线观看 | 日韩av电影免费观看 | 婷婷成人在线 | 日韩xxxx视频 | 中文字幕在线观看第一页 | 深夜激情影院 | 99热精品在线| 亚洲精选视频免费看 | 久久视频这里只有精品 | 久久精品国产第一区二区三区 | 国产黄色片在线 | 国产精品久久久久av福利动漫 | 国产精品久久久久久久久毛片 | 波多野结衣一区二区三区中文字幕 | 国产一级精品在线观看 | 中文视频一区二区 | 欧美日韩在线网站 | 国产高清精品在线 | 国产成人福利在线观看 | 久久夜视频| 丁香花在线视频观看免费 | 免费在线一区二区 | 久久一区91| 最新婷婷色| 在线免费黄色av | 日本久久精 | 伊人日日干 | 黄色小说视频在线 | 9热精品 | 在线高清av | 久久99精品热在线观看 | 成人久久18免费网站麻豆 | 亚洲精品玖玖玖av在线看 | 91中文在线视频 | 国产精品免费麻豆入口 | 成人黄色影片在线 | 国产一级视频在线免费观看 | 男女激情免费网站 | 91日韩精品视频 | 欧美激情视频一二三区 | 91精品国产一区 | 国产蜜臀av | 天天操偷偷干 | 日韩午夜在线观看 | 波多野结衣资源 | 国产在线1区 | 99视频精品视频高清免费 | av天天干| 999久久久久久久久 69av视频在线观看 | 国产精品入口a级 | 久久理论电影 | 黄色av免费 | 欧美 日韩 视频 | 国产一区二区三区免费视频 | 日韩高清精品免费观看 | 成人理论电影 | 国产一区二区在线播放视频 | 一区二区激情 | 国产又粗又猛又黄 | 97电影手机 | 九九精品视频在线观看 | 免费精品久久久 | 国产成人精品一区二区三区福利 | av丝袜美腿| 欧美a级成人淫片免费看 | 亚洲精品大片www | 久久久久久高潮国产精品视 | 在线观看久 | 免费福利视频导航 | 中文字幕激情 | 欧美日韩国产一区二区在线观看 | 毛片a级片| 在线免费观看国产视频 | 九九在线国产视频 | 韩国精品一区二区三区六区色诱 | 欧美一区二视频在线免费观看 | 久久全国免费视频 | 久操视频在线免费看 | 天天透天天插 | 国产精品久久久久久久久久久免费看 | 一级黄色大片在线观看 | 欧美日韩精品在线视频 | 九九九热精品 | 国产精品九九久久久久久久 | 色国产精品 | 中文国产字幕在线观看 | 99免费在线观看视频 | 久99久久| 精品国产精品国产偷麻豆 | 精品国产一区二区三区男人吃奶 | 五月天电影免费在线观看一区 | 2023天天干 | 岛国av在线 | 激情黄色一级片 | 久久激情视频 久久 | 在线观看国产永久免费视频 | 午夜免费视频网站 | 午夜精品一区二区三区在线 | 亚洲午夜精品久久久久久久久久久久 | 成x99人av在线www | 国产精品综合久久久久久 | 色老板在线视频 | 国产美腿白丝袜足在线av | 午夜私人影院久久久久 | 日韩色av色资源 | 毛片a级片 | 国外成人在线视频网站 | 黄色软件视频网站 | 超碰免费观看 | 日韩av资源站 | 久久久成人精品 | 精品国产亚洲一区二区麻豆 | 99视频在线精品免费观看2 | 人人艹人人 | 精品视频区 | 亚洲香蕉在线观看 | 色资源网在线观看 | 国产大陆亚洲精品国产 | 韩国av一区二区三区在线观看 | 天天干天天操av | 香蕉网址 | 精品999| 香蕉视频在线视频 | 超碰97国产在线 | 激情文学综合丁香 | 国产一区二区在线免费视频 | 色婷婷啪啪免费在线电影观看 | 婷婷久久国产 | 一级欧美一级日韩 | 国产精品免费麻豆入口 | 国内精品视频免费 | 中文字幕日韩在线播放 | 国产一区二区手机在线观看 | 久草视频在线免费播放 | 久久精品免费电影 | 久久精品看 | 操处女逼| 午夜精品视频免费在线观看 | 又黄又网站 | 日韩中文字幕免费在线观看 | 国产区精品视频 | 99精品免费 | 五月激情片| 国产成人精品女人久久久 | 亚洲精品中文字幕在线观看 | 日韩女同一区二区三区在线观看 | 久久国产免费 | 日韩欧美一区二区三区视频 | 日日干美女 | 欧美成人h版电影 | 不卡av在线免费观看 | 91久久久久久国产精品 | 在线看黄网站 | 在线观看av国产 | 精品国产乱码久久久久久天美 | 97av免费视频| 欧美日韩aaaa | 久久经典视频 | 天天天天色射综合 | 91成人免费观看视频 | 国产日韩欧美精品在线观看 | 91在线视频导航 | 中文字幕国产亚洲 | 超碰国产在线播放 | 97超碰在线资源 | 亚洲激情视频 | 国产精品高潮久久av | 91福利免费 | 在线99视频 | 亚洲精品久久久久久久不卡四虎 | 日韩欧美电影 | 激情丁香综合五月 | 免费色视频 | 91精品资源 | 中文字幕超清在线免费 | 亚洲毛片久久 | 国产免费人成xvideos视频 | 激情综合色综合久久综合 | av网站大全免费 | 免费h在线观看 | 日一日操一操 | 欧美成人性战久久 | 超碰在线9 | 黄色电影网站在线观看 | 国产91综合一区在线观看 | 久久国内精品99久久6app | 久久96国产精品久久99漫画 | 四虎影院在线观看av | 亚洲免费公开视频 | 97视频一区 | 久久高清毛片 | 亚洲欧美激情插 | 国产黄色片免费观看 | 精品久久五月天 | 日韩中出在线 | 日韩欧美久久 | 97偷拍在线视频 | 日日婷婷夜日日天干 | 久草爱| av三级在线播放 | 色九九影院 | 国产精品乱码久久久久久1区2区 | 日韩丝袜视频 | 嫩草av在线| 久久爽久久爽久久av东京爽 | 欧美另类sm图片 | 天天色播 | 国产在线精品国自产拍影院 | 国产拍揄自揄精品视频麻豆 | 美女在线免费视频 | 91精品婷婷国产综合久久蝌蚪 | 国产91精品在线观看 | 欧美黄色特级片 | 91成人精品一区在线播放 | 中文字幕中文字幕在线中文字幕三区 | 日韩国产精品久久 | 九九免费精品 | 日日躁天天躁 | av综合网址| 午夜私人影院久久久久 | 亚洲国产偷 | 亚洲高清激情 | 午夜国产一区二区 | 欧美精品久久久久久 | 黄色在线观看网站 | 97手机电影网 | 亚洲精品乱码久久久久久 | 免费观看完整版无人区 | 午夜精品久久久久久久久久久 | 亚洲最大在线视频 | 欧美成人性战久久 | 久久人人爽爽人人爽人人片av | 狠狠狠狠狠狠 | 精品国产乱码一区二区三区在线 | 伊人色综合久久天天 | 99热在线国产精品 | 97视频入口免费观看 | 综合铜03 | 国产在线观看91 | 天天操夜夜爱 | 亚洲国产片色 | 天天摸天天舔 | 国产白浆在线观看 | 最近中文字幕免费视频 | 亚洲精品久久久久久中文传媒 | www.成人精品 | 免费成人在线观看视频 | 日日摸日日 | 国产精品久久9 | 亚洲欧洲精品一区 | 97精品一区 | 天天色天天色天天色 | 丁香六月欧美 | 国产精品热 | 黄色app网站在线观看 | 国产三级午夜理伦三级 | 久久久精品国产免费观看一区二区 | 婷婷五情天综123 | 超碰.com| 国产精品欧美精品 | 少妇av网| 97电影网站 | a久久久久久 | a级片韩国 | 狠狠综合网 | 久久久91精品国产一区二区三区 | 久草在线免费在线观看 | 国产3p视频 | 狠狠操91 | 久久99精品国产麻豆宅宅 | 久久久久国产成人免费精品免费 | 久草网在线视频 | 热re99久久精品国产66热 | 成人国产一区二区 | 日批网站在线观看 | 欧洲亚洲女同hd | www.av免费| 国产成人免费精品 | 久久综合成人网 | 国产视频综合在线 | 五月婷网站| 亚洲伊人婷婷 | 波多野结衣在线视频一区 | 久久久福利影院 | 久久久毛片 | 久久久久久久久久久久久久av | 精品视频国产一区 | 久久99精品国产一区二区三区 | 玖玖在线观看视频 | 丰满少妇对白在线偷拍 | 2017狠狠干| a视频免费看 | 久久短视频 | 韩国精品在线观看 | 亚洲国产精品电影 | 日韩免费av片 | 麻豆视频免费 | 又黄又刺激的视频 | 中文字幕精品一区二区三区电影 | 婷婷在线精品视频 | 天天综合91 | 91av视频在线观看 | 欧美精品v国产精品v日韩精品 | 成人午夜影院 | 中文字幕激情 | 免费在线观看av的网站 | 久久精品网站免费观看 | 亚洲国产精彩中文乱码av | 9999国产精品 | 成人中文字幕+乱码+中文字幕 | 亚洲精品视频 | 日韩.com| 涩涩成人在线 | 国产韩国日本高清视频 | 青青久草在线 | 在线观看亚洲精品 | 成年人视频免费在线播放 | 久久视影| 日本黄色免费电影网站 | 欧美国产日韩久久 | 久久久久亚洲精品国产 | 中文字幕精品一区二区三区电影 | 在线精品观看 | 手机在线日韩视频 | 久久五月婷婷丁香 | 日本三级全黄少妇三2023 | 午夜精品久久久久久久爽 | 亚洲人人精品 | 久久久久久97三级 | av电影久久 | 特级黄录像视频 | 在线欧美国产 | 欧美日韩二区在线 | 亚洲免费黄色 | av黄色在线| 亚洲 欧洲 国产 日本 综合 | 亚洲美女免费精品视频在线观看 | 天天天干天天射天天天操 | 色狠狠干 | 久久精品第一页 | 中文字幕中文字幕 | 97超级碰 | 国产特级毛片aaaaaa毛片 | 欧美坐爱视频 | 天天想夜夜操 | 中文字幕日韩在线播放 | 久久综合九色综合久久久精品综合 | 久久国产影院 | 成人黄色av网站 | 中文欧美字幕免费 | 亚洲高清在线视频 | 欧美成天堂网地址 | 婷婷丁香在线观看 | 日本精品视频一区二区 | 国产精品网红福利 | 一级黄色片毛片 | 日韩欧美xx | 欧美精品在线观看免费 | 亚洲国产mv | 婷婷色六月天 | 中文字幕乱视频 | 欧美成亚洲 | 中文字幕在线高清 | 精品国产乱码久久久久久久 | 在线视频app | 五月天激情视频 | 亚洲经典中文字幕 | 伊人婷婷| 午夜在线观看一区 | a级国产乱理论片在线观看 特级毛片在线观看 | 97电影院网 | 国产第一页福利影院 | 亚洲 中文 欧美 日韩vr 在线 | 我要色综合天天 | 久久久观看| 白丝av免费观看 | 96精品视频 | 久久精品中文字幕少妇 | 91粉色视频 | 偷拍精品一区二区三区 | 精品欧美一区二区三区久久久 | 首页中文字幕 | 婷婷丁香色 | 免费精品在线观看 | 欧美久久久久久久久中文字幕 | 日韩大片在线观看 | 免费观看一区二区三区视频 |