運維自動化之系統安裝

来源:https://www.cnblogs.com/wang-jin/archive/2018/07/16/9320254.html
-Advertisement-
Play Games

本章內容 系統安裝過程 配置anaconda 自動化安裝系統 製作引導光碟和U盤 DHCP服務 PXE安裝系統 cobbler企業級應用 安裝程式 • CentOS系統安裝 系統啟動流程: bootloader-->kernel(initramfs)-->rootfs-->/sbin/init • ...


本章內容系統安裝過程配置anaconda自動化安裝系統製作引導光碟和U盤DHCP服務PXE安裝系統  cobbler企業級應用

安裝程式

CentOS系統安裝

系統啟動流程:

bootloader-->kernel(initramfs)-->rootfs-->/sbin/init

anaconda: 系統安裝程式

gui:圖形視窗

tui: 基於圖形庫curses的文本視窗

安裝程式啟動過程 

MBR:isolinux/boot.cat

stage2: isolinux/isolinux.bin

配置文件:isolinux/isolinux.cfg

每個對應的菜單選項:

載入內核:isolinuz/vmlinuz

向內核傳遞參數:append initrd=initrd.img ...

裝載根文件系統,並啟動anaconda

預設啟動GUI介面

若是顯式指定使用TUI介面:向內核傳遞text參數即可

(1)按tab鍵,在後面增加text

(2)按ESC鍵:boot: linux text “純字元方式安裝系統,不需要圖形界面“

 

手動安裝界面

 

 

anaconda工作過程

Anaconda安裝系統分成三個階段:

1、安裝前配置階段

  • 安裝過程使用的語言
  • 鍵盤類型
  • 安裝目標存儲設備
      • Basic Storage:本地磁碟
      • 特殊設備:iSCSI
  • 設定主機名
  • 配置網路介面
  • 時區
  • 管理員密碼
  • 設定分區方式及MBR的安裝位置
  • 創建一個普通用戶
  • 選定要安裝的程式包

2、安裝階段

  • 在目標磁碟創建分區,執行格式化操作等
  • 將選定的程式包安裝至目標位置
  • 安裝bootloader和initramfs

3、圖形模式首次啟動

  • iptables
  • selinux(安全機制)
  • core dump

anaconda

anaconda負責安裝系統嚮導,預設為GUI界面,如果我們使用ks自動應答安裝的話建議使用TUI界面來安裝,在安裝啟動界面我們可以按esc鍵來自己手動指定安裝啟動選項anaconda選項:

1)boot:linux askmethod 在稍後的安裝中手動選擇安裝源

本地光碟、硬碟、NFS、FTP、HTTP

2)linux dd 載入驅動盤

3)linux ks=xxx   指定安裝ks文件

  • DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
  • Hard drive: ks=hd:device:/directory/KICKSTART_FILE
  • HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
  • FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE
  • HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
  • NFS server:ks=nfs:host:/path/to/KICKSTART_FILE

4)linux nonet 不啟用網路

5)linux noprobe 不裝載其他的硬體設備

6)linux rescue 進入救援模式

7)linux 正常安裝

8)local 從硬碟啟動

9)linux text 以字元界面安裝

10)linux ip={DHCP | 192.168.0.1} netmask=255.255.255.0 gateway=192.168.0.1 dns=114.114.114.114 ks=http://192.168.0.1/ks.cfg 設置IP並從網路獲取ks文件

11)linux ip={DHCP | 192.168.0.1} netmask=255.255.255.0 gateway=192.168.0.1 dns=114.114.114.114 repo=http://192.168.0.1  設置IP地址並指定從repo源安裝

  • ip=IPADDR
  • netmask=MASK
  • gateway=GW
  • dns=DNS_SERVER_IP
  • ifname=NAME:MAC_ADDR

12)linux vnc vncpassword="PASSWORD" 使用vnc調用安裝界面

# ls -1 isolinux/
boot.cat  模擬mbr文件
boot.msg  
grub.conf grub的配置文件
initrd.img  ramdisk文件
isolinux.bin  grub的第二階段
isolinux.cfg  配置文件(啟動菜單定製文件)
memtest  記憶體測試文件
splash.jpg  背景圖片
TRANS.TBL
vesamenu.c32  光碟啟動的圖形界面菜單風格
vmlinuz  內核文件

