在CentOS7.6上安裝自動化運維工具Ansible

来源:https://www.cnblogs.com/solomonxu/archive/2019/04/07/10664207.html
-Advertisement-
Play Games

Ansible是一款優秀的自動化IT運維工具,具有遠程安裝、遠程部署應用、遠程管理能力,支持Windows、Linux、Unix、macOS和大型機等多種操作系統。 這篇隨筆以CentOS 7.6為主機操作系統,演示Ansible工具的安裝過程,將一個本地應用例子安裝到遠程主機,併在遠程主機上運行應... ...


前言

Ansible是一款優秀的自動化IT運維工具,具有遠程安裝、遠程部署應用、遠程管理能力,支持Windows、Linux、Unix、macOS和大型機等多種操作系統。

下麵就以CentOS 7.6為主機操作系統,演示安裝Ansible工具的過程,將一個本地應用例子安裝到遠程主機,併在遠程主機上運行應用。

 一、環境準備

完成這個例子,最少需要兩台主機,一臺安裝Ansible運維工具本身,用作管理主機,一臺用作遠程目標主機。

兩台主機都預先安裝了CentOS 7.6操作系統。

# Ansible管理主機

192.168.6.190  root@k3s-vip

# 遠程目標主機

 192.168.6.193  root@k3s-node3 

二、安裝Ansible運維工具

使用SSH登錄到擬安裝Ansible的主機。

  • 查看系統環境:
[root@k3s-vip ~]# uname -a
Linux k3s-vip 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • 運行安裝命令

Ansible的安裝過程很簡單,只需要一條yum命令。

使用CentOS自帶工具yum自動下載、安裝Ansible。Ansible依賴於Python語言,安裝Ansible時會自動下載、安裝Python語言包。

安裝過程中會提示是否安裝依賴軟體包,全部選y。

[root@k3s-vip ~]# yum install ansible
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: centos.ustc.edu.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.cqu.edu.cn
base                                                                                                                                                                                   | 3.6 kB  00:00:00     
extras                                                                                                                                                                                 | 3.4 kB  00:00:00     
updates                                                                                                                                                                                | 3.4 kB  00:00:00     
(1/2): extras/7/x86_64/primary_db                                                                                                                                                      | 187 kB  00:00:01     
(2/2): updates/7/x86_64/primary_db                                                                                                                                                     | 3.4 MB  00:00:15     
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.4.2.0-2.el7 will be installed
--> Processing Dependency: sshpass for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python2-jmespath for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-passlib for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-paramiko for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-jinja2 for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-httplib2 for package: ansible-2.4.2.0-2.el7.noarch
--> Processing Dependency: python-cryptography for package: ansible-2.4.2.0-2.el7.noarch
--> Running transaction check
---> Package python-httplib2.noarch 0:0.9.2-1.el7 will be installed
---> Package python-jinja2.noarch 0:2.7.2-2.el7 will be installed
--> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-2.el7.noarch
--> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-2.el7.noarch
---> Package python-paramiko.noarch 0:2.1.1-9.el7 will be installed
--> Processing Dependency: python2-pyasn1 for package: python-paramiko-2.1.1-9.el7.noarch
---> Package python-passlib.noarch 0:1.6.5-2.el7 will be installed
---> Package python2-cryptography.x86_64 0:1.7.2-2.el7 will be installed
--> Processing Dependency: python-idna >= 2.0 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-cffi >= 1.4.1 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-enum34 for package: python2-cryptography-1.7.2-2.el7.x86_64
---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
--> Running transaction check
---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
---> Package python-cffi.x86_64 0:1.6.0-5.el7 will be installed
--> Processing Dependency: python-pycparser for package: python-cffi-1.6.0-5.el7.x86_64
---> Package python-enum34.noarch 0:1.0.4-1.el7 will be installed
---> Package python-idna.noarch 0:2.4-1.el7 will be installed
---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed
---> Package python2-pyasn1.noarch 0:0.1.9-7.el7 will be installed
--> Running transaction check
---> Package python-pycparser.noarch 0:2.14-1.el7 will be installed
--> Processing Dependency: python-ply for package: python-pycparser-2.14-1.el7.noarch
--> Running transaction check
---> Package python-ply.noarch 0:3.4-11.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================
 Package                                                   Arch                                        Version                                             Repository                                    Size
