精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Ansible條件判斷的介紹和使用

開源
在Ansible中,When是條件判斷的最常用關鍵字。如在安裝包的時候,需要指定主機的操作系統類型,可以使用when語句來做判斷。When關鍵字后面跟著的是Python的表達式,在表達式中你能夠使用任何的變量或者fact,當表達式的結果返回的是False,便會跳過本次的任務。

前言

很多時候,某些場景下playbook的結果依賴于變量、fact或者是前一個任務的執行結果,或者有的時候,我們會基于上一個task執行返回的結果而決定如何執行后續的task。這個時候就需要用到條件判斷。

條件語句在Ansible中的使用場景:

  • 在目標主機上定義了一個硬限制,比如:目標主機的發行版本必須是RedHat,才能執行該task。
  • 捕獲一個命令的輸出,根據命令輸出結果的不同以觸發不同的task。
  • 根據不同目標主機的facts,以定義不同的task。
  • 根據目標機的cpu或者memory的大小,對相關應用性能進行調優。
  • 用于判斷某個服務的配置文件是否發生變更,以確定是否需要重啟服務等。

下面就介紹一些常用的條件判斷。

when 關鍵字

1、when 關鍵字使用

在ansible中,when是條件判斷的最常用關鍵字。如在安裝包的時候,需要指定主機的操作系統類型,可以使用when語句來做判斷。when關鍵字后面跟著的是python的表達式,在表達式中你能夠使用任何的變量或者fact,當表達式的結果返回的是false,便會跳過本次的任務。

示例:

---
- name: install wget package
hosts: all
tasks:
- name: Install wget
yum:
name: wget
state: installed
when: ansible_os_family == "RedHat"

2、when 配合比較運算符

以上示例,我們使用了"=="的比較運算符,在ansible中,還支持如下比較運算符:

  • ==:比較兩個對象是否相等,相等則返回真。可用于比較字符串和數字
  • !=:比較兩個對象是否不等,不等則為真。

:比較兩個對象的大小,左邊的值大于右邊的值,則為真

  • <:比較兩個對象的大小,左邊的值小于右邊的值,則為真

=:比較兩個對象的大小,左邊的值大于等于右邊的值,則為真

  • <=:比較兩個對象的大小,左邊的值小于等于右邊的值,則為真

如:

when: ansible_disibution == "CentOS"
when: ansible_machine == "x86_64"
when: max_memory <= 512

3、邏輯運算符

  • and:邏輯與,當左邊和右邊兩個表達式同時為真,則返回真。
  • or:邏輯或,當左右和右邊兩個表達式任意一個為真,則返回真。
  • not:邏輯否,對表達式取反。
  • ():當一組表達式組合在一起,形成一個更大的表達式,組合內的所有表達式都是邏輯與的關系。
# 邏輯與
when: ansible_disibution == "CentOS" and ansible_disibution_major_vsion == "7"
# 邏輯或
when: ansible_disibution == "RedHat" or ansible_disibution == "Fedora"
when:
- ansible_disibution_vsion == "7.9"
- ansible_kernel == "3.10.0-327.el7.x86_64"
# 組合使用
when: =>
( ansible_disibution == "RedHat" and ansible_disibution_major_vsion == "7" )
or
( ansible_disibution == "Fedora" and ansible_disibution_major_vsion == "28")

示例:

- name: uninstall and stop forewalld
hosts: dbsrvs
tasks:
- name: uninstall firewalld
yum: pkg=firwalld state=absent
when: ansible_disibution == "CentOS" and ansible_disibution_major_vsion == "7"
tags: uninstall_firewalld

- name: stop and disabled iptables
shell: systemctl stop firewalld.service && systemctl disable firewalld && systemctl stop iptables && systemctl disable iptables
when: ansible_disibution == "CentOS" and ansible_disibution_major_vsion == "7"
tags: stop_firewalld
###
- name: restart httpd if postfix is running
hosts: dbsrvs
tasks:
- name: get postfix serv status
command: /usr/bin/systemctl is-active postfix
ignore_errors: yes
register: result
- name: restart apache httpd based on postfix status
service:
name: httpd
state: restarted
when: result.rc == 0