13:啟動菜單的配置文件isolinux/isolinux.cfg

# cat isolinux/isolinux.cfg 
default vesamenu.c32 提供圖形菜單風格
#prompt 1
timeout 600 菜單選擇超時時間

display boot.msg

menu background splash.jpg  背景圖片
menu title Welcome to CentOS 6.9!  菜單上方提示信息
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux  一條菜單
  menu label ^Install or upgrade an existing system
  menu default 預設選擇
  kernel vmlinuz
  append initrd=initrd.img  向內核傳遞參數

實驗:如果想加圖形界面,方法如下

1:配好yum 源:按裝包yum grouplistall "gonme desktop" yum grouplist:查看包組

2:yum install bash-completion 如果是最小化安裝的系統則安裝補全包 用 rmp -qa "bash" 查找出

如果已經裝好,則exit重新登錄,只有從新登錄裝的包會生效

3:systemctl isolate graphical.target --------- 或者init5

4:修改開機啟動運行模式,

 

kickstart自動應答文件

kickstart為anaconda安裝系統過程中自動應答已配置好的選項,實現無人值守安裝系統。

事先把我們手動安裝時的那些設置,如分區,語言,口令之類的安裝的包存在應答文件中,安裝嚮導讀取應答文件內容自動安裝,

ks文件格式:三部分

命令段

---必須指定---

authconfig: 認證方式配置

  authconfig --useshadow --passalgo=sha512

bootloader:bootloader的安裝位置及相關配置

   bootloader --location=mbr --driveorder=sda – append="crashkernel=auto rhgb quiet"

keyboard

lang

timezone

rootpw

authconfig --enableshadow

bootloader --location=mbr --password=******

driverdisk 指定驅動盤

firewall --enable --ssh,--disabled

firstboot --disbaled

halt 完成後關機

reboot 完成後重啟

text|graphical(default) 文本|圖像

key --skip 跳過安裝號碼,適用於rhel版本

keyboard: 設定鍵盤類型

lang: 語言類型

part: 創建分區

rootpw: 指明root的密碼

timezone: 時區

---可選命令---

clearpart --all,--linux,--none(default) --initlabel(初始化分區標記)

autopart 自動分區

     ignoredisk --drives=drive1,drive2忽略硬碟

     autostep 跳過可選項,付預設值

     part or partition /boot --fstype ext4 --size=200

     install OR upgrade

     text: 文本安裝界面

     network

     firewall

     selinux

     halt

     poweroff

     reboot

     repo

     user:安裝完成後為系統創建新用戶

     url: 指明安裝源

     key –skip 跳過安裝號碼,適用於rhel版本

命令段:指明各種安裝前配置,如鍵盤類型等 程式包段:指明要安裝的程式包組或程式包,不安裝的程式包等 軟體包選擇段%package      @group_name 包組名      package 一個個包      -package 不裝的包      %end 腳本段 預安裝腳本%pre 後安裝腳本%post 準備應答文件: 方法一通過現成系統拷貝一個文件直接參考 /root/anaconda-ks.cfg  來編輯, ,然後使用ksvalidator命令來檢查是否有語法錯誤,但是這文件的格式有一定的要求,麻煩 方法二使用system-config-kickstart 圖形界面工具生成ks文件。

 

  使用 system-config-kickstart 來創建ks文件(CentOS6.x) 檢查ks文件的語法錯誤:ksvalidator ksvalidator /PATH/TO/KICKSTART_FILE 1、配置yum源、安裝軟體並啟動,需要安裝圖形界面 2、按需配置 註意在centos7上的選擇安裝包的那一項預設不出來選項,我們可以把base的倉庫名改為development   root@centos7 ~]# systemctl start httpd 啟動http服務 [root@centos7 ~]# ss -ntl 80埠打開就可以訪問了 [root@centos7 ~]# cd /var/www/html 預設存放頁面的文件 [root@centos7 /var/www/html]# ls [root@centos7 /var/www/html]# mkdir -pv centos/7/os/x8_64/ 模仿阿裡雲yum源以創建文件夾方式把centos光碟放到這個頁面上 mkdir: created directory ‘centos’ mkdir: created directory ‘centos/7’ mkdir: created directory ‘centos/7/os’ mkdir: created directory ‘centos/7/os/x8_64/’ [root@centos7 /var/www/html]# mount /dev/sr0 centos/7/os/x86_64/ 掛載光碟到這個centos/7/os/x86_64/目錄中 mount: /dev/sr0 is write-protected, mounting read-only [root@centos7 /var/www/html]# ls centos   yum源生成

 