==============================================================================================================================================================================================================
Installing:
 ansible                                                   noarch                                      2.4.2.0-2.el7                                       extras                                       7.6 M
Installing for dependencies:
 python-babel                                              noarch                                      0.9.6-8.el7                                         base                                         1.4 M
 python-cffi                                               x86_64                                      1.6.0-5.el7                                         base                                         218 k
 python-enum34                                             noarch                                      1.0.4-1.el7                                         base                                          52 k
 python-httplib2                                           noarch                                      0.9.2-1.el7                                         extras                                       115 k
 python-idna                                               noarch                                      2.4-1.el7                                           base                                          94 k
 python-jinja2                                             noarch                                      2.7.2-2.el7                                         base                                         515 k
 python-markupsafe                                         x86_64                                      0.11-10.el7                                         base                                          25 k
 python-paramiko                                           noarch                                      2.1.1-9.el7                                         updates                                      269 k
 python-passlib                                            noarch                                      1.6.5-2.el7                                         extras                                       488 k
 python-ply                                                noarch                                      3.4-11.el7                                          base                                         123 k
 python-pycparser                                          noarch                                      2.14-1.el7                                          base                                         104 k
 python2-cryptography                                      x86_64                                      1.7.2-2.el7                                         base                                         502 k
 python2-jmespath                                          noarch                                      0.9.0-3.el7                                         extras                                        39 k
 python2-pyasn1                                            noarch                                      0.1.9-7.el7                                         base                                         100 k
 sshpass                                                   x86_64                                      1.06-2.el7                                          extras                                        21 k

Transaction Summary
==============================================================================================================================================================================================================
Install  1 Package (+15 Dependent packages)

