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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux随笔15-Ubuntu20.04允许root用户图形界面登录、chrony局域网时间同步服务、ipxe实现系统自动化安装

發布時間:2023/12/10 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux随笔15-Ubuntu20.04允许root用户图形界面登录、chrony局域网时间同步服务、ipxe实现系统自动化安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Contents

  • 1. Ubuntu20.04-LTS允許root在圖形界面登錄
    • 1.1. Ubuntu Server 20.04安裝GNome圖形環境
    • 1.2. 允許root用戶在圖形界面登錄
    • 1.3. 總結
  • 2. chrony局域網時間同步
    • 2.1. 設置NTP服務器
    • 2.2. 設置NTP客戶端
  • 3. kvm-qemu環境通過ipxe實現CentOS7系統自動化安裝
    • 3.1. iPXE介紹
    • 3.2. iPXE環境準備
    • 3.3. 通過iPXE安裝系統
  • 4. References

1. Ubuntu20.04-LTS允許root在圖形界面登錄

Ubuntu默認是不允許root用戶在圖形界面直接登錄的,至于原因,在 /var/log/auth.log 文件中有詳細的記載。由于我的虛擬機是采用的Ubuntu-20.04.2-live-server-amd64.iso安裝的,所以默認并沒有圖形界面。為此需要先準備圖形界面環境。

1.1. Ubuntu Server 20.04安裝GNome圖形環境