[root@centos7 ~/.ssh]# ssh-keygen                           在centos7上先生成key   
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9xImk70qDENHI8D4aJlqNewV2o3/RUGm7njgz6ZIBqs root@centos7
The key's randomart image is:
+---[RSA 2048]----+
| o..      .o     |
|. . ..o   o.     |
| o+ oo+. .  .    |
|.+.=.+...o .     |
|o ooo...S.*      |
|.. .= ..+= =     |
|.  . * o.o+ .    |
|  . o + ++ .     |
| E   . o+o       |
+----[SHA256]-----+
[root@centos7 ~/.ssh]# cat id_rsa.pub        查看公鑰文件

  ks.cfg配置文件,以上步驟生成:如下

ks文件中LVM邏輯捲分區格式

 
part /boot --fstype xfs --size=200 --ondisk=sda
part pv.2 --size=0 --grow --ondisk=sda
volgroup myvg --pesize=4096 pv.2
logvol / --fstype xfs --name=lv_root --vgname=myvg --size=10240 --grow
logvol swap --fstype swap --name=lv_swap --vgname=myvg --size=1024 --grow --maxsize=2048
 

ks文件中使用系統自動分區格式

# Partition clearing information
clearpart --all --initlabel 
autopartc

 實驗:在centos7上通過應答文件配合ftp 服務實現自動化安裝

 

1:yum install vsftpd systemctl start vsftpd 啟動該服務 安裝ftp服務,

 將會自動在這個目錄下生成相應的文件夾

2:cd /var/ftp/pub 將會自動在這個目錄下生成相應的文件夾, 3:[root@centos7 /var/ftp/pub]# mkdir centos7 創建該文件夾 4:[root@centos7 /var/ftp/pub]# mount /dev/sr0 centos7/ 將光碟掛載到    centos7上 5:[root@centos7 /var/ftp/pub]# setenforce 0 關閉安全機制 6:訪問 7:[root@centos7 /var/ftp/pub]# mv /root/ks7.cfg 將拷貝的應答文件複製到當前目錄下,並且進行修改 8:製作好的應答文件
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled #關閉防火牆
# Install OS instead of upgrade
install
# Use network installation
cdrom 光碟引導
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info

# System timezone
timezone  Africa/Abidjan
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=partition
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
part /boot --fstype=ext4 --size=300
part / --fstype=ext4 --size=20480
part /app --fstype=ext4 --size=10240