tests 配合條件判斷

通過條件語句判斷tpath的路徑是否存在。

- hosts: dbsrvs
vars:
tpath: /ayunwSky
tasks:
- debug:
msg: "file exist"
when: tpath is exists

參數解釋:

  • is exists: 用于路徑存在時返回真。
  • is not exists: 用于路徑不存在時返回真。
  • 也可以在整個條件表達式的前面使用not來取反。

- hosts: dbsrvs
vars:
tpath: /ayunwSky
tasks:
- debug:
msg: "file not exist"
when: not tpath is exists

除了 exists 方式以外,還有其他的判斷方式,如下:

判斷變量
  • defined:判斷變量是否已定義,已定義則返回真。
  • undefined:判斷變量是否未定義,未定義則返回真。
  • none:判斷變量的值是否為空,如果變量已定義且值為空,則返回真。
- hosts: dbsrvs
gather_facts: no
vars:
tvar: "test"
tvar1:
tasks:
- debug:
msg: "tvar is defined"
when: tvar is defined
- debug:
msg: "tvar2 is undefined"
when: tvar2 is undefined
- debug:
msg: "tvar1 is none"
when: tvar1 is none

判斷執行結果

  • sucess或succeeded:通過任務執行結果返回的信息判斷任務的執行狀態,任務執行成功則返回true。
  • failure或failed:任務執行失敗則返回true。
  • change或changed:任務執行狀態為changed則返回true。
  • skip或skipped:任務被跳過則返回true。
- hosts: dbsrvs
gather_facts: no
vars:
doshell: true
tasks:
- shell: 'cat /ayunwSky/allenjol'
when: doshell
register: result
ignore_errors: true
- debug:
msg: "success"
when: result is success
- debug:
msg: "failed"
when: result is failure
- debug:
msg: "changed"
when: result is change
- debug:
msg: "skip"
when: result is skip

判斷路徑

  • file:判斷指定路徑是否為一個文件,是則為真。
  • directory:判斷指定路徑是否為一個目錄,是則為真。
  • link:判斷指定路徑是否為一個軟鏈接,是則為真。
  • mount:判斷指定路徑是否為一個掛載點,是則為真。
  • exists:判斷指定路徑是否存在,存在則為真。

關于路徑的所有判斷均是判斷主控端上的路徑,而非被控端上的路徑。

- hosts: dbsrvs
gather_facts: no
vars:
tpath1: "/ayunwSky/allenjol"
tpath2: "/ayunwSky"
tasks:
- debug:
msg: "file"
when: tpath1 is file
- debug:
msg: "directory"
when: tpath2 is directory

判斷字符串

  • lower:判斷字符串中的所有字母是否都是小寫,是則為真。
  • upper:判斷字符串中的所有字母是否都是大寫,是則為真。
- hosts: dbsrvs
gather_facts: no
vars:
s1: "ayunw"
s2: "AYUNW"
tasks:
- debug:
msg: "s1 is all lowercase"
when: s1 is lower
- debug:
msg: "s2 is all uppercase"
when: s2 is upper

判斷整除

  • even:判斷數值是否為偶數,是則為真。
  • odd:判斷數值是否為奇數,是則為真。
  • divisibleby(n):判斷是否可以整除指定的數值,是則為真。
- hosts: dbsrvs
gather_facts: no
vars:
n1: 5
n2: 10
n3: 20
tasks:
- debug:
msg: "n1 is an even nber"
when: n1 is even
- debug:
msg: "n2 is an odd nber"
when: n2 is odd
- debug:
msg: "n3 can be divided exactly
when: n3 is divisibleby(3)

其他 tests 方法

  1. version:對比兩個版本號的大小,或者與指定的版本號進行對比,使用語法為vsion("版本號","比較操作符")。

version中使用的比較運算符說明:

  • 大于:>, gt
  • 大于等于:>=, ge
  • 小于:<, lt
  • 小于等于:<=, le
  • 等于:=, ==, eq
  • 不等于:!=, <>, ne