Total download size: 12 M
Installed size: 57 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/python-babel-0.9.6-8.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY                                  ]  0.0 B/s | 574 kB  --:--:-- ETA 
Public key for python-babel-0.9.6-8.el7.noarch.rpm is not installed
(1/16): python-babel-0.9.6-8.el7.noarch.rpm                                                                                                                                            | 1.4 MB  00:00:00     
(2/16): python-idna-2.4-1.el7.noarch.rpm                                                                                                                                               |  94 kB  00:00:00     
(3/16): python-enum34-1.0.4-1.el7.noarch.rpm                                                                                                                                           |  52 kB  00:00:00     
Public key for python-httplib2-0.9.2-1.el7.noarch.rpm is not installed                   13% [==========-                                                                   ] 1.5 MB/s | 1.6 MB  00:00:06 ETA 
(4/16): python-httplib2-0.9.2-1.el7.noarch.rpm                                                                                                                                         | 115 kB  00:00:00     
(5/16): python-jinja2-2.7.2-2.el7.noarch.rpm                                                                                                                                           | 515 kB  00:00:00     
(6/16): python-passlib-1.6.5-2.el7.noarch.rpm                                                                                                                                          | 488 kB  00:00:00     
Public key for python-paramiko-2.1.1-9.el7.noarch.rpm is not installed
(7/16): python-paramiko-2.1.1-9.el7.noarch.rpm                                                                                                                                         | 269 kB  00:00:00     
(8/16): python-ply-3.4-11.el7.noarch.rpm                                                                                                                                               | 123 kB  00:00:00     
(9/16): python-pycparser-2.14-1.el7.noarch.rpm                                                                                                                                         | 104 kB  00:00:00     
(10/16): python2-cryptography-1.7.2-2.el7.x86_64.rpm                                                                                                                                   | 502 kB  00:00:00     
(11/16): python2-pyasn1-0.1.9-7.el7.noarch.rpm                                                                                                                                         | 100 kB  00:00:00     
(12/16): python2-jmespath-0.9.0-3.el7.noarch.rpm                                                                                                                                       |  39 kB  00:00:00     
(13/16): sshpass-1.06-2.el7.x86_64.rpm                                                                                                                                                 |  21 kB  00:00:00     
(14/16): ansible-2.4.2.0-2.el7.noarch.rpm                                                                                                                                              | 7.6 MB  00:00:03     
(15/16): python-cffi-1.6.0-5.el7.x86_64.rpm                                                                                                                                            | 218 kB  00:00:04     
(16/16): python-markupsafe-0.11-10.el7.x86_64.rpm                                                                                                                                      |  25 kB  00:00:04     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                         1.8 MB/s |  12 MB  00:00:06     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python2-pyasn1-0.1.9-7.el7.noarch                                                                                                                                                         1/16 
  Installing : python-enum34-1.0.4-1.el7.noarch                                                                                                                                                          2/16 
  Installing : python-httplib2-0.9.2-1.el7.noarch                                                                                                                                                        3/16 
  Installing : sshpass-1.06-2.el7.x86_64                                                                                                                                                                 4/16 
  Installing : python-babel-0.9.6-8.el7.noarch                                                                                                                                                           5/16 
  Installing : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                                                       6/16 
  Installing : python-passlib-1.6.5-2.el7.noarch                                                                                                                                                         7/16 
  Installing : python-ply-3.4-11.el7.noarch                                                                                                                                                              8/16 
  Installing : python-pycparser-2.14-1.el7.noarch                                                                                                                                                        9/16 
  Installing : python-cffi-1.6.0-5.el7.x86_64                                                                                                                                                           10/16 
  Installing : python-markupsafe-0.11-10.el7.x86_64                                                                                                                                                     11/16 
  Installing : python-jinja2-2.7.2-2.el7.noarch                                                                                                                                                         12/16 
  Installing : python-idna-2.4-1.el7.noarch                                                                                                                                                             13/16 
  Installing : python2-cryptography-1.7.2-2.el7.x86_64                                                                                                                                                  14/16 
  Installing : python-paramiko-2.1.1-9.el7.noarch                                                                                                                                                       15/16 
  Installing : ansible-2.4.2.0-2.el7.noarch                                                                                                                                                             16/16 
  Verifying  : python-idna-2.4-1.el7.noarch                                                                                                                                                              1/16 
  Verifying  : python-markupsafe-0.11-10.el7.x86_64                                                                                                                                                      2/16 
  Verifying  : python-jinja2-2.7.2-2.el7.noarch                                                                                                                                                          3/16 
  Verifying  : python-ply-3.4-11.el7.noarch                                                                                                                                                              4/16 
  Verifying  : python-passlib-1.6.5-2.el7.noarch                                                                                                                                                         5/16 
  Verifying  : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                                                       6/16 
  Verifying  : python-paramiko-2.1.1-9.el7.noarch                                                                                                                                                        7/16 
  Verifying  : python-babel-0.9.6-8.el7.noarch                                                                                                                                                           8/16 
  Verifying  : ansible-2.4.2.0-2.el7.noarch                                                                                                                                                              9/16 
  Verifying  : python-cffi-1.6.0-5.el7.x86_64                                                                                                                                                           10/16 
  Verifying  : sshpass-1.06-2.el7.x86_64                                                                                                                                                                11/16 
  Verifying  : python-httplib2-0.9.2-1.el7.noarch                                                                                                                                                       12/16 
  Verifying  : python2-pyasn1-0.1.9-7.el7.noarch                                                                                                                                                        13/16 
  Verifying  : python-enum34-1.0.4-1.el7.noarch                                                                                                                                                         14/16 
  Verifying  : python-pycparser-2.14-1.el7.noarch                                                                                                                                                       15/16 
  Verifying  : python2-cryptography-1.7.2-2.el7.x86_64                                                                                                                                                  16/16 

Installed:
  ansible.noarch 0:2.4.2.0-2.el7                                                                                                                                                                              

Dependency Installed:
  python-babel.noarch 0:0.9.6-8.el7        python-cffi.x86_64 0:1.6.0-5.el7              python-enum34.noarch 0:1.0.4-1.el7        python-httplib2.noarch 0:0.9.2-1.el7     python-idna.noarch 0:2.4-1.el7    
  python-jinja2.noarch 0:2.7.2-2.el7       python-markupsafe.x86_64 0:0.11-10.el7        python-paramiko.noarch 0:2.1.1-9.el7      python-passlib.noarch 0:1.6.5-2.el7      python-ply.noarch 0:3.4-11.el7    
  python-pycparser.noarch 0:2.14-1.el7     python2-cryptography.x86_64 0:1.7.2-2.el7     python2-jmespath.noarch 0:0.9.0-3.el7     python2-pyasn1.noarch 0:0.1.9-7.el7      sshpass.x86_64 0:1.06-2.el7       