part swap --size=2048
%post
rm -rf /etc/yum.repo.d/*
cat > /etc/yum.repo.d/media.repo <<EOF
[base]
name=base
baseurl=file:///media/
gpgcheck=0
EOF

useradd wang
echo 111111|passwd --stdin wang
%end

%packages
@base
@core
autofs
%end


製作自動應答光碟 我們現在已經有一個ks文件了,接下來需要把ks文件加入到光碟文件中來實現自動安裝,就不用每次用過光碟引導輸入開ks ..........一大長串字元了。
1、準備安裝文件 [root@centos6 /data]# mkdir boot [root@centos6 /data]# cp -r /media/isolinux/ /data/boot [root@centos6 /data]# mkdir ksdir [root@centos6 /data]# cp /root/ks6.cfg  ksdir/ 2:修改配置文件

label linux
    menu label ^Auto Install an system
    kernel vmlinuz
    append initrd=initrd.img ks=cdrom:/ksdir/ks6.cfg
label vesa
    menu label Install ^Manual centos
    kernel vmlinuz
    append initrd=initrd.img reop=http://192.168.1.12/centos/6/os/x86_64/
label local
    menu label Boot from ^local drive
    menu default
    localboot 0xffff
3、製作ISO文件,

[root@centos7 ~]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/boot:註意:以上相對路徑都是相對於光碟的根,和工作目錄無關 一 :製作完整的iso 文件,上面的步驟知識光碟應道,還是要手動安裝 1[root@centos6 ~]# cp -r /media/ /data/centos6 複製光碟下所有的內容,包括隱藏文件,複製後命名為centos6 2[root@centos6 /data]# find -name TRANS.TBL 刪除文件夾所有的這種文件 [root@centos6 /data]# find -name TRANS.TBL -exec rm {} \; 刪除文件夾所有的這種文件 3[root@centos6 /data/centos6]# rm -rf repodata/ 刪除此文件夾,重新生成新的 4:[root@centos6 /data/centos6]# createrepo -g /media/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml  . (包的分組) 重新創建yum 源的yuan數據 5:[root@centos6 /data/ksdir]# vim ks6.cfg 修改應答文件中的安裝方法,將網路改為cdrom 6:[root@centos6 /data/centos6/isolinux]# vim isolinux.cfg 修改啟動菜單 label linux     menu label ^Auto Install an system     menu default     kernel vmlinuz     append initrd=initrd.img ks=cdrom:/ksdir/ks6.cfg label manual     menu label ^Manual installed an system     kernel vmlinuz     append initrd=initrd.img label local     menu default     menu label Boot from ^local drive     localboot 0xffff   7:[root@centos6 ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.9.iso /data/centos6/ 刻光碟 5:創建U盤啟動盤 dd if=/dev/sr0 of=/dev/sdb 補充:yum安裝sz 命令:yum install -y lrzsz

 

mkisofs命令

  • -o 指定映像文件的名稱
  • -b 指定在製作可開機光碟時所需的開機映像文件
  • -c 製作可開機光碟時,會將開機映像文件中的 no-eltorito-catalog 全部內容作成一個文件
  • -no-emul-boot 非模擬模式啟動
  • -boot-load-size 4 設置載入部分的數量
  • -boot-info-table 在啟動的圖像中現實信息
  • -R 或 -rock 使用 Rock RidgeExtensions
  • -J 或 -joliet 使用 Joliet 格式的目錄與文件名稱
  • -v 或 -verbose 執行時顯示詳細的信息
  • -T 或 -translation-table 建立文件名的轉換表,適用於不支持 Rock RidgeExtensions 的系統上

 

DHCP服務   ♦ 網路配置 靜態指定      動態獲取: bootp:boot protocol MAC與IP一一靜態對應 bootpIP地址固定        dhcp:增強的bootp,動態 #用較少的ip給較多的電腦提供使用 ♦ DHCP: (Dynamic Host Configuration Protocol)   動態主機配置協議 區域網協議,UDP協議 ♦ 主要用途:   用於內部網路和網路服務供應商自動分配IP地址給用戶   用於內部網路管理員作為對所有電腦作集中管理的手段 ♦ 使用場景   自動化安裝系統    解決IPV4資源不足問題

 

DHCP共有八種報文

DHCP DISCOVER:客戶端到伺服器

DHCP OFFER :伺服器到客戶端 DHCP REQUEST:客戶端到伺服器 DHCP ACK :伺服器到客戶端 DHCP NAK:伺服器到客戶端,通知用戶無法分配合適的IP 地址 DHCP DECLINE :客戶端到伺服器,指示地址已被使用 DHCP RELEASE:客戶端到伺服器,放棄網路地址和取消 剩餘的租約時間 DHCP INFORM:客戶端到伺服器, 客戶端如果需要從DHCP 伺服器端獲取更為詳細的配置信息,則發送Inform報文向 伺服器進行請求,極少用到 ♦ 續租   50% :租賃時間達到50%時來續租,剛向DHCP伺服器發向新的DHCPREQUEST 請求。如果dhcp服務沒有拒絕的理由,則回應DHCPACK信息。當DHCP客戶端 收到該應答信息     後,就重新開始新的租用周期   87.5%:如果之前DHCP Server沒有回應續租請求,等到租約期的7/8時,主機 會再發送一次廣播請求 ♦ 同網段多DHCP服務   DHCP服務必須基於本地   先到先得的原則 ♦ 跨網段   RFC(請求入解) 1542 Compliant Routers #可以通過路由器   dhcrelay: 中繼 #可以找代理,事先知道dhcp的伺服器,如果發現有客戶端的請求通過單播向dhcp伺服器要一個地址,然後給客戶端 通常情況下 可以在路由器上在網卡介面上配一個代理,啟用次功能 ♦ 相關協議   Arp 免費arp:   rarp:把mak地址解析成ip地址,當自己的mak地址是固定的,就向dhcp伺服器尋求相對應的ip地址,比較固定 DHCP服務實現   1Linux DHCP協議的實現程式:dhcp, dnsmasq(dhcp,dns)    2 Dhcp Server      /usr/sbin/dhcpd       /etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd       /etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6     /usr/sbin/dhcrelay       /etc/rc.d/init.d/dhcrelay     dhcp server:67/udp     dhcp client: 68/udp     dhcpv6 client:546/udp 3 Dhcp client     dhclient     自動獲取的IP信息: /var/lib/dhclient DHCP配置文件   dhcpd.conf: 幫助參考:man 5 dhcpd.conf 全局配置 subnet { ... } host { }   地址分配記錄: /var/lib/dhcpd/dhcpd.leases    其它配置選項:     filename: 指明引導文件名稱     next-server:提供引導文件的伺服器IP地址   示例:     filename "pxelinux.0";     next-server 192.168.100.100;   檢查語法 service dhcpd configtest dhcpd.conf示例    option domain-name "magedu.com";    option domain-name-servers 192.168.0.1,8.8.8.8;   default-lease-time 86400;   max-lease-time 86400;   subnet 192.168.100.0 netmask 255.255.255.0 {     range 192.168.100.1 192.168.100.200;     option routers 192.168.100.1;   }     PXE介紹 PXE: Preboot Excution Environment 預啟動執行環境 Intel公司研發 基於Client/Server的網路模式,支持遠程主機通過網路從遠端伺服器下載 映像,並由此支持通過網路啟動操作系統 PXE可以引導和安裝Windows,linux等多種操作系統   pxe工作原理
  1. 1:Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一併傳送給Client
  2. :2:Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0
  3. Client執行接收到的pxelinux.0文件
  4. Client向TFTP Server發送針對本機的配置信息文件(在TFTP 服務的pxelinux.cfg目錄下),TFTP將配置文發回Client,繼而Client根據配置文件執行後續操作。
  5. Client向TFTP發送Linux內核請求信息,TFTP接收到消息之後將內核文件發送給Client
  6. Client向TFTP發送根文件請求信息,TFTP接收到消息之後返回Linux根文件系統
  7. Client啟動Linux內核
  8. Client下載安裝源文件,讀取自動化安裝腳本
  PXE自動化安裝CentOS 7 pxe+dhcpd+tftp-server+httpd (實現基於網路的自動化安裝) 一:安裝前準備:   關閉selinux 1. 永久有效 修改 /etc/selinux/config 文件中的 SELINUX="" 為 disabled ,然後重啟。 2. 即時生效 setenforce 0  關閉防火牆 1. 永久性生效 開啟:chkconfig iptables on 關閉:chkconfig iptables off 2. 即時生效,重啟後失效 開啟:service iptables start 關閉:service iptables stop [root@centos7 ~]# systemctl stop firewalld 3:[root@centos6 ~]# ntpdate 192.168.0.1同步時間 二:安裝軟體包 : httpd---tftp-server--- dhcp ---syslinux(相當於grub用來引導程式)--- system-config-kickstart [root@centos7 ~]# yum install httpd tftp-server dhcp syslinux 三:配置文件共用服務: yum倉庫路徑 [root@centos7 ~]# systemctl enable httpd [root@centos7 ~]# systemctl start httpd [root@centos7 ~]# cd /var/www/html/ [root@centos7 /var/www/html]# mkdir -pv centos/7/os/x8_64/ [root@centos7 /var/www/html]# mount /dev/sr0 centos/7/os/x8_64/ 四:準備kickstart文件(應答文件) /var/www/html/ksdir/ks7.cfg 註意:許可權 [root@centos7 /var/www/html]# mkdir ksdir [root@centos7 ~]# mv ks7.cfg /var/www/html/ksdir/ [root@centos7 /var/www/html/ksdir]# chmod +x ks7.cfg 五:配置tftp服務 啟動tftp服務 systemctl enable tftp.socket systemctl start tftp.socket 六:配置DHCP服務 [root@centos7 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf [root@centos7 ~]# vim /etc/dhcp/dhcpd.conf log-facility local7; #記錄日誌級別 subnet 192.168.30.0 netmask 255.255.255.0 { #分配子網,和自己主機一個網段 range 192.168.30.110 192.168.1.254; #地址池 option domain-name-servers 114.114.114.114,1.1.1.1; #DNS option domain-name "laowang.com"; #搜索域 option routers 192.168.30.1; #路由網關 default-lease-time 600; #預設租約時間 max-lease-time 7200; #最大租約時間 next-server 192.168.30.110; #*指向tftp伺服器地址,此處指向本機 filename "pxelinux.0"; #pxe文件名,系統預設為pxelinux.0 } systemctl enable dhcpd 開機自啟動 systemctl start dhcpd 七:準備相關文件 [root@centos7 ~]# cd /var/lib/tftpboot mkdir /var/lib/tftpboot/pxelinux.cfg/ cp /usr/share/syslinux/{pxelinux.0,menu.c32} (菜單風格)/var/lib/tftpboot/ cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /media/isolinux/isolinux.cfg(菜單) /var/lib/tftpboot/pxelinux.cfg/default
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 寫在前面 本文地址:http://www.cnblogs.com/yilezhu/p/9315644.html 作者:yilezhu 上一篇關於Asp.Net Core Web Api圖片上傳的文章使用的是mongoDB進行圖片的存儲,文章發佈後,張隊就來了一句,說沒有使用GridFS。的確博主只是 ...
  • 推薦加【QQ49300063】專業盜取微信密碼,破解微信密碼,查詢微信聊天記錄,不成功不收費!!!! 隨著信息時代的來臨,很多人使用上了微信,微信的出現使得人們的生活變的十便利。人們不僅在工作中使用它,在社交中也讓其發揮了重要的作用。微信現在已經漸漸成為了人們生活中不能缺少的一部分。使用微信除了其方 ...
  • 1、前言 分散式已經成為了當前最熱門的話題,分散式框架也百花齊放,群雄逐鹿。從中心化服務治理框架,到去中心化分散式服務框架,再到分散式微服務引擎,這都是通過技術不斷積累改進而形成的結果。esb,網關,nginx網關 這些中心化服務治理框架現在都是各個公司比較主流的架構,而最近幾年大家炒的比較火的去中 ...
  • 概述 Windows Community Toolkit 3.0 於 2018 年 6 月 2 日 Release,同時正式更名為 Windows Community Toolkit,原名為 UWP Community Toolkit。顧名思義,3.0 版本會更註重整個 Windows 平臺的工具實 ...
  • EF Core中Fluent Api如何刪除指定數據表中的行 ...
  • 前言 這是一個國內TOP1000000000000學校畢業生的個人感想啊~~~ 最近真的很熱啊,自己在公司附近租的房子也沒有空調,淚奔。。。大學畢業也有半個月的時間了,墨跡了很長時間,才用github page把博客搭個差不多。歡迎大家去我的博客去看看啊~~~ 點擊這裡,去看看我的博客啊~~~ 從大 ...
  • 如題 報錯提示: 使用 JSON JavaScriptSerializer 進行序列化或反序列化時出錯。字元串的長度超過了為 maxJsonLength 屬性設置的值。","StackTrace 解決方案 在web.config 中configuration節點 插入 ...
  • 一、Kali簡介 1.1、相關連接 Kali百度百科:https://baike.baidu.com/item/Kali%20linux/8305689?fr=aladdin Kali wiki:https://en.wikipedia.org/wiki/Kali Kali官網:https://ww ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...