- hosts: dbsrvs
vars:
v1: 1.2
v2: 1.3
tasks:
- debug:
msg: "v1 is greater than v2"
when: v1 is vsion(v2,">")
- debug:
msg: "system vsion ` ansible_distribution_vsion ` greater than 7.3"
when: ansible_distribution_vsion is vsion("7.3","gt")
  1. superset: 判斷一個list是不是另一個list的父集。
- hosts: dbsrvs
gather_facts: no
vars:
a:
- 3
- 7
b: [1,3,4,5,7,9]
tasks:
- debug:
msg: "A is a subset of B"
when: a is subset(b)
- debug:
msg: "B is the parent set of A"
when: b is superset(a)
  1. in: 判斷一個字符串是否存在于另一個字符串中,也可用于判斷某個特定的值是否存在于列表中。
- hosts: dbsrvs
vars:
supported_distros:
- RedHat
- CentOS
tasks:
- debug:
msg: "` ansible_distribution ` in supported_distros"
when: ansible_distribution in supported_distros
  1. number: 判斷對象是否為一個數字,是則為真。
- hosts: dbsrvs
gather_facts: no
vars:
var1: 1
var2: "1"
var3: a
tasks:
- debug:
msg: "var1 is a number"
when: var1 is number
- debug:
msg: "var2 is a string"
when: var2 is string
- debug:
msg: "var3 is a string"
when: var3 is string

條件判斷與block

block

when做條件判斷時,如果條件成立則執行對應的任務。但這就存在一個問題:當我們要使用同一個條件判斷執行多個任務的時候,就意味著我們要在某一個任務下面都寫一下when語句,而且判斷條件完全一樣。這種方式非常麻煩。Ansible提供了一種更好的方式來解決這個問題,即block。

在ansible中,使用block將多個任務進行組合,當作一個整體。我們可以對這一個整體做條件判斷,當條件成立時,則執行塊中的所有任務:

使用block注意事項:

  • 可以為block定義name。
  • 可以直接對block使用when,但不能直接對block使用loop。
- hosts: dbsrvs
tasks:
- name: set /etc/resolv.conf
template:
src: resolv.conf.j2
dest: /etc/resolv.conf
owner: root
group: root
mode: 0644
- block:
- name: ensure /etc/resolvconf/resolv.conf.d/base file for ubuntu 16.04
template:
src: resolv.conf.j2
dest: /etc/resolvconf/resolv.conf.d/base

- name: config dns for ubuntu 16.04
template:
src: resolv.conf.j2
dest: /etc/resolv.conf
when: ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "16"

rescue

block除了能和when一起使用之外,還能作錯誤處理。這個時候就需要用到rescue關鍵字:

- hosts: dbsrvs
tasks:
- block:
- shell: 'ls /ayunwSky'
rescue:
- debug:
msg: '/ayunwSky is not exists'

當block中的任務執行失敗時,則運行rescue中的任務。如果block中的任務正常執行,則rescue的任務就不會被執行。如果block中有多個任務,則任何一個任務執行失敗,都會執行rescue。block中可以定義多個任務,同樣rescue當中也可以定義多個任務。

always

當block執行失敗時,rescue中的任務才會被執行;而無論block執行成功還是失敗,always中的任務都會被執行:

- hosts: dbsrvs
tasks:
- block:
- shell: 'ls /ayunwSky'
rescue:
- debug:
msg: '/ayunwSky is not exists'
always:
- debug:
msg: 'This task always executes'

條件判斷與錯誤處理

fail模塊

在shell中,可能會有這樣的需求:當腳本執行至某個階段時,需要對某個條件進行判斷,如果條件成立,則立即終止腳本的運行。在shell中,可以直接調用"exit"即可執行退出。事實上,在playbook中也有類似的模塊可以做這件事。即fail模塊。

fail模塊用于終止當前playbook的執行,通常與條件語句組合使用,當滿足條件時,終止當前play的運行。

fail模塊只有一個參數,即 msg:終止前打印出信息。

# 使用fail模塊中斷playbook輸出
- hosts: dbsrvs
tasks:
- shell: echo "Just a test--error"
register: result