Complete!
安裝Ansible

結果表明,Ansible已經正確安裝。

  • 查看Ansible版本號
[root@k3s-vip ~]# ansible --version
ansible 2.4.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

Ansible的版本號是2.4.2.0,依賴的Python語言包版本號是2.7.5。

安裝Ansible不是目的,Ansible的強大功能是自動化安裝、部署和運行。下麵以一個小例子來演示Ansible的IT運維能力。


三、建立主機信任關係

 Ansible是基於SSH來管理遠程主機的,為了能自動化運行,需要在Ansible管理主機與遠程目標主機之間建立SSH信任關係。

信任關係建立後,Ansible就可以自由訪問目標主機。

  • 從Ansible管理主機遠程登錄到目標主機:

以root用戶遠程登錄目標主機,提示時選擇yes,輸入遠程目標主機上的root用戶密碼。因為需要在遠程目標主機上安裝軟體包,使用root用戶是必須的。

[root@k3s-vip ~]# ssh root@k3s-node3 
The authenticity of host 'k3s-node3 (192.168.6.193)' can't be established.
ECDSA key fingerprint is SHA256:v8yvQmBzZWZrQzhIn4lNMgTsVK7C0lHaEcvdL9cqdno.
ECDSA key fingerprint is MD5:a0:aa:14:14:7e:7c:98:67:c1:9a:e4:aa:0d:ce:32:83.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'k3s-node3,192.168.6.193' (ECDSA) to the list of known hosts.
root@k3s-node3's password: 
Last login: Sun Apr  7 11:09:20 2019 from 192.168.6.1
  •  在Ansible管理主機生成RSA密鑰對(公鑰/私鑰)
[root@k3s-vip ~]# ssh-keygen -t rsa
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:3GNNAxe62c9R505oFL0mkoKYJ53d2XjvP0cIWEsjvX8 root@k3s-vip
The key's randomart image is:
+---[RSA 2048]----+
|          ..o... |
|          .+=  ..|
|      + + o=B+. +|
|     + * +.%+* *.|
|      o S B =oB.o|
|         . . +o=E|
|              +o.|
|               o.|
|                =|
+----[SHA256]-----+
  • 複製Ansible管理主機的公鑰到遠程目標主機
[root@k3s-vip ~]#  scp -p ~/.ssh/id_rsa.pub root@192.168.6.193:/root/.ssh/authorized_keys
root@192.168.6.193's password: 
         100%  405   605.6KB/s   00:00 
id_rsa.pub     
  • 再次驗證SSH登錄

從Ansible主機SSH登錄到目標主機:

[root@k3s-vip ~]# ssh 192.168.6.193
Last login: Sun Apr  7 12:00:19 2019 from k3s-vip
[root@k3s-node3 ~]# 

結果顯示,可以免密碼登錄了。

配置主機信任的過程有點麻煩,但是配置一次就可以永久免密登錄,比起每次登錄輸入密碼還是值得的。

四、配置Ansible環境

新建一個Shell腳本文件show_hosts.sh,功能很簡單,輸出日期時間和/etc/hosts文件的內容到控制台。

編寫遠程安裝的Ansible部署文件,將show_hosts.sh文件安裝到遠程主機的/user/loca/bin目錄下。

在遠程主機運行腳本,然後刪除腳本。

  • 新建Shell腳本
[root@k3s-vip ~]# mkdir -p /root/ansible
[root@k3s-vip ~]# cd /root/ansible/
[root@k3s-vip ansible]# vi show_hosts.sh 
[root@k3s-vip ansible]# chmod +x show_hosts.sh 
[root@k3s-vip ansible]# cat show_hosts.sh 

#!/usr/bin/bash 
date 
cat /etc/hosts
  • 在本地測試腳本
[root@k3s-vip ~]# ./show_hosts.sh 
Sun Apr  7 14:42:22 CST 2019
127.0.0.1   localhost localhost.localdomain

192.168.6.190  k3s-vip
192.168.6.193  k3s-node3

輸出了當前日期時間和/etc/hosts文件的內容。

  • 查看Ansible配置目錄