采用系統默認的軟件鏡像源,安裝GNome圖形環境有兩種方式:通過apt命令以及通過tasksel命令。

  • 通過apt命令安裝GNome環境
    通過apt install gnome gnome-session gdm3安裝即可,這種方式安裝的圖形界面環境由于只安裝圖形環境相關的軟件包,所以消耗的資源更少一些,對于一些軟件,也是沒有直接被安裝上的。安裝過程大致如下:root@ubuntu20u04:~# apt install gnome gnome-session gdm3 ... aspell-autobuildhash: processing: en [en_GB-ize-wo_accents-only]. aspell-autobuildhash: processing: en [en_GB-variant_0]. aspell-autobuildhash: processing: en [en_GB-variant_1]. aspell-autobuildhash: processing: en [en_US-w_accents-only]. aspell-autobuildhash: processing: en [en_US-wo_accents-only]. Processing triggers for rygel (0.38.3-1ubuntu1) ... Processing triggers for libgdk-pixbuf2.0-0:amd64 (2.40.0+dfsg-3ubuntu0.2) ... Processing triggers for libc-bin (2.31-0ubuntu9.2) ... Processing triggers for dbus (1.12.16-2ubuntu2.1) ... Processing triggers for systemd (245.4-4ubuntu3.4) ... Processing triggers for sgml-base (1.29.1) ... root@ubuntu20u04:~# 等待上述命令執行完成即可。
  • 通過tasksel命令安裝GNome環境
    使用tasksel命令可以安裝完整的GNome圖形環境。先確認下系統是否已經安裝了該命令,如果沒有安裝該命令,需要執行apt install tasksel安裝這個命令。具體如下所示:root@ubuntu20u04:~# dpkg -l | egrep tasksel ii tasksel 3.34ubuntu16 all tool for selecting tasks for installation on Debian systems ii tasksel-data 3.34ubuntu16 all official tasks used for installation of Debian systems root@ubuntu20u04:~# 這個命令的使用幫助信息,如下所示:root@ubuntu20u04:~# tasksel --help Unknown option: help Usage: tasksel install <task>... tasksel remove <task>... tasksel [options] -t, --test test mode; don't really do anything--new-install automatically install some tasks--list-tasks list tasks that would be displayed and exit--task-packages list available packages in a task--task-desc returns the description of a task root@ubuntu20u04:~# 然后使用這個命令安裝完整的GNome圖形桌面環境,具體如下所示:root@ubuntu20u04:~# tasksel --list-tasks | egrep desktop u kubuntu-desktop Kubuntu desktop u lubuntu-desktop Lubuntu Desktop u ubuntu-budgie-desktop Ubuntu Budgie desktop u ubuntu-desktop Ubuntu desktop u ubuntu-desktop-default-languages Ubuntu desktop default languages u ubuntu-desktop-minimal Ubuntu minimal desktop u ubuntu-desktop-minimal-default-languages Ubuntu minimal desktop default languages u ubuntu-mate-desktop Ubuntu MATE desktop u ubuntustudio-desktop Ubuntu Studio desktop u ubuntustudio-desktop-core Ubuntu Studio minimal DE installation u xubuntu-desktop Xubuntu desktop root@ubuntu20u04:~# 上述列出了可以安裝的GNome圖形環境,其中 ubuntu-desktop 這個是我們需要安裝的,執行如下命令進行安裝:root@ubuntu20u04:~# tasksel install ubuntu-desktop xserver-xorg install root@ubuntu20u04:~# 執行完上述命令之后,如下圖所示:
    執行完成,即可安裝完整的圖形界面,包含所需要的一些軟件也會被自動安裝上。
  • 執行完上述操作之后,才是重啟系統仍然會進入圖形界面。要自動進入圖形界面,需要修改運行級別。通過systemctl get-default命令可以查看系統的當前運行級別。通過systemctl set-default graphical.target命令可以設置系統的默認運行級別。通過systemctl list-units --type target命令可以列出系統已經裝載并且處于活動狀態的target對象(運行級別)都有哪些,具體如下所示:

    root@ubuntu20u04:~# systemctl list-units --type targetUNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Local Encrypted Volumes getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network-pre.target loaded active active Network (Pre) network.target loaded active active Network nss-lookup.target loaded active active Host and Network Name Lookupsnss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems rpcbind.target loaded active active RPC Port Mapper slices.target loaded active active Slices sockets.target loaded active active Sockets sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization time-set.target loaded active active System Time Set time-sync.target loaded active active System Time Synchronized timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type.24 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'. root@ubuntu20u04:~# root@ubuntu20u04:~# systemctl get-default multi-user.target root@ubuntu20u04:~# systemctl set-default graphical.target Created symlink /etc/systemd/system/default.target → /lib/systemd/system/graphical.target. root@ubuntu20u04:~# ls /etc/systemd/system/default.target -lh lrwxrwxrwx 1 root root 36 Jun 26 10:36 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target root@ubuntu20u04:~# systemctl reboot

    從上述輸出中可以看出,將graphical.target設置為默認的運行級別的結果就是再 /etc/systemd/system/ 這個目錄中創建一個符號鏈接文件,該符號鏈接文件指向 /lib/systemd/system/graphical.target 這個文件。
    設置完成之后,重啟系統即可進入圖形界面環境。

    1.2. 允許root用戶在圖形界面登錄

    在virtual-manager中打開對應的ubuntu虛擬機,然后從圖形界面中輸入root用戶名進行登錄,具體如下:
    按下回車鍵之后,輸入密碼,此時提示如下所示:
    此時, /var/log/auth.log 中記錄的日志信息內容如下所示:

    root@ubuntu20u04:~# tail -n 10 /var/log/auth.log Jun 26 10:47:54 ubuntu20u04 gdm-password]: pam_succeed_if(gdm-password:auth): requirement "user != root" not met by user "root" Jun 26 10:47:54 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): Couldn't open /etc/securetty: No such file or directory Jun 26 10:48:16 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): conversation failed Jun 26 10:48:16 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): auth could not identify password for [root] Jun 26 10:48:21 ubuntu20u04 gdm-password]: pam_succeed_if(gdm-password:auth): requirement "user != root" not met by user "root" Jun 26 10:48:21 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): Couldn't open /etc/securetty: No such file or directory Jun 26 10:48:39 ubuntu20u04 sshd[6134]: Accepted publickey for root from 192.168.122.1 port 45498 ssh2: RSA SHA256:DfCJivRw5mAGd/V87lotYjyC+ULpoCLHbxrRPG2Hlgg Jun 26 10:48:39 ubuntu20u04 sshd[6134]: pam_unix(sshd:session): session opened for user root by (uid=0) Jun 26 10:48:39 ubuntu20u04 systemd-logind[896]: New session 2 of user root. Jun 26 10:48:39 ubuntu20u04 systemd: pam_unix(systemd-user:session): session opened for user root by (uid=0) root@ubuntu20u04:~#

    上述日志輸出中提示: pam_succeed_if(gdm-password:auth): requirement “user != root” not met by user "root" ,即pam_succeed_if這個pam模塊會對圖形界面登錄的用戶進行檢查,如果用戶名是root,那么就禁止該用戶登錄系統。所以需要在系統的pam配置文件目錄中找到記錄了 pam_succeed_if 這個模塊的配置文件。具體如下所示:

    root@ubuntu20u04:~# egrep -l 'pam_succeed_if' /etc/pam.d/* /etc/pam.d/gdm-autologin /etc/pam.d/gdm-fingerprint /etc/pam.d/gdm-password root@ubuntu20u04:~#

    上述輸出顯示3個文件中均包含這個模塊,分別查看下3個模塊中的具體相關參數,如下所示:

    root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-autologin auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-fingerprint auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-password auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~#

    將上述3個文件中的對應行注釋掉,如下所示:

    root@ubuntu20u04:~# sed -n -re '/pam_succeed_if/s/^/#/p' /etc/pam.d/gdm-password #auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~# sed -i.bak -re '/pam_succeed_if/s/^/#/' /etc/pam.d/gdm-password root@ubuntu20u04:~# sed -i.bak -re '/pam_succeed_if/s/^/#/' /etc/pam.d/gdm-fingerprint root@ubuntu20u04:~# sed -i.bak -re '/pam_succeed_if/s/^/#/' /etc/pam.d/gdm-autologin root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-autologin #auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-fingerprint #auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~# egrep -o '.*pam_succeed_if.*' /etc/pam.d/gdm-password #auth required pam_succeed_if.so user != root quiet_success root@ubuntu20u04:~#

    此時再次嘗試在圖形界面登錄,并觀察 /var/log/auth.log 文件的內容變化:

    root@ubuntu20u04:~# tail -f /var/log/auth.log Jun 26 14:53:21 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): Couldn't open /etc/securetty: No such file or directory Jun 26 14:53:23 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): Couldn't open /etc/securetty: No such file or directory Jun 26 14:53:23 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=root Jun 26 14:53:27 ubuntu20u04 gdm-password]: pam_unix(gdm-password:auth): Couldn't open /etc/securetty: No such file or directory

    此時圖形界面登錄依然失敗,但是已經不再是pam_succeed_if這個模塊作祟了。提示沒有/etc/securetty這個文件,所以不給登錄。查看下哪個包提供了這個文件,然后安裝這個包

    root@ubuntu20u04:~# apt-file search /etc/securetty rear: /usr/share/rear/skel/Linux-ia64/etc/securetty root@ubuntu20u04:~# apt install rear Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:attr extlinux isolinux keyutils libisoburn1 libnfsidmap2 libtirpc-common libtirpc3 nfs-common rpcbind xorriso Suggested packages:watchdog xorriso-tcltk jigit cdck The following NEW packages will be installed:attr extlinux isolinux keyutils libisoburn1 libnfsidmap2 libtirpc-common libtirpc3 nfs-common rear rpcbind xorriso 0 upgraded, 12 newly installed, 0 to remove and 41 not upgraded. Need to get 1,696 kB of archives. After this operation, 6,702 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://cn.archive.ubuntu.com/ubuntu focal/main amd64 libtirpc-common all 1.2.5-1 [7,632 B] ... root@ubuntu20u04:~# cat /usr/share/rear/skel/Linux-ia64/etc/securetty console vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 vc/9 vc/10 vc/11 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 ttyS1 root@ubuntu20u04:~# cp /usr/share/rear/skel/Linux-ia64/etc/securetty /etc/securetty

    從上述輸出中可以看出,securetty 這個文件是由 rear 這個軟件包提供的,執行命令apt install rear安裝這個軟件包。然后將軟件包中提供的文件 /usr/share/rear/skel/Linux-ia64/etc/securetty 拷貝到 /etc/securetty 之后,再次嘗試再圖形界面以root身份登錄,此時可以正常登錄。具體如下所示:

    root@ubuntu20u04:~# tail -f /var/log/auth.log Jun 26 14:59:54 ubuntu20u04 gdm-password]: pam_unix(gdm-password:session): session opened for user root by (uid=0) Jun 26 14:59:54 ubuntu20u04 systemd-logind[927]: New session 8 of user root. Jun 26 14:59:54 ubuntu20u04 gdm-password]: gkr-pam: gnome-keyring-daemon started properly and unlocked keyring Jun 26 14:59:56 ubuntu20u04 gnome-keyring-daemon[11782]: The Secret Service was already initialized Jun 26 14:59:56 ubuntu20u04 gnome-keyring-daemon[11782]: The PKCS#11 component was already initialized Jun 26 14:59:57 ubuntu20u04 polkitd(authority=local): Registered Authentication Agent for unix-session:8 (system bus name :1.156 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) Jun 26 15:00:01 ubuntu20u04 CRON[12389]: pam_unix(cron:session): session opened for user root by (uid=0) Jun 26 15:00:01 ubuntu20u04 CRON[12389]: pam_unix(cron:session): session closed for user root Jun 26 15:00:03 ubuntu20u04 gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session closed for user gdm Jun 26 15:00:03 ubuntu20u04 systemd-logind[927]: Session c2 logged out. Waiting for processes to exit. Jun 26 15:00:03 ubuntu20u04 systemd-logind[927]: Removed session c2. Jun 26 15:00:03 ubuntu20u04 polkitd(authority=local): Unregistered Authentication Agent for unix-session:c2 (system bus name :1.132, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus) Jun 26 15:00:08 ubuntu20u04 dbus-daemon[905]: [system] Failed to activate service 'org.bluez': timed out (service_start_timeout=25000ms)

    如下圖所示:

    1.3. 總結

    為了使root用戶能在圖形界面中登錄,需要做如下操作:

  • 將/etc/pam.d/目錄下配置了 pam_succeed_if模塊的文件中這一行注釋
  • 執行apt install rear命令安裝rear這個軟件包
  • 將rear軟件包提供的/usr/share/rear/skel/Linux-ia64/etc/securetty文件拷貝為/etc/securetty
  • 完成上述3步之后,由于pam模塊的配置文件修改是即時生效的,所以無需重啟系統即可實現root用戶的圖形界面登錄。

    2. chrony局域網時間同步

    集群環境中的各個服務器之間要共同實現一些操作,最基本的需求就是要一致的時間。為此就需要在集群中設置時間同步服務器。RHEL/CentOS7.x開始,從默認的ntp服務切換為chronyd服務來實現時間同步。雖然服務名稱不一樣了,但是底層協議都是ntp協議,配置文件內容基本是一樣的。

    為了避免單點故障,集群環境中,通常將2臺服務器作為NTP服務器,從互聯網上同步時間,其他服務器從這兩臺服務器上同步時間。所以此處的實驗以3臺服務器來模擬時間同步服務的配置。三臺服務器的角色描述如下表:

    ServerRoleDescription
    c7u6s1ntp服務器從互聯網同步時間
    c7u6s2ntp服務器從互聯網同步時間
    c7u6s3ntp客戶端從c7u6s1和c7u6s2同步時間

    要實現該服務,需要確保各個節點上都已經安裝了chrony這個軟件包。其中提供了 chrony.conf 這個配置文件,以及服務后臺命令chronyd以及用戶交互命令chronyc。具體如下所示:

    [root@c7u6s1 security]# rpm -qa | egrep chrony chrony-3.2-2.el7.x86_64 [root@c7u6s1 security]# rpm -ql chrony /etc/NetworkManager/dispatcher.d/20-chrony /etc/chrony.conf /etc/chrony.keys /etc/dhcp/dhclient.d/chrony.sh /etc/logrotate.d/chrony /etc/sysconfig/chronyd /usr/bin/chronyc /usr/lib/systemd/ntp-units.d/50-chronyd.list /usr/lib/systemd/system/chrony-dnssrv@.service /usr/lib/systemd/system/chrony-dnssrv@.timer /usr/lib/systemd/system/chrony-wait.service /usr/lib/systemd/system/chronyd.service /usr/libexec/chrony-helper /usr/sbin/chronyd /usr/share/doc/chrony-3.2 /usr/share/doc/chrony-3.2/COPYING /usr/share/doc/chrony-3.2/FAQ /usr/share/doc/chrony-3.2/NEWS /usr/share/doc/chrony-3.2/README /usr/share/man/man1/chronyc.1.gz /usr/share/man/man5/chrony.conf.5.gz /usr/share/man/man8/chronyd.8.gz /var/lib/chrony /var/lib/chrony/drift /var/lib/chrony/rtc /var/log/chrony [root@c7u6s1 security]#

    接下來分別設置NTP的服務器和客戶端。

    2.1. 設置NTP服務器

    修改配置文件 /etc/chrony.conf ,添加國內的互聯網時間服務器。具體如下所示:

    [root@c7u6s1 security]# vim /etc/chrony.conf [root@c7u6s1 security]# cat /etc/chrony.conf | egrep '^[^#$].*' pool cn.pool.ntp.org iburst maxsources 4 server ntp.aliyun.com iburst server s1a.time.edu.cn iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.122.0/24 local stratum 10 logdir /var/log/chrony [root@c7u6s1 security]#

    上述輸出中過濾掉了注釋和空行之后的有效配置內容,前3行增加了1個時間池和2個時間服務器(阿里云的時間服務器和北京郵電大學的時間服務器)。然后接下來在allow 192.168.122.0/24這一行指定了哪些主機可以連接到這個服務器同步時間,指定了192.168.122.0/24這個網段的主機可以連接到c7u6s1上進行時間同步。由于c7u6s1要當作內網的NTP服務器,建議開啟local stratum 10這一行,表示即便c7u6s1與互聯網時間服務器之間的時間同步操作失敗,也允許客戶端從該服務器進行時間同步。
    修改完配置文件之后,重啟服務,然后查看時間源信息,具體如下所示:

    [root@c7u6s1 security]# systemctl restart chronyd [root@c7u6s1 security]# ping ntp.aliyun.com PING ntp.aliyun.com (203.107.6.88) 56(84) bytes of data. 64 bytes from 203.107.6.88 (203.107.6.88): icmp_seq=1 ttl=51 time=29.4 ms 64 bytes from 203.107.6.88 (203.107.6.88): icmp_seq=2 ttl=51 time=29.0 ms ^C --- ntp.aliyun.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 2583ms rtt min/avg/max/mdev = 29.023/29.214/29.405/0.191 ms [root@c7u6s1 security]# chronyc tracking Reference ID : CB6B0658 (203.107.6.88) Stratum : 3 Ref time (UTC) : Sat Jun 26 09:44:54 2021 System time : 0.000702305 seconds slow of NTP time Last offset : -0.001336256 seconds RMS offset : 0.001336256 seconds Frequency : 5.367 ppm slow Residual freq : -15.310 ppm Skew : 1.079 ppm Root delay : 0.042845245 seconds Root dispersion : 0.002002266 seconds Update interval : 64.4 seconds Leap status : Normal [root@c7u6s1 security]# chronyc sources 210 Number of sources = 6 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- time.cloudflare.com 3 6 37 50 -2662us[-2662us] +/- 103ms ^- undefined.hostname.local> 2 6 57 48 +5540us[+5540us] +/- 124ms ^- ntp1.flashdance.cx 2 6 37 51 -17ms[ -17ms] +/- 171ms ^- ntp7.flashdance.cx 2 6 35 114 -53ms[ -55ms] +/- 204ms ^* 203.107.6.88 2 6 37 52 -74us[-1411us] +/- 23ms ^? 60.10.112.202.in-addr.ar> 0 7 0 - +0ns[ +0ns] +/- 0ns [root@c7u6s1 security]# chronyc sources -v 210 Number of sources = 6.-- Source mode '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- time.cloudflare.com 3 6 37 59 -2662us[-2662us] +/- 103ms ^- undefined.hostname.local> 2 6 57 57 +5540us[+5540us] +/- 124ms ^- ntp1.flashdance.cx 2 6 37 60 -17ms[ -17ms] +/- 171ms ^- ntp7.flashdance.cx 2 6 35 123 -53ms[ -55ms] +/- 204ms ^* 203.107.6.88 2 6 37 61 -74us[-1411us] +/- 23ms ^? 60.10.112.202.in-addr.ar> 0 7 0 - +0ns[ +0ns] +/- 0ns [root@c7u6s1 security]#

    上述輸出內容記錄在圖片中,如下圖所示:
    ^*表示c7u6s1與這臺時間服務器進行了時間同步,從上圖中可以看出IP地址是203.107.6.88,對應的域名是ntp.aliyun.com。即c7u6s1與ntp.aliyun.com這臺時間服務器進行了時間同步。
    上圖中各個域的符號含義解釋如下:

    第一列的 MS 的含義是時間源的模式(M)以及時間源的狀態(S),其中M支持的符號有3種,分別如下所示:

    • ^: 表示時間服務器
    • =: 表示同級時間服務器(peer)
    • #: 表示已經連接的局域網參考時間()
      S支持的額符號有6種,分別如下所示:
    • *: 表示當前已經完成了與該時間源的時間同步
    • +: 表示可接受的時間源,可以與已經選擇的時間源進行組合的(combined)時間源
    • -: 表示非組合的(not combined),即雖然是可接受的時間源,但是被組合算法排斥的時間源
    • ?: 表示該時間源不可達,即該時間源的連接丟失,或者到該時間源發送的數據包沒有通過全部測試,這種狀態通常出現在剛啟動的時候,直到從該時間源接受了至少3次嘗試(samples)
    • x: 表示該時間源的時間可能存在錯誤(即chronyd認為該時間源與其他主要的時間源之間存在時間不一致的情況)
    • ~: 表示時間頻繁變動(time too variable),即該時間源的時間不穩定

    上述輸出顯示,c7u6s1已經與阿里云的時間源完成了時間同步。查看chronyd服務是否處于開機自動運行狀態,如果沒有處于enabled狀態,那么需要執行命令systemctl enable chronyd將其設置為開機自動啟動。具體如下所示:

    [root@c7u6s1 security]# systemctl status chronyd . chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2021-06-26 17:43:35 CST; 26min agoDocs: man:chronyd(8)man:chrony.conf(5)Process: 9358 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)Process: 9354 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 9356 (chronyd)CGroup: /system.slice/chronyd.service└─9356 /usr/sbin/chronydJun 26 17:43:35 c7u6s1 systemd[1]: Stopped NTP client/server. Jun 26 17:43:35 c7u6s1 systemd[1]: Starting NTP client/server... Jun 26 17:43:35 c7u6s1 chronyd[9356]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +A... +DEBUG) Jun 26 17:43:35 c7u6s1 chronyd[9356]: Frequency -5.366 +/- 0.975 ppm read from /var/lib/chrony/drift Jun 26 17:43:35 c7u6s1 systemd[1]: Started NTP client/server. Jun 26 17:43:49 c7u6s1 chronyd[9356]: Selected source 162.159.200.1 Jun 26 17:43:50 c7u6s1 chronyd[9356]: Selected source 203.107.6.88 Jun 26 17:46:06 c7u6s1 chronyd[9356]: Source 193.182.111.142 replaced with 139.199.215.251 Hint: Some lines were ellipsized, use -l to show in full. [root@c7u6s1 security]#

    上述輸出顯示,其處于開機自動運行狀態,所以無需執行systemctl enable chronyd命令。

    接下來備份另一臺NTP服務器的配置文件,并將 chrony.conf 這個配置文件拷貝過去,然后重啟chronyd服務。具體如下:

    在c7u6s2上備份配置文件

    [root@c7u6s2 ~]# mv /etc/chrony.conf{,.bak} [root@c7u6s2 ~]#

    將c7u6s1上的配置文件拷貝到c7u6s2

    [root@c7u6s1 security]# rsync -av --progress -e 'ssh -p 22 -l root' /etc/chrony.conf c7u6s2:/etc/ root@c7u6s2's password: sending incremental file list chrony.conf1,234 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)sent 1,331 bytes received 35 bytes 248.36 bytes/sec total size is 1,234 speedup is 0.90 [root@c7u6s1 security]#

    在c7u6s2上重啟chronyd這個服務

    [root@c7u6s2 ~]# systemctl restart chronyd [root@c7u6s2 ~]# systemctl status chronyd . chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2021-06-26 18:13:24 CST; 3s agoDocs: man:chronyd(8)man:chrony.conf(5)Process: 8903 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)Process: 8899 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 8901 (chronyd)CGroup: /system.slice/chronyd.service└─8901 /usr/sbin/chronydJun 26 18:13:24 c7u6s2 systemd[1]: Starting NTP client/server... Jun 26 18:13:24 c7u6s2 chronyd[8901]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +A... +DEBUG) Jun 26 18:13:24 c7u6s2 chronyd[8901]: Frequency -5.396 +/- 0.039 ppm read from /var/lib/chrony/drift Jun 26 18:13:24 c7u6s2 systemd[1]: Started NTP client/server. Hint: Some lines were ellipsized, use -l to show in full. [root@c7u6s2 ~]#

    chronyd服務也是處于開機自動運行狀態,所以無需執行systemctl enable chronyd命令。
    查看c7u6s2的時間源以及時間同步情況,具體如下所示:

    [root@c7u6s2 ~]# chronyc tracking Reference ID : CB6B0658 (203.107.6.88) Stratum : 3 Ref time (UTC) : Sat Jun 26 10:13:38 2021 System time : 0.000000175 seconds fast of NTP time Last offset : -0.000483101 seconds RMS offset : 0.000483101 seconds Frequency : 5.396 ppm slow Residual freq : -116.098 ppm Skew : 0.039 ppm Root delay : 0.040812578 seconds Root dispersion : 0.006072729 seconds Update interval : 0.0 seconds Leap status : Normal [root@c7u6s2 ~]# chronyc sources 210 Number of sources = 6 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- ntp1.flashdance.cx 2 6 17 47 -26ms[ -26ms] +/- 194ms ^- ntp.wdc1.us.leaseweb.net 2 6 17 47 +9726us[+9726us] +/- 237ms ^- time.cloudflare.com 3 6 17 48 -4287us[-4287us] +/- 104ms ^- 139.199.214.202 2 6 17 49 +6033us[+6033us] +/- 30ms ^* 203.107.6.88 2 6 17 51 -414us[ -897us] +/- 22ms ^? 60.10.112.202.in-addr.ar> 0 7 0 - +0ns[ +0ns] +/- 0ns [root@c7u6s2 ~]# chronyc sources -v 210 Number of sources = 6.-- Source mode '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- ntp1.flashdance.cx 2 6 17 59 -26ms[ -26ms] +/- 194ms ^- ntp.wdc1.us.leaseweb.net 2 6 17 59 +9726us[+9726us] +/- 237ms ^- time.cloudflare.com 3 6 17 60 -4287us[-4287us] +/- 104ms ^- 139.199.214.202 2 6 17 61 +6033us[+6033us] +/- 30ms ^* 203.107.6.88 2 6 17 61 -414us[ -897us] +/- 22ms ^? 60.10.112.202.in-addr.ar> 0 7 0 - +0ns[ +0ns] +/- 0ns [root@c7u6s2 ~]#

    c7u6s2同樣與阿里云的時間源完成了時間同步。

    至此,2臺局域網環境的時間服務器設置完成。接下來將這兩臺服務器作為內網集群的時間源,同步其他客戶端服務器的時間。

    2.2. 設置NTP客戶端

    將需要時間同步的客戶端的配置文件修改,注釋掉原有的時間服務器,然后將服務器指定為上述兩臺服務器的IP地址。具體如下所示:

    [root@c7u6s3 ~]# vim /etc/chrony.conf [root@c7u6s3 ~]# cat /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server 192.168.122.11 iburst server 192.168.122.12 iburst# Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 second. makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC). rtcsync# Enable hardware timestamping on all interfaces that support it. #hwtimestamp *# Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2# Allow NTP client access from local network. #allow 192.168.0.0/16# Serve time even if not synchronized to a time source. #local stratum 10# Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys# Specify directory for log files. logdir /var/log/chrony# Select which information is logged. #log measurements statistics tracking

    上述輸出的第9、10行即為新添加的內網NTP服務器的IP地址。接下來在客戶端上查看NTP服務器的時間源,具體如下所示:

    [root@c7u6s3 ~]# chronyc sources -v 210 Number of sources = 4.-- Source mode '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^+ tick.ntp.infomaniak.ch 1 10 377 792 +2963us[+3739us] +/- 68ms ^- time.cloudflare.com 3 10 377 710 -6278us[-5499us] +/- 102ms ^- time.cloudflare.com 3 10 377 804 -6067us[-5292us] +/- 102ms ^* 119.28.206.193 2 10 377 606 +355us[+1136us] +/- 48ms [root@c7u6s3 ~]# chronyc sources 210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^+ tick.ntp.infomaniak.ch 1 10 377 811 +2963us[+3739us] +/- 68ms ^- time.cloudflare.com 3 10 377 729 -6278us[-5499us] +/- 102ms ^- time.cloudflare.com 3 10 377 823 -6067us[-5292us] +/- 102ms ^* 119.28.206.193 2 10 377 625 +355us[+1136us] +/- 48ms [root@c7u6s3 ~]# !vim vim /etc/chrony.conf [root@c7u6s3 ~]# systemctl reload chronyd Failed to reload chronyd.service: Job type reload is not applicable for unit chronyd.service. See system logs and 'systemctl status chronyd.service' for details. [root@c7u6s3 ~]# systemctl restart chronyd [root@c7u6s3 ~]# chronyc sources 210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* c7u6s1.localhost 3 6 7 1 +289us[-4222us] +/- 20ms ^+ c7u6s2.localhost 3 6 7 1 -424us[-4935us] +/- 20ms [root@c7u6s3 ~]# [root@c7u6s3 ~]# chronyc sources -v 210 Number of sources = 2.-- Source mode '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* c7u6s1.localhost 3 6 377 45 +994us[ +996us] +/- 20ms ^+ c7u6s2.localhost 3 10 377 491 -1214us[-1223us] +/- 21ms [root@c7u6s3 ~]#

    從上述輸出種可以看出,在客戶端上修改了配置文件之后,也需要重啟chronyd,否則無法加載配置文件中更新的內容。從上述的時間源狀態中可以看出,c7u6s3已經與c7u6s1這臺時間源完成了時間同步。

    至此,集群環境的2臺時間源服務器和1臺客戶端配置操作就完成了。

    3. kvm-qemu環境通過ipxe實現CentOS7系統自動化安裝

    3.1. iPXE介紹

    iPXE是開源的網絡啟動固件,提供了增強版的PXE特性,比如:

    • 可以從http協議的web服務器上啟動系統
    • 可以從iSCSI的SAN存儲上啟動
    • 可以通過FCoE從Fibre Channel的SAN存儲上啟動
    • 可以從AoE SAN存儲上啟動
    • 可以從無線網絡啟動
    • 可以從廣域網啟動
    • 可以從Infiniband網絡啟動
    • 使用腳本控制啟動流程

    可以將iPXE燒錄到網卡的ROM芯片中替代原有的PXE;也可以通過chainload的形式在PXE的基礎上啟動系統,而無需將iPXE燒錄到網卡的ROM芯片中。

    下面將c7u6s1配置為iPXE服務器,通過c7u6s1安裝CentOS7.6系統。

    3.2. iPXE環境準備

    要準備iPXE環境,c7u6s1上需要啟動dhcpd、httpd以及tftp服務。其中dhcpd服務用于給新安裝的虛擬機分配IP地址,httpd服務用于提供kickstart文件以及安裝的軟件源,tftp服務用于提供啟動文件,比如此處的undionly.kpxe。

    接下來準備這些服務:

  • 安裝并啟動httpd服務[root@c7u6s1 tftpboot]# yum install -y httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.ustc.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package httpd-2.4.6-97.el7.centos.x86_64 already installed and latest version Nothing to do [root@c7u6s1 tftpboot]# [root@c7u6s1 tftpboot]# systemctl enable --now httpd [root@c7u6s1 tftpboot]# systemctl status httpd . httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-06-30 17:14:22 CST; 4h 5min agoDocs: man:httpd(8)man:apachectl(8)Main PID: 13209 (httpd)Status: "Total requests: 983; Current requests/sec: 0; Current traffic: 0 B/sec"CGroup: /system.slice/httpd.service├─13209 /usr/sbin/httpd -DFOREGROUND├─13210 /usr/sbin/httpd -DFOREGROUND├─13211 /usr/sbin/httpd -DFOREGROUND├─13212 /usr/sbin/httpd -DFOREGROUND├─13213 /usr/sbin/httpd -DFOREGROUND├─13214 /usr/sbin/httpd -DFOREGROUND└─13220 /usr/sbin/httpd -DFOREGROUNDJun 30 17:14:22 c7u6s1 systemd[1]: Starting The Apache HTTP Server... Jun 30 17:14:22 c7u6s1 systemd[1]: Started The Apache HTTP Server. [root@c7u6s1 tftpboot]#
  • 安裝并啟動dhcp
    dhcp服務需要做一些額外的配置,來配合iPXE啟動,需要在指定分配的IP地址范圍之外,將filename指定為 ***undionly.kpxe***這個文件,同時需要next-server指定tftp服務器的IP地址。具體如下所示:[root@c7u6s1 tftpboot]# yum install -y dhcp Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.bfsu.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package 12:dhcp-4.2.5-83.el7.centos.1.x86_64 already installed and latest version Nothing to do [root@c7u6s1 tftpboot]# systemctl enable --now dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants /dhcpd.service to /usr/lib/systemd/system/dhcpd.service. [root@c7u6s1 tftpboot]# systemctl status dhcpd . dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2021-06-30 16:41:17 CST; 4h 40min agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 12935 (dhcpd)Status: "Dispatching packets..."CGroup: /system.slice/dhcpd.service└─12935 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pidJun 30 21:17:14 c7u6s1 dhcpd[12935]: DHCPREQUEST for 192.168.122.105 from 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 21:17:17 c7u6s1 dhcpd[12935]: ns1.example.org: host unknown. Jun 30 21:17:19 c7u6s1 dhcpd[12935]: ns2.example.org: host unknown. Jun 30 21:17:19 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 21:17:19 c7u6s1 dhcpd[12935]: DHCPREQUEST for 192.168.122.105 from 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 21:17:19 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 21:21:21 c7u6s1 dhcpd[12935]: DHCPREQUEST for 192.168.122.105 from 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 21:21:24 c7u6s1 dhcpd[12935]: ns1.example.org: host unknown. Jun 30 21:21:27 c7u6s1 dhcpd[12935]: ns2.example.org: host unknown. Jun 30 21:21:27 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 [root@c7u6s1 tftpboot]# [root@c7u6s1 tftpboot]# cat /etc/dhcp/dhcpd.conf | egrep '^[^$|^#].*' option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.122.0 netmask 255.255.255.0 {range 192.168.122.100 192.168.122.150; option routers 192.168.122.1;filename "undionly.kpxe";next-server 192.168.122.11; } [root@c7u6s1 tftpboot]# 上述就是完整的dhcp服務配置文件的內容。此處
  • 安裝并啟動tftp-server[root@c7u6s1 tftpboot]# yum install -y tftp-server Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.ustc.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package tftp-server-5.2-22.el7.x86_64 already installed and latest version Nothing to do [root@c7u6s1 tftpboot]# vim /etc/xinetd.d/tftp [root@c7u6s1 tftpboot]# egrep disable /etc/xinetd.d/tftpdisable = no [root@c7u6s1 tftpboot]# systemctl enable --now tftp [root@c7u6s1 tftpboot]# systemctl status tftp . tftp.service - Tftp ServerLoaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)Active: active (running) since Wed 2021-06-30 21:24:57 CST; 3s agoDocs: man:in.tftpdMain PID: 14149 (in.tftpd)CGroup: /system.slice/tftp.service└─14149 /usr/sbin/in.tftpd -s /var/lib/tftpbootJun 30 21:24:57 c7u6s1 systemd[1]: Started Tftp Server. [root@c7u6s1 tftpboot]#
  • 上面的服務準備好之后,就需要準備iPXE實現自動啟動所需要的文件了。具體分為下面幾部分:

  • 網絡引導文件 undionly.kpxe(UEFI環境下為ipxe.efi),放置在/var/lib/tftpboot/這個目錄下面
  • 網絡引導文件關聯的iPXE腳本文件 boot.ipxe,一般放置在/var/www/html/目錄下面
  • 光盤鏡像文件,一般掛載在/var/www/html/下創建的與發行版相對應的目錄下,比如此處掛載在/var/www/html/centos7/iso/這個目錄下
  • kickstart自動應答文件,此處使用 c7u6_virt_host.cfg
  • 上述就是iPXE網絡自動安裝系統所需要準備的文件。其中第一個文件 undionly.kpxe 在系統軟件包有提供。但是使用這個默認提供的文件,會導致網絡引導階段的死循環。要使用默認提供的文件,需要執行下面的操作,安裝iPXE相關的軟件包。在c7u6s1虛擬機上安裝ipxe相關的軟件包,具體如下所示:

    [root@c7u6s1 tftpboot]# yum list | egrep '^ipxe.*' | gawk '{print $1}' | xargs -i yum install -y {} Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.bfsu.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package ipxe-bootimgs-20180825-3.git133f4c.el7.noarch already installed and latest version Nothing to do Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.ustc.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package ipxe-roms-20180825-3.git133f4c.el7.noarch already installed and latest version Nothing to do Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.163.com* epel: mirrors.ustc.edu.cn* extras: mirrors.163.com* updates: mirrors.163.com Package ipxe-roms-qemu-20180825-3.git133f4c.el7.noarch already installed and latest version Nothing to do [root@c7u6s1 tftpboot]#

    安裝好之后,由于此處使用BIOS的形式,而非UEFI,所以可以將/usr/share/ipxe/undionly.kpxe這個文件拷貝到tftp服務器的家目錄中。具體如下所示:

    [root@c7u6s1 tftpboot]# cp /usr/share/ipxe/undionly.kpxe .

    此時如果新建一個虛擬機并指定從網絡引導,會出現如下圖所示的情況:
    反復重復上述的過程。
    官方文檔提供了一種解決方案,就是自己編譯。具體過程如下所示:

    [root@c7u6s1 ~]# mkdir -p /root/softwares [root@c7u6s1 softwares]# git clone git://git.ipxe.org/ipxe.gi [root@c7u6s1 softwares]# cd src/config [root@c7u6s1 config]# for f in `ls *.h`; do ln -s `pwd`/$f `pwd`/local/$f; done

    上述第4條命令是在config目錄下的所有.h頭文件在config/local/目錄下創建對應的鏈接文件,否則下面編譯的時候會報錯。
    除此之外,還需要安裝開發環境,以及xz-devel。具體如下所示:

    [root@c7u6s1 config]# yum install @development xz-devel

    上述軟件包安裝完成之后,就可以著手編譯了。具體如下所示:

    #準備一個ipxe腳本文件,告知undionly.kpxe去哪里找網絡引導所需要的內核以及虛擬內存文件。 [root@c7u6s1 src]# pwd /root/softwares/ipxe/src [root@c7u6s1 src]# vim demo.ipxe [root@c7u6s1 src]# cat demo.ipxe #!ipxedhcp chain http://192.168.122.11/boot.ipxe [root@c7u6s1 src]# [root@c7u6s1 src]# make bin/undionly.kpxe EMBED=demo.ipxe

    上述的demo.ipxe文件中指定了引導腳本的路徑為c7u6s1(192.168.122.11)服務器上的web服務器根目錄下的boot.ipxe這個腳本文件。這個文件默認并不存在,需要后面創建。
    等待上述過程完成,在src/bin/目錄下就生成了對應的undionly.kpxe這個文件。然后將這個文件拷貝到/var/lib/tftpboot/目錄下。具體如下所示:

    [root@c7u6s1 src]# cp bin/undionly.kpxe /var/lib/tftpboot/

    接下來準備boot.ipxe這個iPXE腳本文件,具體如下所示:

    [root@c7u6s1 src]# pwd /root/softwares/ipxe/src [root@c7u6s1 src]# cd /var/www/html/ [root@c7u6s1 html]# vim boot.ipxe [root@c7u6s1 html]# cat boot.ipxe #!ipxe:start menu PXE Boot Options item shell iPXE shell item centos7-net CentOS 7 installation item exit Exit to BIOSchoose --default centos7-net --timeout 6000 option && goto ${option}:shell shell:centos7-net set server_root http://192.168.122.11/centos7 initrd ${server_root}/iso/images/pxeboot/initrd.img #kernel ${server_root}/iso/images/pxeboot/vmlinuz inst.repo=${server_root}/ ip=dhcp ipv6.disable initrd=initrd.img inst.geoloc=0 devfs=nomount kernel ${server_root}/iso/images/pxeboot/vmlinuz inst.ks=${server_root}/c7u6_virt_host.cfg ip=dhcp ipv6.disable initrd=initrd.img inst.geoloc=0 devfs=nomount boot:exit exit [root@c7u6s1 html]#

    上述腳本中指定了1個菜單項,即CentOS7-net,并在其中指定了網絡啟動所需要的內核文件以及虛擬內存文件。同時在內核文件中通過參數inst.ks指定了kickstart文件的路徑。這三個文件都是通過web服務器提供的。

    接下來準備上述的光盤ISO鏡像掛載,由于我系統上已經通過fstab自動掛載了iso文件到/media/iso這個目錄下,所以此處只需要在/var/www/html/目錄下創建對應的發行版目錄centos7/iso/,然后將/media/iso綁定到/var/www/html/centos7/iso/目錄上即可。具體如下所示:

    [root@c7u6s1 html]# cat /etc/fstab | tail -n1 /dev/sr1 /media/iso iso9660 defaults,loop 0 0 [root@c7u6s1 html]# mkdir -p centos7/iso [root@c7u6s1 html]# mount --bind /media/iso /var/www/html/centos7/iso [root@c7u6s1 iso]# pwd /var/www/html/centos7/iso [root@c7u6s1 iso]# ls images/ efiboot.img pxeboot TRANS.TBL [root@c7u6s1 iso]# ls images/pxeboot/ initrd.img TRANS.TBL vmlinuz [root@c7u6s1 iso]#

    上述就完成了光盤鏡像文件的準備操作,注意使用絕對路徑。

    最后準備kickstart文件,具體如下所示:

    [root@c7u6s1 centos7]# pwd /var/www/html/centos7 [root@c7u6s1 centos7]# [root@c7u6s1 centos7]# vim c7u6_virt_host.cfg [root@c7u6s1 centos7]# cat c7u6_virt_host.cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media #cdrom # Use text mode install install text reboot url --url=http://192.168.122.11/centos7/iso # Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=vda # Keyboard layouts keyboard --vckeymap=us --xlayouts='' # System language lang en_US.UTF-8# Network informationnetwork --bootproto=dhcp --device=eth0 --onboot=yes --ipv6=no --no-activate #network --bootproto=dhcp --device=eth1 --onboot=off --ipv6=autonetwork --hostname=c7u6sx# Root password rootpw --iscrypted $6$wYQ4sQUHYVmetic4$ULf257dlixXfr3zfXj5bRZ6wzt0zZDGWDYg3zvsEFNggMWhob7zU0ZCNoM4dyxWNfcb7EkOMYW3..oePpZjqJ. # System services services --enabled="chronyd" selinux --disabled firewall --disabled # Do not configure the X Window System skipx # System timezone timezone Asia/Shanghai --isUtc user --groups=wheel --name=albert --password=$6$TsBO3LGhk7nFEV.V$U4.Ke7W5M2Gjc.4wgA91Of7tUC1wRMBatHpM51Uj2xSGMTXr6H3EdY3LKvPdgWjZjVlZrJdsProzVnCuzeu2I/ --iscrypted --gecos="Albert Qee" # System bootloader configuration bootloader --location=mbr --boot-drive=vda #autopart --type=lvm # Partition clearing information clearpart --all --initlabel --drives=vda # Disk partitioning information part /boot --fstype="ext4" --size=512 part swap --fstype="swap" --size=1024 part pv.01 --fstype="lvmpv" --size=1 --grow volgroup vg0 --pesize=4096 pv.01 #logvol / --fstype='xfs' --size=39424 --name=root --vgname=vg0 logvol / --fstype="xfs" --size=1 --name=root --vgname=vg0 --grow%packages @base @core chrony vim-enhanced tree %end%addon com_redhat_kdump --disable --reserve-mb='auto'%end%anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end%post mkdir /root/.ssh -m 600 cat > /root/.ssh/authorized_keys << EOF ssh-rsa AAAAB3NzaC1yc2EAAABDAQABAAABgQC8u+h0pbgbTZ+n54HyWVl8GoGEEjLDjA7O5Zrt55pZes0Dkwr4XqqlO+Wse/UJ3BqsAmLVoZEk7b8KbUxuGu5gauWEn0TAl4FzhP1h8YdUIfMWVKrzXH+7/IMXnrwHyaNFqoadp5KLTZeU4gKM6TVjvU2NZ6qIXU6L7OFMSZ+74g9Z2U8Ce7xp1AnodD1rGR4LoXcd8I/mCPZN0RP7rzH4UXdoe9cP431XYbWfiPPu4EjBpPylxXQ5Uq2drS0f+3ZRf1tIicXtWcGqb8M3T1efRy2MjgFhuC6YPU0+JDCCV8oNrBUyu5ifsRtbjaFpPrlkrmV7dm2Q2A1F3kYjCod9Ri5hDQ/oPIcBvAmCv7zDmK6HAX9Va9qNWL5uzVeUXGneTLtThBaHiQu//LNTSSTaPHYwZQbnMtBEG790hLCjCXAabpDWWr/jQFPNozMIqBDx5xjLqC2kwnomRuC2p8days/LVnVXsCur+vscmHu0oA6MX3aRj/xn3sqXjBVbG88= root@amdhost EOF chmod 600 /root/.ssh/authorized_keys %end #reboot #halt #poweroff

    上述就是kickstart文件的全部內容,在上述kickstart文件的末尾通過腳本腳宿主機的root用戶的公鑰文件加入到新建虛擬機的root用戶的/root/.ssh/authorized_keys這個文件中,并且設置對應目錄和文件的權限為適當的權限。以便系統安裝完成之后,就可以自動完成root身份的公鑰驗證登錄。

    至此,iPXE服務器就準備完成了。在開始安裝之前,需要設置下Virt-Manager的網絡,將virbr0的DHCP功能關閉。具體如下所示:

    [root@LiuXianQiE networks]# virsh net-listName State Autostart Persistent --------------------------------------------default active yes yesvnet11 active yes yesvnet12 active yes yesvnet13 active yes yesvnet14 active yes yes[root@LiuXianQiE networks]# virsh net-edit default <network><name>default</name><uuid>7b03db65-aa5e-44ed-8961-d72ece83ce95</uuid><forward mode='nat'/><bridge name='virbr0' stp='on' delay='0'/><mac address='52:54:00:45:1e:56'/><ip address='192.168.122.1' netmask='255.255.255.0'><!--<dhcp><range start="192.168.122.2" end="192.168.122.254" /></dhcp>--></ip> </network>

    上述命令將<ip> ... </ip>這個里面的<dhcp> ... </dhcp>注釋掉了。而上述命令實際編輯的就是/etc/libvirt/qemu/networks/defaut.xml這個文件,具體如下所示:

    [root@LiuXianQiE networks]# pwd /etc/libvirt/qemu/networks [root@LiuXianQiE networks]# ls autostart default.xml [root@LiuXianQiE networks]# cat default.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh net-edit default or other application using the libvirt API. --><network><name>default</name><uuid>7b03db65-aa5e-44ed-8961-d72ece83ce95</uuid><forward mode='nat'/><bridge name='virbr0' stp='on' delay='0'/><mac address='52:54:00:45:1e:56'/><ip address='192.168.122.1' netmask='255.255.255.0'></ip> </network> [root@LiuXianQiE networks]#

    注釋掉之后,退出virsh net-edit default之后,就自動將注釋的內容刪除了。所以從命令行直接查看該文件的時候,就發現該文件的dhcp部分已經消失了。

    至此,新建的虛擬機就不會從virbr0自動獲取IP地址了,而是從c7u6s1這個虛擬機上配置的DHCP服務器上獲取IP地址。接下來就可以準備新的虛擬機,并通過iPXE自動安裝系統了。

    3.3. 通過iPXE安裝系統

    在Virtual Machine Manager的圖形界面中創建新的虛擬機,具體如下所示:

    點擊上圖的棕色方框創建新的虛擬機,彈出窗口如下:

    選擇第三項PXE,然后點擊Forward進行下一步設置。具體如下所示:

    在搜索框中輸入要安裝的發行版名稱,然后在自動彈出的下拉框中選擇對應的發行版,此處選擇CentOS 7,因為我們這里將要安裝CentOS 7.6。
    接下來設置新虛擬機的內存,和CPU核心數,具體如下所示:

    此處的內存容量不宜低于2G,如果低于2G,在安裝的時候將會報錯。
    接下來設置存儲,具體如下所示:

    接下來指定虛擬機的名稱,這里的名稱是Virtual Machine Manager以及virsh命令管理的時候所看到的名稱,而不是虛擬機的主機名。具體如下所示:

    點擊完成之后,由于Virtual Machine Manager中默認沒有選中網絡啟動,所以還需要設置下網絡啟動。具體如下所示:
    將網絡啟動設置為第一啟動項,在完成安裝之后,需要再將本地硬盤作為第一啟動項,即上圖的第二個啟動項。
    此時點擊啟動虛擬機的按鈕,即可開始自動系統安裝,具體如下所示:
    上述就是在給虛擬機從DHCP服務器請求IP地址,請求完成之后,就會進入到iPXE的啟動引導菜單,具體如下所示:
    默認等待6秒,就開始從默認的CentOS 7開始進行安裝。具體如下所示:
    上述完成了磁盤分區并且已經開始了軟件包安裝。等待安裝過程完成即可。
    安裝完成之后,將啟動項修改為本地磁盤啟動即可。
    上述即為從本地硬盤啟動之后的視圖。
    從宿主機上連接上述虛擬機,具體如下所示:

    [root@LiuXianQiE networks]# virsh domifaddr c7u6s9 --source agentName MAC address Protocol Address -------------------------------------------------------------------------------lo 00:00:00:00:00:00 ipv4 127.0.0.1/8- - ipv6 ::1/128eth0 52:54:00:4d:aa:a8 ipv4 192.168.122.60/24- - ipv6 fe80::5054:ff:fe4d:aaa8/64[root@LiuXianQiE networks]# [root@LiuXianQiE networks]# ssh -o StrictHostKeyChecking=no 192.168.122.60 Warning: Permanently added '192.168.122.60' (ECDSA) to the list of known hosts. [root@c7u6sx ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 52:54:00:4d:aa:a8 brd ff:ff:ff:ff:ff:ffinet 192.168.122.60/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0valid_lft 3322sec preferred_lft 3322secinet6 fe80::5054:ff:fe4d:aaa8/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@c7u6sx ~]# hostnamectl set-hostname c7u6s9 [root@c7u6sx ~]# exit logout Connection to 192.168.122.60 closed. [root@LiuXianQiE networks]# ssh 192.168.122.60 Last login: Wed Jun 30 23:26:14 2021 from 192.168.122.1 [root@c7u6s9 ~]#

    上述執行virsh domifaddr c7u6s9命令查看新建虛擬機的IP地址,然后通過ssh -o StrictHostKeyChecking=no 192.168.122.60連接到新建的虛擬機,表示不詢問直接將遠程主機的公鑰加入到本地主機的known_hosts這個文件中。第一次加入之后,第二次連接就不會再提示了,所以可以省略掉-o StrictHostKeyChecking=no這個選項。
    說明我們在kickstart文件的%post...%end部分指定的后向安裝腳本正常生效了。

    另外,我們在dhcpd服務的配置文件中指定的自動分配的IP地址范圍是100-150,但是這里虛擬機安裝完系統之后獲得IP地址是192.168.122.60,并不在這個范圍。猜測應該是Virutal Machine Manager在啟動虛擬機的時候,自動給其分配了IP地址,此時查看Virutal Machine Manager中的virbr0的配置文件,具體如下所示:

    此時查看dhcpd服務的狀態信息,發現在系統安裝階段,確實分配了100-150這個網段范圍內的IP地址,具體如下所示:

    [root@c7u6s1 tftpboot]# systemctl status dhcpd ● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2021-06-30 16:41:17 CST; 6h agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 12935 (dhcpd)Status: "Dispatching packets..."CGroup: /system.slice/dhcpd.service└─12935 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pidJun 30 23:22:56 c7u6s1 dhcpd[12935]: ns2.example.org: host unknown. Jun 30 23:22:56 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 23:27:27 c7u6s1 dhcpd[12935]: DHCPREQUEST for 192.168.122.105 from 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 23:27:30 c7u6s1 dhcpd[12935]: ns1.example.org: host unknown. Jun 30 23:27:33 c7u6s1 dhcpd[12935]: ns2.example.org: host unknown. Jun 30 23:27:33 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 23:32:07 c7u6s1 dhcpd[12935]: DHCPREQUEST for 192.168.122.105 from 52:54:00:7b:5d:97 (c7u6sx) via eth0 Jun 30 23:32:10 c7u6s1 dhcpd[12935]: ns1.example.org: host unknown. Jun 30 23:32:13 c7u6s1 dhcpd[12935]: ns2.example.org: host unknown. Jun 30 23:32:13 c7u6s1 dhcpd[12935]: DHCPACK on 192.168.122.105 to 52:54:00:7b:5d:97 (c7u6sx) via eth0 [root@c7u6s1 tftpboot]#

    從上述輸出中可以看出,在系統安裝過程中,給虛擬機分配了192.168.122.106這個IP地址。查看日志信息如下所示:

    [root@c7u6s1 tftpboot]# less /var/log/messages Jun 30 23:16:04 c7u6s1 in.tftpd[14467]: Client ::ffff:192.168.122.106 finished undionly.kpxe Jun 30 23:16:05 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:05 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:06 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:06 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:08 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.106 (192.168.122.11) from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:08 c7u6s1 dhcpd: DHCPACK on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:09 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:09 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:10 c7u6s1 in.tftpd[14468]: Client ::ffff:192.168.122.11 timed out Jun 30 23:16:10 c7u6s1 in.tftpd[14469]: Client ::ffff:192.168.122.11 timed out Jun 30 23:16:10 c7u6s1 in.tftpd[14470]: Client ::ffff:192.168.122.11 timed out Jun 30 23:16:11 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.106 (192.168.122.11) from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:11 c7u6s1 dhcpd: DHCPACK on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:12 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:12 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:14 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.106 (192.168.122.11) from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:14 c7u6s1 dhcpd: DHCPACK on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:15 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:15 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:17 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.106 (192.168.122.11) from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:17 c7u6s1 dhcpd: DHCPACK on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:18 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:18 c7u6s1 dhcpd: DHCPOFFER on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:20 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.106 (192.168.122.11) from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:20 c7u6s1 dhcpd: DHCPACK on 192.168.122.106 to 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:34 c7u6s1 dhcpd: DHCPDISCOVER from 52:54:00:4d:aa:a8 via eth0 Jun 30 23:16:34 c7u6s1 dhcpd: DHCPREQUEST for 192.168.122.60 (192.168.122.1) from 52:54:00:4d:aa:a8 via eth0: unknown lease 192.168.122.60.

    但是后面確實通過c7u6s1的dhcp服務為其分配了192.168.122.60這個IP地址。

    至此,通過iPXE基于kickstart實現的自動化CentOS7.6系統安裝操作就完成了。

    4. References

    [1]. How to install Gnome on Ubuntu 20.04 LTS Focal Fossa
    [2]. Build your own PXE boot server
    [3]. iPXE
    [4]. Chainloading iPXE
    [5]. Disable DHCP on a QEMU/libvirt/KVM Network

    總結

    以上是生活随笔為你收集整理的Linux随笔15-Ubuntu20.04允许root用户图形界面登录、chrony局域网时间同步服务、ipxe实现系统自动化安装的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲小视频在线 | 麻豆成人小视频 | 成人一区二区三区中文字幕 | 在线小视频你懂得 | 精品字幕 | 久久综合色影院 | 最近最新中文字幕 | 久久三级毛片 | 麻豆观看 | 又黄又爽又湿又无遮挡的在线视频 | 高清久久久久久 | www色| 综合中文字幕 | 日韩av免费一区 | 日韩免费视频一区二区 | 91av在线电影 | 黄色毛片大全 | 日韩高清网站 | 亚洲资源在线观看 | 色综合天天综合网国产成人网 | 精品久久久久久国产偷窥 | 999ZYZ玖玖资源站永久 | 精品久久久久久国产91 | 亚洲精品国精品久久99热 | 成年在线观看 | 丁香花中文字幕 | 日韩欧美在线第一页 | 香蕉影视 | 深爱五月网 | 黄色一级在线免费观看 | 日本中文字幕电影在线免费观看 | 国内精品久久天天躁人人爽 | 精品亚洲免费视频 | 国产成人精品一区二区三区在线 | 国产精品毛片一区视频 | 国内精自线一二区永久 | 国产 成人 久久 | 色综合激情久久 | 国产黄色在线网站 | 91久久精品一区二区三区 | av色图天堂网 | 9999在线 | 久草在线观看视频免费 | 视频二区在线 | 成人国产精品久久久 | 99精品久久久久久久久久综合 | 91尤物国产尤物福利在线播放 | 日本h在线播放 | 91精品网站在线观看 | 亚洲精品国产精品国自 | 黄色成人在线 | 欧美精品日韩 | 色综合色综合色综合 | 探花视频在线版播放免费观看 | 亚洲伦理一区二区 | 久久久久免费视频 | 亚洲精品在线观看免费 | 操操操夜夜操 | 成人毛片在线观看 | 日韩一区二区三区免费电影 | 97理论片| 亚洲精品伦理在线 | 久久久国产一区 | 人人dvd| 99久久精品无免国产免费 | 欧美日韩精品在线免费观看 | 激情五月激情综合网 | 久久久久国产a免费观看rela | 午夜精品在线看 | 激情综合狠狠 | 成人在线一区二区 | av软件在线观看 | 99c视频在线| 国产精品18久久久久久首页狼 | 欧美激情亚洲综合 | 激情网综合 | 天天曰视频 | 日韩精品一区二区三区在线视频 | 欧美污污视频 | 免费在线观看污网站 | 国产精品久久久久久模特 | 欧美日韩国产色综合一二三四 | 免费色网站 | 人人看97| 国产精品久久久久久久久久 | 天天综合在线观看 | 精品亚洲男同gayvideo网站 | 青草视频在线免费 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 最新超碰在线 | 99精品国产99久久久久久福利 | 国产一区二区三区免费观看视频 | 久久久综合香蕉尹人综合网 | 97超碰在线资源 | 天天·日日日干 | 在线观看日韩av | 免费观看日韩 | 国产高清在线 | 久久久在线视频 | 99热日本| 中文区中文字幕免费看 | 亚洲午夜精 | 亚洲精品www久久久 www国产精品com | 国产精品1区2区3区在线观看 | 18做爰免费视频网站 | 麻豆91网站 | 久久黄色免费观看 | 一区二区在线影院 | 91av99| 精品久久视频 | 亚洲高清av | 精品色999 | 久久免费视频精品 | 天天色天天操综合网 | 免费看片日韩 | 日韩精品一区二区不卡 | 偷拍区另类综合在线 | 精品久久久久一区二区国产 | 69av视频在线 | 色视频成人在线观看免 | 亚洲精品色视频 | 亚洲人视频在线 | 久久综合婷婷综合 | 国产一级二级三级在线观看 | 久久久久免费观看 | 992tv又爽又黄的免费视频 | 欧美一级小视频 | 日韩精品电影在线播放 | 天天久久综合 | 久久精品欧美一区 | 午夜精品一区二区三区免费视频 | 在线色亚洲 | 久久都是精品 | 久久久久久久久久久免费视频 | 日韩黄色免费电影 | 日韩高清免费在线观看 | 亚洲码国产日韩欧美高潮在线播放 | 91高清完整版在线观看 | 97超碰网| 毛片网站在线 | 国产欧美精品一区二区三区四区 | av在线免费观看黄 | 亚洲综合激情网 | 在线免费视频a | 免费av大片 | 在线观看国产日韩 | 亚洲成人中文在线 | 国产麻豆精品久久一二三 | 国产1区2区| 亚洲自拍偷拍色图 | 96亚洲精品久久久蜜桃 | 久久免费的视频 | 亚洲精品资源 | 92国产精品久久久久首页 | 精品成人网 | 国产r级在线观看 | 五月天,com | 日韩中文字幕免费视频 | 99久久9| 日韩av在线高清 | av大片网站| 黄色大全免费网站 | 日韩高清免费在线观看 | www.av在线播放 | 丁香五月亚洲综合在线 | 又湿又紧又大又爽a视频国产 | www.午夜视频 | 亚洲免费国产视频 | 日韩大片在线观看 | 99精品热视频 | 久久久穴 | 深爱激情五月网 | 国产永久免费观看 | 亚洲a网| 日韩www在线 | 亚洲好视频 | 久久成人麻豆午夜电影 | 中国一级片在线观看 | 色婷婷亚洲婷婷 | 婷婷色网视频在线播放 | 精品国产精品久久一区免费式 | 国产精品久久久视频 | 亚洲乱码在线观看 | 成人免费91 | 久久精品99国产国产精 | 中文字幕资源在线观看 | 亚洲区精品 | 精品久久久久久亚洲综合网站 | 欧美一级性视频 | 99精品久久久久久久久久综合 | 欧美成人在线免费 | 91尤物国产尤物福利在线播放 | 国产明星视频三级a三级点| av在线h| www.国产在线视频 | 蜜桃视频在线观看一区 | 在线影院av | 午夜精品一区二区三区视频免费看 | 精品国产乱码一区二区三区在线 | 国产亚洲婷婷免费 | 亚洲开心激情 | 国产成人三级一区二区在线观看一 | 91高清免费 | 国产精品美女免费 | 麻豆精品视频在线 | 国产精品青草综合久久久久99 | 黄色av网站在线观看免费 | 天天干.com | www天天干| 一区二区三区免费在线播放 | 日韩区在线观看 | 精品在线99 | 一性一交视频 | 99re国产视频 | 999热视频 | 日日夜夜爱| 91成人在线观看高潮 | 亚洲精品视频在线免费播放 | 国产精品久久久久久一区二区三区 | 精品欧美日韩 | 亚洲区另类春色综合小说校园片 | 国产亚洲精品久久久久动 | 92精品国产成人观看免费 | 精品国产123 | 91黄色在线视频 | jizzjizzjizz亚洲 | 尤物九九久久国产精品的分类 | 日韩精品短视频 | 人人澡超碰碰 | 国产成人黄色片 | 综合色婷婷 | 国产成人精品999 | 午夜18视频在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 一区二区欧美日韩 | 成年在线观看 | 国产一区av在线 | 国产精品精品国产色婷婷 | 成人一区二区三区在线 | 亚洲精品国偷拍自产在线观看 | av短片在线观看 | www黄色大片 | 色橹橹欧美在线观看视频高清 | 国产精品扒开做爽爽的视频 | 日韩在线视| 国产91精品高清一区二区三区 | 亚洲高清在线观看视频 | 综合久久2023 | 五月婷婷中文 | 国产精品免费观看久久 | 在线亚洲天堂网 | 777奇米四色 | 亚洲精品久 | 欧美日韩亚洲精品在线 | 五月丁香 | 精品国产一区二区三区久久久久久 | 免费观看的黄色 | 国产黄大片在线观看 | 久草免费在线视频 | 欧美一区二区三区免费观看 | 亚洲三级黄色 | 91在线一区二区 | 久久精品影片 | 亚洲人xxx | 91精品国产91久久久久福利 | 欧美精品乱码久久久久久按摩 | 中文字幕资源网 国产 | 黄色精品在线看 | 国产精品嫩草55av | 午夜视频免费在线观看 | 久久96 | 精品麻豆入口免费 | 国产婷婷 | 91亚州 | 区一区二区三在线观看 | av免费福利 | 精品美女在线观看 | 中文字幕中文字幕中文字幕 | 免费特级黄色片 | 91大神一区二区三区 | 久久乐九色婷婷综合色狠狠182 | 一区二区视频电影在线观看 | 国产麻豆电影在线观看 | 中文字幕日韩无 | 亚洲乱码精品 | 97在线观看免费 | 激情综合网在线观看 | 99热手机在线 | 亚洲天堂精品 | 日韩精品一区二区在线视频 | 91在线产啪| 超碰日韩在线 | 成 人 黄 色 视频 免费观看 | 成人高清在线观看 | 中文字幕在线观看国产 | 婷五月激情 | 免费日韩在线 | 草久久av| 国产午夜一级毛片 | 97在线视频免费播放 | 午夜视频在线观看网站 | 天天操天天操天天操天天操 | 亚洲国产精品成人综合 | 九九综合九九综合 | 丁香五婷 | 99视频免费播放 | 国内精品久久久久影院一蜜桃 | 91日韩精品| 久久久国产精品一区二区三区 | 日日骑| 亚洲精品www | 欧美精品一区二区在线观看 | 91九色免费视频 | 91九色在线播放 | 99精品在线免费观看 | 亚洲涩涩网站 | 国产精品正在播放 | 最新国产在线观看 | 99久久婷婷国产一区二区三区 | 97色视频在线 | 香蕉视频在线播放 | 天天综合视频在线观看 | 人人插人人做 | 五月视频 | 国产拍揄自揄精品视频麻豆 | 狠狠色香婷婷久久亚洲精品 | 久久免费视频网 | 欧美精品乱码久久久久久 | 日韩av免费大片 | 黄色大全免费网站 | 国内精品福利视频 | 日韩不卡高清视频 | 婷婷黄色片 | 日本午夜在线观看 | 国产91亚洲精品 | 99热.com| 午夜精选视频 | 91午夜精品 | 中文字幕在线国产精品 | 久久国产精品99久久久久久老狼 | 日日躁夜夜躁xxxxaaaa | 少妇自拍av | 日韩视频欧美视频 | 欧美日韩一二三四区 | 天堂va在线观看 | 欧美精品少妇xxxxx喷水 | 色综合久久精品 | 国产一区在线免费观看 | 久99久在线视频 | 精品电影一区二区 | 欧美一级片| 色综合天天综合 | 欧美中文字幕第一页 | 在线观看日本高清mv视频 | 免费观看国产视频 | 日本中文字幕在线电影 | 国产1级视频 | 久久只精品99品免费久23小说 | 天天操夜夜做 | 亚洲免费一级 | 精品主播网红福利资源观看 | 久久这里只有精品久久 | 免费视频一区 | 激情av在线资源 | 久久久网 | 亚洲视频电影在线 | 日韩在观看线 | 一区二区三区福利 | 日韩剧情 | 一区三区视频 | 欧美在线99 | 亚洲精品成人 | 手机看片福利 | 精品国产激情 | 久久精品免费 | 青青啪 | 天天操夜夜拍 | 国产亚洲高清视频 | 国产日本在线观看 | 久久手机精品视频 | 国产成人在线一区 | 久久亚洲免费 | 天天爽夜夜爽人人爽曰av | 精品一区二区视频 | 天天操天天干天天爱 | 中文在线中文a | 亚洲91精品在线观看 | 中文高清av | 日日干夜夜草 | 特级大胆西西4444www | 91爱爱视频 | 精品免费观看 | 一级黄色网址 | 视频成人永久免费视频 | 综合网五月天 | 欧美十八 | 欧美黄网站 | 九色精品在线 | 午夜精品中文字幕 | 亚洲免费婷婷 | 欧美日韩视频在线播放 | 2017狠狠干 | 国产精品久久久久久久久费观看 | 日p视频在线观看 | 欧美日韩在线视频一区二区 | 毛片播放网站 | 久草视频99 | 日韩av午夜在线观看 | 色偷偷人人澡久久超碰69 | 婷婷资源站| 午夜影院一区 | 久久不卡日韩美女 | 私人av | 一区二区三区精品在线 | 91污在线观看 | 久久黄色影视 | 亚洲国产精品va在线看 | 69热国产视频 | 日韩在线观看的 | 国产 日韩 欧美 自拍 | 国产视频日韩视频欧美视频 | 久久国产免 | 一级a性色生活片久久毛片波多野 | 毛片网站在线观看 | 精品伊人久久久 | www.久艹 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 欧美一级日韩三级 | 免费三级大片 | 欧美日产在线观看 | 婷婷精品国产一区二区三区日韩 | 顶级欧美色妇4khd | 97精品国产手机 | 日韩av电影国产 | 国内精品久久久久影院优 | 东方av在 | 国产黄影院色大全免费 | 国产小视频在线 | 国产一二三四在线观看视频 | 亚洲va综合va国产va中文 | 99精品黄色片免费大全 | 久草资源在线 | 久久综合色影院 | 在线免费视频你懂的 | 欧美人人爱 | 亚洲精品国产精品久久99热 | 日韩在线观看免费 | 久久99精品久久只有精品 | 日韩国产精品一区 | 99热九九这里只有精品10 | 日韩精品免费在线 | 在线视频 一区二区 | 成人毛片在线观看 | 国产中文在线观看 | 精品在线观 | 青草视频在线播放 | 午夜久久精品 | 日韩精品中文字幕在线观看 | 涩涩网站在线播放 | 精品三级av | 嫩草伊人久久精品少妇av | 国内揄拍国产精品 | 精品国产乱码久久久久久1区二区 | 成人午夜影院在线观看 | 黄色影院在线播放 | 激情五月综合网 | 久久人人添人人爽添人人88v | 日韩av一区在线观看 | 99这里精品 | 久久夜夜夜 | 精品国产一区二区三区久久久蜜臀 | av一级一片| 国产精品video爽爽爽爽 | 成人久久精品视频 | 91秒拍国产福利一区 | 免费在线播放av电影 | 精品国产免费一区二区三区五区 | 黄网站色欧美视频 | 国产精品99蜜臀久久不卡二区 | 久久免费播放 | 国产麻豆视频 | www免费看片com | 国产又粗又猛又爽又黄的视频免费 | 伊人婷婷在线 | 久久午夜国产精品 | 丝袜少妇在线 | 欧美一区二区三区在线视频观看 | 国产又粗又猛又黄视频 | 日韩在线视频二区 | 黄色高清视频在线观看 | 久久在线视频在线 | 国产精品久久久久久电影 | 国产在线观看xxx | 狠狠色丁婷婷日日 | 国产成人精品一区二区三区在线 | 97在线观视频免费观看 | 亚洲黄色激情小说 | 在线观av| 久在线观看视频 | 在线观看精品一区 | 又污又黄网站 | 在线免费成人 | 激情欧美xxxx | 亚洲黄色区 | 免费观看国产成人 | 国产精品久久久久久欧美 | 亚洲欧美精品一区 | 91大神精品视频在线观看 | 欧美日韩一区二区三区在线免费观看 | 九色自拍视频 | 丝袜美腿在线视频 | 亚洲性xxxx| 精品黄色片 | 色噜噜日韩精品一区二区三区视频 | 国产最新视频在线 | 在线小视频| 91丨九色丨国产在线 | 久久久国产精品一区二区三区 | 天天激情天天干 | 色婷婷色 | 超碰人人舔 | 国产黄色免费观看 | 九草视频在线观看 | 久久国产欧美日韩精品 | 国产一区二区三区黄 | 欧美成人精品三级在线观看播放 | 人人搞人人搞 | 中文字幕一区二区三 | 日日夜夜免费精品视频 | 99精品视频免费看 | 97国产情侣爱久久免费观看 | 日韩精品五月天 | 激情网五月婷婷 | 一区二区三区高清在线 | 久香蕉 | 天天操天天色天天射 | www.com.黄 | 亚洲欧洲成人 | 91伊人影院 | 麻豆一区二区三区视频 | 国产精品theporn | 手机av观看| 超碰在线人人 | 久久 亚洲视频 | 99久久久国产精品免费观看 | 在线 国产 亚洲 欧美 | 久久 精品一区 | 天天做天天爱天天爽综合网 | 色综合国产 | 国产成人精品日本亚洲999 | 在线日韩亚洲 | 91久久精| 99久久婷婷国产综合亚洲 | 天天操夜夜爱 | 日日夜日日干 | 中文字幕在线免费观看 | 女人18片毛片90分钟 | 久久玖 | 一区二区三区在线视频111 | 国产精品毛片久久久久久久 | 五月天亚洲精品 | 国产欧美综合在线观看 | 一本一道波多野毛片中文在线 | 国产黄色一级片在线 | 亚洲女在线 | 九九精品视频在线观看 | 99这里只有久久精品视频 | 亚洲丝袜一区二区 | 欧美久久久久久久 | 二区三区av | 伊人夜夜 | 一区二区在线影院 | www九九热 | 7777精品伊人久久久大香线蕉 | 一区二区三区在线观看 | 高清av免费一区中文字幕 | 国产粉嫩在线观看 | 亚洲精品视频在线免费 | 天天综合久久 | 久久99电影 | 国产理论影院 | 国产黄色播放 | 国产偷国产偷亚洲清高 | 日韩免费看片 | 中文字幕人成一区 | 婷婷视频在线观看 | 日韩精品一区二区三区在线视频 | 在线香蕉视频 | 九色91视频| 在线a人v观看视频 | 久久久www成人免费毛片麻豆 | 久久成年人视频 | 菠萝菠萝在线精品视频 | 免费av电影网站 | 久久国产精品成人免费浪潮 | 少妇bbbb搡bbbb搡bbbb | 最近中文字幕大全中文字幕免费 | 日p视频 | 国产成人精品亚洲日本在线观看 | 中中文字幕av在线 | 午夜视频一区二区三区 | 9999在线视频 | 久久激情五月婷婷 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 黄色三级免费片 | 四虎小视频 | 国产成人久久精品亚洲 | 欧美成天堂网地址 | 中文字幕一区二区在线播放 | 成年人网站免费观看 | 欧美三级在线播放 | 亚洲欧美日韩国产一区二区 | 亚洲三区在线 | 黄色av电影 | 欧美一区二区在线免费看 | av大全在线 | 日韩精品久久久久久久电影99爱 | 精品久久久久国产免费第一页 | 在线 高清 中文字幕 | 日韩精品视频在线免费观看 | 人成在线免费视频 | 久久高清免费视频 | 黄网站污 | 中文在线 | 99精品视频网 | 亚洲国产欧美在线人成大黄瓜 | 国产视频黄| 欧美在线一级片 | 色五月激情五月 | 婷婷看片 | 日韩av电影中文字幕在线观看 | 视频在线观看日韩 | 黄色三级免费看 | 日韩在线观看一区二区 | 日日碰狠狠添天天爽超碰97久久 | 日韩va欧美va亚洲va久久 | 日韩久久精品 | 最新日韩中文字幕 | 久久亚洲欧美日韩精品专区 | 国产亚洲成av片在线观看 | aaa日本高清在线播放免费观看 | 色综合久久精品 | 99精品欧美一区二区三区黑人哦 | 午夜在线资源 | 亚洲自拍偷拍色图 | 亚州精品在线视频 | 亚洲精品在线免费播放 | 精品久久一区二区 | 一级一级一片免费 | 亚洲乱亚洲乱妇 | 亚洲精品综合一二三区在线观看 | 国产精品久久久久久久久蜜臀 | 高清美女视频 | 欧美激情视频一区二区三区免费 | 91在线免费观看国产 | 欧美日韩大片在线观看 | 四虎永久网站 | 97视频免费看| 国产精品一区二区免费在线观看 | 伊人狠狠色 | 97理论片 | 成年人免费电影在线观看 | www.夜夜骑.com | 亚洲综合狠狠干 | 国产精品麻豆99久久久久久 | 久久综合给合久久狠狠色 | 久久久麻豆视频 | 国产91精品一区二区绿帽 | 免费的国产精品 | 亚洲黄色小说网址 | 久久久久高清毛片一级 | 超碰97国产在线 | 国产在线精品播放 | 亚洲激精日韩激精欧美精品 | 亚洲精品一区中文字幕乱码 | 亚洲精品国产精品国自产观看浪潮 | 国精产品999国精产品视频 | 成人在线播放免费观看 | av中文字幕在线观看网站 | 日本精品一区二区三区在线播放视频 | 玖玖在线资源 | 精品日韩av| 中文字幕 在线看 | 国产亚洲激情视频在线 | 国产在线视频一区二区三区 | 91精品国产综合久久福利不卡 | 在线91播放| 92国产精品久久久久首页 | 91视频最新网址 | 日韩r级电影在线观看 | 日日摸日日添夜夜爽97 | 日韩精品在线观看av | 中文字幕资源在线观看 | 成人性生爱a∨ | 日韩中文字幕免费在线观看 | 五月天久久婷 | 久久精品三级 | 黄色av成人在线观看 | 国产精品入口麻豆 | 中文字幕欧美日韩va免费视频 | 亚洲一级电影 | 色资源网免费观看视频 | 天天天干天天射天天天操 | 日韩美女黄色片 | 免费欧美高清视频 | 999电影免费在线观看2020 | 久亚洲 | 中文国产在线观看 | 天天操天天操一操 | 精品一区免费 | 婷五月天激情 | 国产成人久久av977小说 | 91成人精品在线 | 久久蜜臀一区二区三区av | 欧美久久久久久久久久久久 | 一区二区三区免费在线观看视频 | 四虎影视国产精品免费久久 | 久久五月天婷婷 | 激情综合五月婷婷 | 97在线观看视频国产 | 四虎成人免费观看 | 在线日韩三级 | 日精品| 国语麻豆| 国产美女黄网站免费 | 国产精品中文字幕在线 | 欧美福利精品 | 韩日精品在线 | 色偷偷av男人天堂 | 综合激情网| 久久久久在线视频 | 一区二区视频播放 | 久久综合中文字幕 | 欧美另类调教 | 亚洲精品免费在线观看视频 | 国产精品视频线看 | 日韩乱色精品一区二区 | 亚洲欧洲精品一区二区精品久久久 | 国内精品视频一区二区三区八戒 | 免费在线观看av网站 | 日韩在线一区二区免费 | 日韩视频 一区 | 国产中文在线播放 | 一区二区三区日韩在线观看 | 成人欧美一区二区三区黑人麻豆 | 九九久久久久99精品 | 涩涩网站在线观看 | 久草在线99 | 久草免费在线 | 夜夜爽夜夜操 | 97超碰免费 | 精品专区一区二区 | 国产在线综合视频 | 久草爱| 狠狠操综合| 日韩精品免费在线视频 | 午夜狠狠操 | 国产在线一区观看 | 中文字幕在线看视频国产中文版 | 精品久久1 | 四虎影视成人精品国库在线观看 | 不卡av在线 | 五月av在线| 九九热在线精品 | 成人av动漫在线 | av丝袜制服| 国产香蕉97碰碰碰视频在线观看 | 伊人亚洲精品 | av网在线观看 | 超碰在线成人 | 欧美日韩国产区 | 成人黄色小说在线观看 | 国产在线播放一区二区三区 | а天堂中文最新一区二区三区 | 午夜精品一区二区三区在线观看 | 99精品视频精品精品视频 | www.av在线.com | 玖玖999| 久久神马影院 | 国产精品黄色影片导航在线观看 | 精品欧美一区二区精品久久 | 国产视频九色蝌蚪 | 国产999精品久久久 免费a网站 | 500部大龄熟乱视频使用方法 | 日日爱av| 九九免费观看全部免费视频 | 免费人成在线观看 | 久久激情精品 | 国产黄色免费在线观看 | 久草在线高清 | 免费特级黄毛片 | 国产尤物视频在线 | 亚洲精品视频网站在线观看 | 911久久| 天天操天天弄 | 激情视频国产 | 日韩中文在线电影 | 91九色在线| 久久婷婷国产色一区二区三区 | 免费视频成人 | 久久免费精彩视频 | 免费黄色在线播放 | 91男人影院| 国产精品免费视频观看 | 中文av网站| 成人免费观看网址 | 午夜精品久久久久久久爽 | 日韩黄色大片在线观看 | 综合网天天色 | 视频一区久久 | av丝袜天堂 | 人人澡人人澡人人 | 欧美黑人性爽 | 天天综合91 | 在线视频福利 | 在线观看av小说 | 欧洲成人av | 亚洲在线 | 激情中文字幕 | 免费在线观看av网站 | 99久热| 午夜精品一区二区三区在线视频 | 欧美黄在线| av天天澡天天爽天天av | 国产资源在线免费观看 | 国产91丝袜在线播放动漫 | 国产日本在线播放 | 日韩av看片 | 精品在线观看一区二区 | 中文在线√天堂 | 麻豆视频免费在线 | 超碰国产在线播放 | 亚洲精品黄色片 | wwwwww国产 | 国产福利一区二区在线 | 日本成址在线观看 | 欧美日韩久久久 | 国产亚洲资源 | 国产精品普通话 | 国产亚洲精品久久久久久 | 色综合婷婷久久 | 日韩三级一区 | 亚洲欧洲xxxx | 久久五月婷婷丁香社区 | 欧美孕交vivoestv另类 | 国产小视频在线看 | 91视频啪 | 91毛片视频| 视频精品一区二区三区 | 国产91在线观看 | 国产午夜精品一区二区三区四区 | 色狠狠狠 | 久久国产香蕉视频 | 久久激情网站 | 免费的黄色的网站 | 深爱激情久久 | 丁香电影小说免费视频观看 | 欧美少妇xxx | 丝袜+亚洲+另类+欧美+变态 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 免费看污的网站 | 在线观看视频你懂得 | 天天躁日日躁狠狠躁 | 国产亚洲91 | 在线观看日本高清mv视频 | 色婷婷 亚洲| 久久精品99 | 香蕉视频免费在线播放 | 欧美成人xxx | 国产一区视频在线播放 | 色吊丝在线永久观看最新版本 | 日本久久免费视频 | 欧美 日韩 成人 | 亚洲理论在线观看 | 五月天视频网站 | 99国产精品视频免费观看一公开 | 国产成人精品亚洲日本在线观看 | 久久99国产精品久久99 | 欧美 日韩 国产 中文字幕 | 国产美女永久免费 | 成人手机在线视频 | 亚洲在线a| 日韩有码欧美 | 国产精品欧美久久久久天天影视 | 国产精品毛片完整版 | 久久超碰在线 | 成人一级| 亚洲一区二区三区精品在线观看 | 中文字幕亚洲精品日韩 | 黄色小说在线观看视频 | 91精品中文字幕 | 国产精品亚州 | 国产黄色片免费观看 | 人人干网 | 国产天天爽 | 亚洲精品88欧美一区二区 | 午夜视频免费在线观看 | 久草免费新视频 | av大全在线看 | 91精品一区在线观看 | 国产精品二区在线观看 | 三级av免费| 日本福利视频在线 | 欧美性色xo影院 | 天天操天天草 | 一区二区三区四区久久 | 色网站免费在线看 | 天天骚夜夜操 | 成人精品999 | 日日爱影视 | 国产成人精品午夜在线播放 | 国产精品乱码久久 | 中文字幕在线看视频 | 亚洲免费成人av电影 | 久久精品福利视频 | 18女毛片 | 日韩视频一区二区 | 毛片永久免费 | 成人小视频在线观看免费 | 最近高清中文在线字幕在线观看 | 99这里只有久久精品视频 | 香蕉精品视频在线观看 | 999久久久精品视频 日韩高清www | 日韩成人黄色av | 精品爱爱 | 久久综合欧美精品亚洲一区 | 成人性生爱a∨ | 中文字幕免费观看视频 | 国产小视频福利在线 | 国产精品一区二区白浆 | 91福利国产在线观看 | 伊香蕉大综综综合久久啪 | 日韩福利在线观看 | 国产视频久| 久久综合丁香 | 激情网在线观看 | 亚洲精品在线播放视频 | 91在线看片 | 97偷拍在线视频 | 欧美美女一级片 | 97超碰人 | 亚洲精品美女在线观看播放 | 人人干免费 | 亚洲日本韩国一区二区 | 中文区中文字幕免费看 | 精品福利国产 | 在线观看日本韩国电影 | 狠狠干天天 | 麻豆影视在线免费观看 | 国产精品网址在线观看 | 久草在线久草在线2 | 亚洲久草网 | 免费在线成人av电影 | 精品久久久影院 | 日韩欧美网址 | 欧美成人猛片 | 日韩网站一区 | 中文字幕日韩电影 | 国产一二区免费视频 | 国产91成人在在线播放 | 国产99在线 | 日本中文字幕在线观看 | 中文字幕一区二区三区在线视频 | 伊在线视频 | 丝袜美腿亚洲综合 | 欧美午夜性生活 | 国产一区麻豆 | 日韩av一区二区在线影视 | 黄色三级网站在线观看 | 91av蜜桃 | 婷色在线 | 日韩高清精品一区二区 | 怡红院av久久久久久久 | 日韩成人免费在线 | av3级在线| 一区二区 不卡 | 日韩理论在线 | 999久久| 午夜精品麻豆 | 国产精品美女免费看 | 大型av综合网站 | 国内精品久久久久久久久久清纯 | 天天爽人人爽夜夜爽 | 久久成人免费电影 | 色5月婷婷| 91久久影院| av中文字幕免费在线观看 | 亚洲撸撸 | 国产黄视频在线观看 | 国产精品自产拍在线观看桃花 | 黄色三级视频片 | 91在线看视频免费 | 中文字幕超清在线免费 | 九九有精品 | 日韩字幕| 丁香六月色 | 久久免费观看少妇a级毛片 久久久久成人免费 | 9999国产|