- fail:
msg: "Conditions established,Interrupt running playbook"
when: "'error' in result.stdout"

- debug:
msg: "Inever execute,Because the playbook has stopped"

failed_when

當fail和when組合使用的時候,還有一個更簡單的寫法,即failed_when,當滿足某個條件時,ansible主動觸發失敗。

如果在command_result存在錯誤輸出,且錯誤輸出中,包含了FAILED字串,即返回失敗狀態:

- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"

直接通過fail模塊和when條件語句:

- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
ignore_errors: True

- name: fail the play if the previous command did not succeed
fail: msg="the command failed"
when: " command_result.stderr and 'FAILED' in command_result.stderr"
  • ansible一旦執行返回失敗,后續操作就會中止,所以failed_when通常可以用于滿足某種條件時主動中止playbook運行的一種方式。
  • ansible默認處理錯誤的機制是遇到錯誤就停止執行。但有些時候,有些錯誤是計劃之中的。我們希望忽略這些錯誤,以讓playbook繼續往下執行。此時可以使用ignore_errors忽略錯誤,從而讓playbook繼續往下執行。

changed_when

當我們控制一些遠程主機執行某些任務時,當任務在遠程主機上成功執行,狀態發生更改時,會返回changed狀態響應,狀態未發生更改時,會返回OK狀態響應,當任務被跳過時,會返回skipped狀態響應。我們可以通過changed_when來手動更改changed響應狀態。

- shell: /usr/bin/billybass --mode="take me to the river"
register: bass_result
# 該條task執行以后,bass_result.rc的值不為2時,才會返回changed狀態
changed_when: "bass_result.rc != 2"

# this will never report 'changed' status
- shell: wall 'beep'
# 當changed_when為false時,該條task在執行以后,永遠不會返回changed狀態
changed_when: False

循環語句中使用條件語句

  1. 只打印大于 10 的值。

tasks:
- command: echo ` item `
loop: [ 0, 2, 4, 6, 8, 10, 100, 130, 150 ]
when: item > 10

  1. 確保將mariadb-server安裝到根分區且根分區的可用空間要大于200M。

- name: install nginx if enough space on root
yum:
name: nginx
state;latest
loop: "` ansible_mounts `"
when: item.mount == "/" and item.size_available > 200000000

以上就是大部分的判斷方法。

責任編輯:姜華 來源: 運維開發故事
相關推薦

2022-11-22 13:00:38

2022-11-24 06:58:44

Ansible

2010-03-02 11:32:39

Linux判斷符

2010-06-22 15:45:06

Autoconf使用

2020-01-02 19:00:05

AnsibleGitHubGitLab

2010-03-31 18:15:02

Oracle培訓

2022-11-25 07:59:02

SpringJava

2022-09-12 23:53:53

JavaScript條件判斷開發

2023-03-02 07:37:53

2023-12-11 18:15:46

AnsibleMinikubeKubernetes

2010-10-22 11:47:30

sql server存

2009-07-07 16:05:15

Servlet和Jav

2019-06-06 08:50:20

TestinfraAnsible系統運維

2022-11-21 16:57:20

2010-11-26 10:37:14

MySQL多個條件判斷

2010-06-17 14:31:10

Rsync 使用

2021-10-14 09:55:28

AnsibleanacronLinux

2020-09-23 10:59:00

開發技能代碼

2009-07-06 15:31:42

JSP Action

2017-06-09 14:22:31

AnsibleTiDB分布式數據庫
點贊
收藏

51CTO技術棧公眾號