[root@k3s-vip ~]# ls -ln /etc/ansible/  
total 24
-rw-r--r-- 1 0 0 19179 Jan 30  2018 ansible.cfg  # Ansible配置文件
-rw-r--r-- 1 0 0  1016 Jan 30  2018 hosts  # Ansible主機文件
drwxr-xr-x 2 0 0     6 Jan 30  2018 roles  # 角色文件
  • 修改/etc/ansible/hosts文件

修改hosts文件,在文件最後添加主機組k3s-node以及組內主機IP:

[k3s-node]

192.168.6.193

[root@k3s-vip ~]# cd  /etc/ansible/  
[root@k3s-vip ansible]# vi hosts 
[root@k3s-vip ansible]# cat hosts 
# This is the default ansible 'hosts' file.
# 
...
[k3s-node]
192.168.6.193
  • 測試遠程主機的連通性
[root@k3s-vip ansible]# ansible k3s-node -m ping              
192.168.6.193 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

子命令ping會依次向主機組k3s-node內的各個主機發出報文,驗證網路連通性。

 

五、編寫playbook劇本文件

 playbook是預先編寫的描述性劇本,ansible會逐個執行playbook劇本內的命令。

  •  編寫playbook文件

 playbook文件是yaml語言格式描述的。show_hosts.yaml劇本分為三個子任務:

複製shell腳本到遠程主機;

在遠程主機執行shell腳本,休眠3秒;

最後刪除腳本。

[root@k3s-vip ansible]# cd /root/ansible/
[root@k3s-vip ansible]# 
[root@k3s-vip ansible]# cat show_hosts.yaml   
- name: a sample for show /etc/hosts
  hosts: k3s-node
  remote_user: root
  tasks:
  - name: copy show_hosts shell
    file:
      src: '{{

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 打開「終端」,輸入以下內容,然後「Return」鍵,這樣就把隱藏的文件和文件夾顯示了; 隱藏原本的隱藏文件和文件夾,將上述命令替換成: 註:該命令適用於 OS X Mavericks 和 OS X Yosemite 系統。對於還在使用 OS X Mountain Lion 或是更早版本的系統的 Ma ...
  • 本章節對Exchange 各個主要發行版進行簡單彙總,分別列出每個服務包 (SP) 的內部版本號、累積更新 (CU) 或特定 Exchange 版本的更新彙總 (RU)。彙總內容適用於Exchange Server 2019、Exchange Server 2016、Exchange Server ... ...
  • 目錄 1、樹狀目錄結構圖 2、/目錄 3、/etc/目錄 4、/usr/目錄 5、/var/目錄 6、/proc/目錄 7、/dev/目錄 該文章主要來自於網路進行整理。 目錄結構參考地址: http://www.hudong.com/wiki/linux%E7%9B%AE%E5%BD%95%E7% ...
  • 這個pxe-e55" 錯誤表示 pxe 客戶端已向埠4011上的代理 dhcp 伺服器發送請求, 但未收到答覆。似乎只有在dhcp 伺服器上設置了 dhcp 類標識符選項 #60, 但同一臺電腦上沒有在埠4011上運行的代理 dhcp 服務時,才會出現此問題。 如果在不同的電腦上操作 dhc ...
  • DNS分離解析技術 yum install bind-chroot systemctl restart named systemctl enable named vim /etc/named.conf vim /etc/named.rfc1912.zones 配置網卡 cd /var/named/ ...
  • Linux終端 進入編輯IP地址命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 按鍵“i”:進行編輯 按鍵“ESC”:退出編輯 按鍵“:”:輸入wq,退出 重啟網路服務命令:/etc/init.d/network restart 虛擬終端 minget ...
  • 一、NFS(網路文件系統,實現linux系統上文件共用) 伺服器配置 yum install nfs-utils (安裝NFS軟體包) iptables -F (清空防火牆) service iptables save (保存防火牆配置) mkdir /nfsfile (創建共用文件夾) chmod ...
  • 簡單的ss搭建腳本 #!/bin/bash #if [ "$(yum search all python-setuptools | grep python-setuptools| wc -l)" -lt "2" ]; then #if [ "${1}" == "log" ];thenlogger - ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...