国模精品视频| 国产免费一区二区三区免费视频| 天堂成人娱乐在线视频免费播放网站 | 熟女视频一区二区三区| 欧美性受xxxx狂喷水| 日韩av一区二区三区四区| 久久精品人人做人人爽| 午夜视频在线观看国产| 久久亚洲精品中文字幕| 亚洲国产成人av网| 午夜老司机精品| 亚洲精品免费在线观看视频| 日韩精品一区第一页| 久久久久久高潮国产精品视| 亚洲无人区码一码二码三码的含义| 日韩一区网站| 欧美三级在线看| 可以在线看的av网站| 黄网站在线播放| 久久精品在这里| 国产精品成人观看视频免费| 亚洲一区中文字幕永久在线| 久久国产直播| 97视频在线观看成人| 国产一区二区三区在线视频观看| 自拍视频一区| 日韩av在线直播| 三级黄色片免费看| 激情久久一区二区| 日本高清不卡一区| 日韩少妇内射免费播放18禁裸乳| a视频在线观看| 国产精品久久久久久久久免费桃花 | www.好吊色| 免费观看在线综合| 秋霞成人午夜鲁丝一区二区三区| 久久精品视频国产| 欧美女人交a| 美乳少妇欧美精品| 亚洲xxxx3d动漫| 国产韩国精品一区二区三区| 在线观看日韩视频| 午夜影院黄色片| 国内精品久久久久久久影视简单 | 网友自拍视频在线| 欧美激情综合五月色丁香小说| 久久久久久久久久久久久久久久av | 欧美黄色片在线观看| 国产这里有精品| 一个色综合网| 欧美精品日韩www.p站| 性色av无码久久一区二区三区| 91精品婷婷色在线观看| 久久成人人人人精品欧| 男女性高潮免费网站| 欧美激情1区| 欧美国产日韩中文字幕在线| 欧美日韩成人免费观看| 国产一区清纯| 午夜精品一区二区三区视频免费看| 免费无遮挡无码永久在线观看视频 | 中文字幕日韩欧美在线视频| 999久久久国产| 亚洲国产精品91| 欧美丰满少妇xxxxx| 国产精品成人网站| 亚洲专区免费| 国产精品99久久99久久久二8| 成年人视频免费| 久久99精品久久久久久动态图| 成人在线一区二区| 亚洲国产精品久久人人爱潘金莲| 成人精品小蝌蚪| 欧美精品尤物在线| 在线观看的av| 一区二区三区日韩在线观看| 黄色一级在线视频| av免费在线一区| 欧美一级日韩一级| 五月开心播播网| 成人情趣视频网站| 久久99精品久久久久久琪琪| 天天操天天操天天操天天| 全国精品久久少妇| 成人午夜影院在线观看| 欧美成人片在线| 亚洲欧美偷拍卡通变态| 男女视频网站在线观看| 久久久加勒比| 日韩欧美久久久| 日韩乱码人妻无码中文字幕久久| 99欧美视频| 2021国产精品视频| 97超碰人人模人人人爽人人爱| 成人免费毛片高清视频| 性欧美大战久久久久久久免费观看| 黄色网页在线免费看| 欧美日韩视频在线| 国产精品久久久久久9999| 日韩三级av| 久久亚洲欧美日韩精品专区| 超碰超碰超碰超碰| 国产成人在线观看免费网站| 日本高清不卡一区二区三| 亚洲制服国产| 欧美中文一区二区三区| 老司机午夜免费福利| 强伦人妻一区二区三区| 成人在线免费视频| 亚洲一二三区视频在线观看| 欧美伦理片在线看| 亚洲精品在线a| 一区二区三区亚洲| 在线观看亚洲欧美| 国产精品亚洲一区二区三区妖精| 日韩福利一区二区三区| 欧美日韩在线观看首页| 日韩一级片在线播放| 精品在线观看一区| 男人天堂欧美日韩| 国产伦精品一区二区三区照片91 | 欧美有码在线视频| 午夜精品小视频| 18成人在线视频| 91日韩视频在线观看| 自拍视频一区| 日本不卡免费高清视频| 黄色av网址在线| 亚洲精品老司机| 亚洲精品成人在线播放| 精品久久一区| 国产精品爱久久久久久久| 色哟哟国产精品色哟哟| 亚洲一区视频在线观看视频| 四川一级毛毛片| 国产精品成人a在线观看| 国产精品麻豆va在线播放| 欧美色18zzzzxxxxx| 精品成人国产在线观看男人呻吟| 女同性αv亚洲女同志| 中文字幕亚洲精品乱码| 91精品视频在线播放| 黄网站视频在线观看| 欧美日韩黄色影视| 91制片厂在线| 韩国一区二区在线观看| 男女激烈动态图| 玖玖玖电影综合影院| 久久久久北条麻妃免费看| 国产精品国产一区二区三区四区 | 成人福利视频网站| 国产一区二区三区小说| 91综合精品国产丝袜长腿久久| 欧美激情精品久久久久久蜜臀| www.热久久| 亚洲妇女屁股眼交7| 先锋资源av在线| 免播放器亚洲| 日韩欧美在线一区二区| 999久久久国产999久久久| 久久97精品久久久久久久不卡 | 只有精品亚洲| 欧美日韩成人黄色| 色一情一乱一区二区三区| 一本大道av伊人久久综合| 色欲AV无码精品一区二区久久| 麻豆精品新av中文字幕| 成年人视频大全| 欧美日韩在线视频一区二区三区| 伊人国产精品| 久操成人在线视频| 日本一级在线观看| 欧美日韩亚洲丝袜制服| 欧美成人一区二区三区高清| 成人黄色av电影| 黄色三级视频片| 久久精品久久久| 国产日韩欧美亚洲一区| 日本黄色一区| 欧美理论片在线观看| 香蕉视频黄在线观看| 欧美影院一区二区三区| 我家有个日本女人| 久久亚洲二区三区| 天天干天天色天天干| 国产欧美一区二区色老头| 亚洲7777| 国语一区二区三区| 国产精品视频男人的天堂| 免费在线播放电影| 亚洲国产一区二区三区在线观看| 国语对白做受69按摩| 一区二区三区国产豹纹内裤在线| 精品人妻一区二区三区视频| 国产一二精品视频| 鲁一鲁一鲁一鲁一澡| 一区二区电影| 日韩hmxxxx| 亚洲专区**| 国产精品专区第二| 理论不卡电影大全神| 久久精品国产视频| 欧美色图另类| 亚洲第一在线视频| 国产精品熟女久久久久久| 欧美日韩在线视频一区二区| 欧美性猛交xxxxx少妇| 国产人成亚洲第一网站在线播放 | 91麻豆国产视频| 精品久久久久久久久久久| 欧美大片xxxx| 欧美激情一区二区三区蜜桃视频 | 亚瑟一区二区三区四区| 亚洲淫片在线视频| 欧美高清xxx| 日韩av电影手机在线观看| 国产福利在线免费观看| 裸体女人亚洲精品一区| 69久久精品| 国产亚洲综合久久| 日韩精品系列| 亚洲精品美女久久| 日本激情一区二区| 精品三级在线看| 国产叼嘿视频在线观看| 6080午夜不卡| 夜夜躁很很躁日日躁麻豆| 在线欧美小视频| 精品免费囯产一区二区三区| 午夜视频一区二区| 国产一级做a爰片在线看免费| 亚洲欧美日韩在线| 国产suv一区二区三区| 亚洲天堂2014| 顶臀精品视频www| |精品福利一区二区三区| 成人三级视频在线观看| 中文字幕精品在线不卡| 精品日韩在线视频| 中文字幕欧美激情一区| 婷婷综合在线视频| 国产精品久久二区二区| 呻吟揉丰满对白91乃国产区| 国产精品日产欧美久久久久| 亚洲不卡的av| 亚洲日本护士毛茸茸| 少妇人妻丰满做爰xxx| 亚洲欧美日韩小说| 久久亚洲AV无码| 亚洲高清免费视频| 全部毛片永久免费看| 日韩欧美国产高清91| 区一区二在线观看| 欧美网站一区二区| 136福利视频导航| 日韩免费电影一区| 熟妇人妻一区二区三区四区| 亚洲精品小视频| www.视频在线.com| 久久久91精品国产| 国产经典三级在线| 欧美在线xxx| 草民电影神马电影一区二区| 成人情趣片在线观看免费| 日韩一区二区三区精品| 久久99九九| 欧洲激情视频| 中文字幕精品在线播放| 亚洲第一黄色| 宅男噜噜噜66国产免费观看| 久久99最新地址| 波多野吉衣在线视频| 26uuu国产日韩综合| 超碰人人人人人人人| 亚洲一区日韩精品中文字幕| 伊人手机在线视频| 欧美丰满美乳xxx高潮www| 后进极品白嫩翘臀在线视频| 国产婷婷成人久久av免费高清| 77777影视视频在线观看| 欧美精品在线观看| 在线成人av观看| 91久久精品美女| 日韩手机在线| 91视频成人免费| 噜噜噜躁狠狠躁狠狠精品视频| 91福利免费观看| 91蜜桃传媒精品久久久一区二区| 国产wwwwxxxx| 精品国产乱码久久久久久天美| 中国一级特黄视频| 欧美精品一区二区三区高清aⅴ| 国产女人在线观看| 欧美激情精品久久久久| 国精产品一区二区三区有限公司| 成人欧美一区二区三区黑人免费| 精品香蕉视频| 国内精品视频一区二区三区| 久久国内精品视频| 国产ts丝袜人妖系列视频| 亚洲免费av观看| 日韩乱码一区二区三区| 亚洲成人久久网| 成人毛片av在线| 国产精品久久久久久久美男| 欧美理伦片在线播放| 91国在线高清视频| 日韩电影一区二区三区四区| 久久一区二区电影| 一区二区欧美在线观看| 中文字幕一区二区久久人妻| 日韩黄色高清视频| 波多野结衣中文在线| 亚洲va欧美va国产综合久久| 日韩欧美综合| 少妇人妻互换不带套| 2024国产精品| 中国一级特黄毛片| 精品国免费一区二区三区| 黄色成人影院| 国产精品综合久久久| 精品国产99| 黄色片视频在线播放| 99久久精品免费看| 精品视频一区二区在线观看| 欧美一级一区二区| a级网站在线播放| 成人av在线亚洲| 久久中文字幕av| 污片在线免费看| 国产三级欧美三级日产三级99| 激情视频网站在线观看| 亚洲人成伊人成综合网久久久| 爱啪视频在线观看视频免费| 99精彩视频| 韩国欧美一区| 日本五十肥熟交尾| 亚洲国产另类精品专区| 国产1区在线观看| 久久久久久免费精品| 国产精东传媒成人av电影| 日韩日韩日韩日韩日韩| 成人综合婷婷国产精品久久蜜臀 | 亚洲久久一区二区| 小毛片在线观看| 欧美色图在线视频| 欧洲亚洲精品视频| 国产精品久久久久av| 青青草原综合久久大伊人精品| 国产wwwxx| 亚洲女厕所小便bbb| 亚洲av无码一区二区乱子伦| 久久久久在线观看| 在线成人动漫av| 在线视频日韩一区| 亚洲欧洲成人精品av97| 精品国产无码一区二区三区| 久久久视频免费观看| 亚洲三级精品| 婷婷丁香激情网| 亚洲欧美二区三区| 内射无码专区久久亚洲| 日韩av日韩在线观看| 日韩系列欧美系列| 伊人成人免费视频| 午夜精品在线视频一区| 免费a级毛片在线观看| 国产精品亚洲精品| 欧美成人久久| 国内精品久久99人妻无码| 在线观看一区日韩| 自由的xxxx在线视频| 精品在线一区| 久久国产福利国产秒拍| 精品深夜av无码一区二区老年| 亚洲日韩欧美视频一区| 精品一区视频| 干日本少妇首页| 亚洲丝袜精品丝袜在线| 天天摸天天干天天操| 国产日韩欧美夫妻视频在线观看 | 国产精品久久久久久av福利软件| 66视频精品| 国产手机在线观看| 91精品国产综合久久久蜜臀粉嫩| а√在线天堂官网| 在线码字幕一区| 97精品视频在线观看自产线路二| 中文字幕+乱码+中文字幕明步| 欧美精品videos另类日本| 不卡在线一区| 在线观看av中文字幕| 6080国产精品一区二区| 女生影院久久| 亚洲理论电影在线观看| 国产精品毛片大码女人| 天天综合网在线观看| 91丝袜美腿美女视频网站| 欧美专区18| 精品一级少妇久久久久久久|