3.1 Ansible 的使用和配置管理

Ansible 的使用和配置管理

文章目錄

  • Ansible 的使用和配置管理
    • Ansible 基礎
    • Ansible 模塊和變量
    • 主機管理和組織
    • 角色和劇本
    • 部署應用和配置
    • 自動化與批量操作
    • Ansible 常見用例
    • Ansible 最佳實踐和性能優化

大綱

  1. Ansible 簡介和特點
  • 介紹 Ansible 的定義和作用,以及它在配置管理和自動化部署中的優勢。
  • 強調 Ansible 的無代理(Agentless)特性和簡單易用的語法。
  1. Ansible 安裝和配置
    • 演示如何安裝 Ansible,并配置主控節點(Control Node)和被控節點(Managed Node)。
    • 詳細介紹 Ansible 配置文件和目錄結構。
  2. Ansible 基礎
    • Ansible Ad-Hoc 命令:使用 Ad-Hoc 命令來進行簡單的操作,如文件復制、命令執行等。
    • Ansible Playbook:介紹 Playbook 的概念,以及如何編寫 Playbook 文件來描述配置和任務。
  3. Ansible 模塊和變量
    • 了解 Ansible 模塊的種類,包括系統管理、文件操作、軟件包管理等。
    • 演示如何在 Playbook 中使用變量,以及如何從外部文件或命令中獲取變量值。
  4. 主機管理和組織
    • 介紹如何定義主機清單文件(Inventory),包括主機的分組和變量設置。
    • 演示如何在 Playbook 中根據主機組織和特定變量來執行任務。
  5. 角色和劇本
    • 引入 Ansible 角色的概念,將 Playbook 中的任務和變量封裝成可重用的角色。
    • 展示如何創建和組織 Ansible 角色,以實現模塊化的配置管理。
  6. 部署應用和配置
    • 使用 Ansible 部署應用程序,包括下載代碼、安裝依賴、配置文件等。
    • 演示如何根據不同環境(開發、測試、生產)來應用不同的配置。
  7. 自動化與批量操作
    • 強調 Ansible 的自動化能力,例如自動化部署、配置更新和系統維護。
    • 演示如何編寫 Cron 任務、自動化備份和批量操作。
  8. Ansible 常見用例
    • 分析 Ansible 在不同場景下的應用,如基礎設施自動化、應用部署、配置管理等。
    • 通過實際案例,展示 Ansible 如何提高效率、減少人工操作和確保一致性。
  9. 最佳實踐和性能優化
    • 提供 Ansible 的最佳實踐,包括目錄結構、變量命名規范等。
    • 強調性能優化技巧,如并發執行、減少 Playbook 執行時間等。

通過本節的內容,讀者將深入了解 Ansible 的基本使用方法和配置管理原理。同時,通過實際案例的引導,讀者能夠將 Ansible 應用于真實的運維場景,提高效率、減少錯誤和確保系統的一致性。

##Ansible 簡介和特點

Ansible 是一款強大的自動化工具,廣泛用于配置管理、應用部署和任務自動化。它的主要特點使得它成為運維工程師和開發人員的首選工具之一。

定義和作用:Ansible 是一種開源的配置管理和自動化工具,它可以幫助管理大規模的基礎設施、應用程序和網絡。Ansible 的主要作用包括自動化部署、配置管理、任務協調和應用程序發布。

優勢:Ansible 具有以下優勢,使得它在運維領域備受歡迎:

  • 無代理(Agentless):Ansible 無需在被管理的目標主機上安裝任何代理或客戶端,通過 SSH 協議進行通信,降低了管理和維護的復雜度。
  • 簡單易用的語法:Ansible 使用 YAML 格式的 Playbooks,讓配置管理和自動化任務的編寫變得簡單明了。即使對于初學者,也可以快速上手并編寫出功能強大的自動化任務。
  • 基于劇本(Playbooks):Ansible 使用 Playbooks 定義配置和任務,使得多步驟的自動化任務變得可讀性高,并能夠輕松擴展。
  • 強大的模塊庫:Ansible 提供了豐富的模塊,用于執行各種任務,包括文件操作、軟件安裝、系統配置等。用戶也可以自定義模塊來滿足特定需求。
  • 支持多種平臺:Ansible 可以管理多種操作系統和云平臺,包括 Linux、Windows、虛擬化平臺和公有云服務商。
  • 可擴展性:Ansible 支持多種插件和擴展機制,可以與其他工具和平臺集成,滿足不同場景的需求。

通過這些特點,Ansible 成為了自動化運維、持續集成和配置管理領域的強大工具。其簡單的語法和強大的功能使得團隊能夠更高效地管理基礎設施和應用,降低了運維的負擔。在接下來的內容中,我們將深入探討如何使用 Ansible 進行配置管理和自動化部署,以及一些最佳實踐。

##Ansible 安裝和配置

Ansible 是一款跨平臺的自動化工具,安裝和配置它是開始使用的第一步。本節將演示如何安裝 Ansible 并配置主控節點和被控節點。

1. 安裝 Ansible

首先,我們需要在主控節點上安裝 Ansible。Ansible 可以在 Linux、macOS 和 Windows 上運行。以下是在不同操作系統上安裝 Ansible 的基本步驟:

  • Linux(例如 Ubuntu):在大多數 Linux 發行版上,你可以使用包管理器安裝 Ansible。例如,在 Ubuntu 上,可以使用以下命令進行安裝:
sudo apt update
sudo apt install ansible
  • macOS:在 macOS 上,你可以使用 Homebrew 來安裝 Ansible:

brew install ansible
  • Windows:在 Windows 上,可以使用 Windows 子系統(WSL)安裝 Ansible。首先安裝 WSL,然后在 WSL 中安裝 Ansible。

2. 配置主控節點

一旦安裝了 Ansible,你需要配置主控節點。主控節點是你執行 Ansible 命令的機器。默認情況下,Ansible 配置文件位于 /etc/ansible/ansible.cfg,但你可以根據需要進行自定義配置。

配置主控節點涉及以下幾個主要步驟:

  • 設置 SSH 密鑰認證:確保你的主控節點可以通過 SSH 訪問被控節點,最好使用密鑰認證而不是密碼認證。
  • 編輯 Ansible 配置文件:在 /etc/ansible/ansible.cfg 中,你可以設置一些全局配置,如默認用戶、庫路徑等。

3. 配置被控節點

被控節點是你希望管理的目標主機,Ansible 會通過 SSH 連接到這些節點并執行任務。

配置被控節點需要以下步驟:

  • 安裝 SSH 服務器:確保被控節點上有 SSH 服務器,以便主控節點可以通過 SSH 連接。
  • 添加被控節點到 Ansible 的 inventory(清單):Ansible 使用一個稱為 “inventory” 的文件來跟蹤被控節點。默認情況下,這個文件位于 /etc/ansible/hosts

配置好主控節點和被控節點后,你就可以開始使用 Ansible 進行配置管理和自動化部署了。在接下來的內容中,我們將深入研究 Ansible Playbooks、模塊、任務等核心概念,以及如何進行系統配置和應用部署。

Ansible 基礎

1. Ansible Ad-Hoc 命令

Ansible Ad-Hoc 命令是用于在被控節點上執行一次性任務的命令行工具。這些命令非常適合簡單的任務,如文件操作、命令執行、軟件包安裝等。

Ad-Hoc 命令使用的語法格式如下:

ansible <host-pattern> -m <module> -a "<module-args>"

其中:

  • <host-pattern> 是指定目標主機的模式,可以是具體的主機名、IP 地址,也可以是 Ansible Inventory 中定義的主機組。
  • -m <module> 指定要使用的 Ansible 模塊,如 copy(復制文件)、command(執行命令)、apt(包管理)等。
  • -a "<module-args>" 指定模塊的參數,根據不同的模塊而變化。

示例 Ad-Hoc 命令:

  • 復制本地文件到遠程主機:ansible webserver -m copy -a "src=/path/to/local/file dest=/remote/path/"
  • 在遠程主機上執行命令:ansible database -m command -a "ls /var/www"
  • 安裝軟件包:ansible appserver -m apt -a "name=nginx state=present"

2. Ansible Playbook

Ansible Playbook 是一種用于描述配置和任務的 YAML 文件。它允許你定義一系列的操作,以便在目標主機上執行。Playbook 是用來實現復雜的自動化操作和配置管理的工具。

一個簡單的 Playbook 示例:

---
- name: 安裝 Nginxhosts: webservertasks:- name: 安裝 Nginxapt:name: nginxstate: present

在這個 Playbook 中:

  • name 字段是 Playbook 的名稱。
  • hosts 字段指定了目標主機組。
  • tasks 字段包含要執行的任務,本例中只有一個任務,即安裝 Nginx。

使用 Playbook 時,可以通過 ansible-playbook 命令來運行:

ansible-playbook nginx-install.yml

這是一個簡單的 Playbook 示例,實際使用中可以包含更多復雜的任務、變量、條件等。Playbook 是 Ansible 中的核心概念,通過編寫 Playbook,你可以實現自動化的配置管理和系統部署。

Ansible 模塊和變量

1. Ansible 模塊

Ansible 模塊是 Ansible 用來在目標主機上執行任務的工具。模塊包括各種功能,如系統管理、文件操作、軟件包管理、數據庫操作等,可以覆蓋多個領域。

一些常見的 Ansible 模塊包括:

  • 系統管理模塊:ping(檢查主機連通性)、reboot(重啟主機)、user(管理用戶)、group(管理用戶組)等。
  • 文件操作模塊:copy(復制文件)、template(模板文件)、file(管理文件屬性)等。
  • 軟件包管理模塊:apt(Debian/Ubuntu 軟件包管理)、yum(CentOS/RHEL 軟件包管理)、dnf(Fedora 軟件包管理)等。

示例:在 Playbook 中使用 user 模塊創建用戶

---
- name: 創建用戶hosts: webservertasks:- name: 創建用戶 johnuser:name: johnstate: present

2. Ansible 變量

在 Ansible 中,變量用于存儲數據,使 Playbook 更加靈活和通用。變量可以包括靜態變量、動態變量、外部變量等。

在 Playbook 中使用變量的方式:

  • 定義主機或主機組的變量。
  • 定義全局變量。
  • 使用 Facts(事實),這是 Ansible 在目標主機上自動收集的信息。

示例:在 Playbook 中使用變量

---
- name: 使用變量hosts: webservervars:app_name: myapptasks:- name: 創建目錄file:path: /var/www/{{ app_name }}state: directory

在這個示例中,app_name 是一個變量,用于指定應用程序的名稱。通過 vars 關鍵字可以在 Playbook 中定義變量,然后可以在任務中使用這個變量。這使得 Playbook 更具通用性,易于修改和管理。

變量可以從 Ansible Inventory 中獲取,也可以從外部文件或命令中獲取。使用變量可以讓 Playbook 更加靈活,適應不同環境和需求。

主機管理和組織

1. 定義主機清單文件(Inventory)

主機清單文件是 Ansible 配置的核心之一,它用于定義 Ansible 將要管理和操作的主機和主機組。通過主機清單文件,我們可以將主機組織起來,分配變量,并對不同的主機組應用不同的操作。

示例:簡單的主機清單文件

iniCopy code[webserver]
server1 ansible_host=192.168.1.10 ansible_user=admin ansible_ssh_pass=123456
server2 ansible_host=192.168.1.11 ansible_user=admin ansible_ssh_pass=123456[database]
db1 ansible_host=192.168.1.20 ansible_user=dbadmin ansible_ssh_pass=dbpassword

在這個示例中,我們定義了兩個主機組:webserverdatabase。每個主機組下都有相應的主機,以及主機的連接信息,如 IP 地址、用戶名和密碼等。這些信息將被用于連接到主機執行任務。

2. 在 Playbook 中組織和使用主機

在 Ansible Playbook 中,我們可以根據主機組織和變量設置來執行任務。這使得可以針對不同的主機組應用不同的配置和操作。

示例:在 Playbook 中使用主機組織和變量

---
- name: 配置 Web 服務器hosts: webservertasks:- name: 安裝 Apacheapt:name: apache2state: present- name: 配置數據庫hosts: databasetasks:- name: 安裝 MySQLapt:name: mysql-serverstate: present

在這個示例中,我們定義了兩個 Playbook,分別用于配置 Web 服務器和數據庫。通過 hosts 關鍵字,我們指定了每個 Playbook 應該在哪個主機組上執行。這樣,我們可以將不同的任務針對不同的主機組來執行,實現更靈活的配置管理。

在 Ansible 中,主機管理和組織是非常重要的,可以根據實際需求對主機進行分組,分配變量,以便更好地管理和執行任務。

角色和劇本

1. Ansible 角色概述

Ansible 角色是一種組織和封裝 Ansible Playbook 中的任務和變量的機制,它使得配置管理可以更加模塊化和可重用。通過將一組任務、變量和模板封裝在一個角色中,我們可以在多個 Playbook 中重復使用這些角色,從而實現更好的代碼復用和維護性。

2. 創建和組織 Ansible 角色

創建 Ansible 角色通常包括以下步驟:

  1. 創建角色目錄:在 Ansible 項目中,可以創建一個專門用于存放角色的目錄,通常位于項目的 roles 目錄下。
  2. 定義角色的結構:一個角色通常包含 tasksvarsfilestemplates 等子目錄,分別用于存放任務、變量、文件和模板等資源。
  3. 編寫角色的任務:在 tasks 目錄下編寫任務文件,用于定義角色的操作和配置。
  4. 定義角色的變量:可以在 vars 目錄下定義角色的默認變量,也可以在 Playbook 中覆蓋這些變量。
  5. 使用角色:在 Playbook 中引用角色,并將其應用到特定的主機組或主機上。

示例:創建和使用 Ansible 角色

my_project/
|-- roles/
|   |-- webserver/
|   |   |-- tasks/
|   |   |   |-- main.yml
|   |   |-- vars/
|   |   |   |-- main.yml
|-- my_playbook.yml

在這個示例中,我們創建了一個名為 webserver 的角色,用于配置 Web 服務器。角色目錄包括 tasksvars 子目錄,分別用于存放任務和變量。在 Playbook my_playbook.yml 中,我們可以引用這個角色并將其應用到指定的主機組。

使用 Ansible 角色可以將配置管理的邏輯和模塊進行良好的封裝,使得 Playbook 更加清晰和簡潔,同時也方便了角色的復用和維護。

部署應用和配置

1. 使用 Ansible 部署應用程序

在運維中,自動化應用程序的部署是一項關鍵任務。Ansible 提供了豐富的模塊和功能,可以幫助我們實現應用程序的自動化部署。以下是部署應用程序的一般步驟:

  1. 下載代碼:使用 Ansible 提供的模塊(如 gitsvn 等)從代碼倉庫下載應用程序的源代碼。
  2. 安裝依賴:通過 Ansible 模塊(如 yumapt 等)安裝應用程序所需的依賴包。
  3. 配置文件:將事先準備好的配置文件部署到目標主機,可以使用 Ansible 的 copy 模塊或模板來實現。
  4. 啟動應用:使用 Ansible 模塊(如 commandsystemd 等)啟動應用程序。
  5. 驗證部署:通過合適的檢查機制(如端口檢測、API 調用等)來驗證應用程序的部署是否成功。

2. 針對不同環境的配置

在真實的運維場景中,我們通常需要將應用程序部署到不同的環境中,如開發、測試、生產等。每個環境可能有不同的配置需求,比如數據庫連接、日志級別、調試模式等。使用 Ansible,可以根據不同的環境應用不同的配置。具體實現方式包括:

  • 在 Ansible 的主機清單文件中,為不同環境分別定義主機組,如 [dev][test][prod]
  • 在角色或 Playbook 中,根據主機組來引用不同的配置文件或變量文件。
  • 通過 Ansible 的 when 條件判斷,在 Playbook 中根據不同環境來應用不同的配置。

這樣,我們可以靈活地根據不同環境的需要,將適當的配置應用到不同的主機組上,從而實現了配置的分離和環境的隔離。

自動化與批量操作

1. Ansible 的自動化能力

Ansible 是一款強大的自動化工具,可以幫助運維團隊實現自動化部署、配置更新和系統維護等任務。通過編寫 Ansible Playbook,可以描述系統的期望狀態,然后 Ansible 會自動將系統配置更新到這個期望狀態,從而實現自動化。

2. 編寫 Cron 任務

Cron 是用于定期執行任務的工具,在運維中經常用于自動化的定時任務。我們可以使用 Ansible 來編寫和管理 Cron 任務,例如定期備份、日志清理等任務。以下是編寫 Cron 任務的示例:

- name: 添加定時備份任務cron:name: "Backup My App"minute: "0"hour: "3"job: "bash /path/to/backup_script.sh"

上述 Ansible Playbook 會在每天凌晨 3 點執行 /path/to/backup_script.sh 腳本。

3. 自動化備份和批量操作

使用 Ansible 還可以實現自動化備份和批量操作。我們可以編寫 Playbook 來定期執行備份任務,保護重要數據。另外,Ansible 的 Ad-Hoc 命令和 Playbook 都支持同時操作多個主機,可以實現批量操作的需求。例如,以下 Playbook 可以同時在多臺主機上執行命令:

- name: 在多臺主機上執行命令hosts: my_grouptasks:- name: 執行命令command: echo "Hello from Ansible"

上述 Playbook 會在 my_group 主機組中的所有主機上執行命令 echo "Hello from Ansible"

通過這些自動化和批量操作的功能,Ansible 能夠大幅提高運維效率,減少手動操作的工作量,確保任務的一致性和可靠性。

Ansible 常見用例

Ansible 是一個多功能的自動化工具,適用于許多不同的運維場景。下面我們將分析 Ansible 在幾個常見的用例中的應用,以及通過實際案例展示其如何提高效率、減少人工操作和確保一致性。

1. 基礎設施自動化

在基礎設施自動化中,Ansible 可以用于自動化服務器和網絡設備的配置、初始化和部署。例如,使用 Ansible 可以輕松創建和配置大量的虛擬機、物理服務器和云實例,確保它們都按照統一的標準進行配置。同時,Ansible 可以協助網絡設備的自動化配置,如交換機、路由器等。

實際案例:

- name: 配置服務器hosts: my_grouptasks:- name: 安裝必要的軟件包apt:name: "{{ item }}"with_items:- nginx- mysql- php- name: 啟動服務service:name: "{{ item }}"state: startedwith_items:- nginx- mysql- php-fpm

上述 Ansible Playbook 可以自動在 my_group 主機組的所有主機上安裝并啟動 nginx、mysql 和 php-fpm 服務。

2. 應用部署

Ansible 在應用部署方面表現出色。通過編寫 Ansible Playbook,可以實現應用的自動化部署、更新和升級。這在持續集成和持續部署中尤為重要,能夠提高交付效率,確保應用的一致性和可靠性。

實際案例:

- name: 部署應用hosts: my_app_serverstasks:- name: 從 Git 下載代碼git:repo: https://github.com/my_org/my_app.gitdest: /path/to/appversion: masternotify:- restart my_app- name: 安裝依賴command: npm installargs:chdir: /path/to/apphandlers:- name: 重啟應用service:name: my_appstate: restarted

上述 Ansible Playbook 可以自動從 Git 下載應用代碼,并在應用服務器上進行部署和依賴安裝。當應用代碼更新時,會自動觸發應用的重啟。

3. 配置管理

配置管理是 Ansible 的另一大用例。它可以幫助管理大規模的配置文件,確保不同的主機和應用之間的配置一致性。通過 Ansible,可以輕松管理各種配置,如系統配置、應用配置、數據庫配置等。

實際案例:

- name: 配置數據庫連接hosts: my_app_serverstasks:- name: 創建數據庫配置文件template:src: db_config.j2dest: /path/to/app/db_config.ininotify:- restart my_apphandlers:- name: 重啟應用service:name: my_appstate: restarted

上述 Ansible Playbook 可以自動在應用服務器上創建數據庫連接的配置文件,并在配置文件發生更改時觸發應用的重啟。

通過以上實際案例,我們可以看到 Ansible 在基礎設施自動化、應用部署和配置管理中的應用場景,它能夠幫助運維團隊提高效率,減少人工操作,確保配置一致性,使得系統更加穩定可靠。

Ansible 最佳實踐和性能優化

在使用 Ansible 進行配置管理和自動化部署時,遵循最佳實踐可以提高代碼的可維護性、可讀性和性能。此外,優化 Ansible 的執行性能也是很重要的,可以提高效率和響應速度。下面是一些 Ansible 的最佳實踐和性能優化技巧:

1. 目錄結構和組織

  • 將 Ansible 項目按照功能、環境或項目來組織。
  • 使用清晰的目錄結構,例如 inventory 存放主機清單、playbooks 存放 Playbook 文件、roles 存放角色等。
  • 使用合理的命名規范,使得文件和變量的命名具有可讀性。

2. 使用版本控制

  • 將 Ansible 項目納入版本控制系統(如 Git),確保歷史記錄可追溯。
  • 使用版本標簽和分支來管理不同環境的配置。

3. 使用 Ansible Galaxy

  • Ansible Galaxy 是一個用于分享和管理 Ansible 角色的平臺。
  • 在 Ansible Galaxy 中搜索和使用已有的角色,避免重復造輪子。

4. 使用變量和模板

  • 使用變量來管理可配置項,使得配置信息易于修改和維護。
  • 使用 Jinja2 模板來動態生成配置文件,使得配置文件具有靈活性。

5. 并發執行

  • 針對適當的任務和劇本,啟用 Ansible 的并發執行模式,提高任務的執行效率。
  • 通過配置 forks 參數來控制并發數,但要注意不要過多影響系統性能。

6. 優化 Playbook 執行時間

  • 將大的 Playbook 拆分成多個小的角色和劇本,有助于減少執行時間。
  • 使用異步執行模式來處理需要較長時間的任務,提高整體執行效率。

7. 避免不必要的任務

  • 定期審查和清理不再需要的任務和角色,減少不必要的執行和資源占用。

8. 控制 Ansible 輸出

  • 在執行命令時,使用 -v 參數來控制輸出的詳細程度,避免輸出過多影響可讀性。

享和管理 Ansible 角色的平臺。

  • 在 Ansible Galaxy 中搜索和使用已有的角色,避免重復造輪子。

4. 使用變量和模板

  • 使用變量來管理可配置項,使得配置信息易于修改和維護。
  • 使用 Jinja2 模板來動態生成配置文件,使得配置文件具有靈活性。

5. 并發執行

  • 針對適當的任務和劇本,啟用 Ansible 的并發執行模式,提高任務的執行效率。
  • 通過配置 forks 參數來控制并發數,但要注意不要過多影響系統性能。

6. 優化 Playbook 執行時間

  • 將大的 Playbook 拆分成多個小的角色和劇本,有助于減少執行時間。
  • 使用異步執行模式來處理需要較長時間的任務,提高整體執行效率。

7. 避免不必要的任務

  • 定期審查和清理不再需要的任務和角色,減少不必要的執行和資源占用。

8. 控制 Ansible 輸出

  • 在執行命令時,使用 -v 參數來控制輸出的詳細程度,避免輸出過多影響可讀性。

通過遵循以上最佳實踐和性能優化技巧,可以使得 Ansible 在配置管理和自動化部署中更加高效、可靠,提升運維效率,同時減少潛在的問題和錯誤。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38451.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38451.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38451.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java】Guava的Striped類。

Striped類,它提供了一種線程安全的分段鎖(Striped Locking)機制。 Striped類可以用于將一組資源或操作分成多個段(Stripes),每個段上都有一個獨立的鎖。這種機制可以在并發訪問時提供更好的性能,因為不同線程可以同時訪問不同的段而不會相互阻塞。通常,Striped鎖適用于…

pytorch3d成功安裝

一、pytorch3d是什么&#xff1f; PyTorch3D的目標是幫助加速深度學習和3D交叉點的研究。3D數據比2D圖像更復雜&#xff0c;在從事Mesh R-CNN和C3DPO等項目時&#xff0c;我們遇到了一些挑戰&#xff0c;包括3D數據表示、批處理和速度。我們開發了許多有用的算子和抽象&#xf…

【Visual Studio Code】--- Win11 安裝 VS Code 超詳細

Win11 安裝 VS Code 超詳細 概述一、下載 Vscode二、安裝 Vscode 概述 一個好的文章能夠幫助開發者完成更便捷、更快速的開發。書山有路勤為徑&#xff0c;學海無涯苦作舟。我是秋知葉i、期望每一個閱讀了我的文章的開發者都能夠有所成長。 一、下載 Vscode Vscode官網 二、…

HTTP和HTTPS協議

目錄 一、HTTP和HTTPS區別&#x1f33b; 二、有了https還有使用http場景嗎&#x1f34a; 三、https協議的工作原理&#x1f4a5; 四、https協議的優點和缺點&#x1f35e; 一、HTTP和HTTPS區別&#x1f33b; HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和HTT…

時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價)

時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價) 目錄 時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價)預測結果基本介紹程序設計參考資料 預測結果 基本介紹 基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價) …

macOS - 安裝使用 libvirt、virsh

文章目錄 關于 libvirt使用安裝啟動服務virsh 交互模式virsh 幫助命令 關于 libvirt libvirt 官網&#xff1a; https://libvirt.org/gitlab : https://gitlab.com/libvirt/libvirtgithub : https://github.com/libvirt/libvirt 只讀&#xff0c;gitlab 的鏡像 libvirt是一套…

機器學習之數據集

目錄 1、簡介 2、可用數據集 3、scikit-learn數據集API 3.1、小數據集 3.2、大數據集 4、數據集使用 ?所屬專欄&#xff1a;人工智能 文中提到的代碼如有需要可以私信我發給你&#x1f60a; 1、簡介 當談論數據集時&#xff0c;通常是指在機器學習和數據分析中使用的一組…

ES 概念

es 概念 Elasticsearch是分布式實時搜索、實時分析、實時存儲引擎&#xff0c;簡稱&#xff08;ES&#xff09;成立于2012年&#xff0c;是一家來自荷蘭的、開源的大數據搜索、分析服務提供商&#xff0c;為企業提供實時搜索、數據分析服務&#xff0c;支持PB級的大數據。 -- …

logstash 原理(含部署)

1、ES原理 原理 使?filebeat來上傳?志數據&#xff0c;logstash進??志收集與處理&#xff0c;elasticsearch作為?志存儲與搜索引擎&#xff0c;最后使?kibana展現?志的可視化輸出。所以不難發現&#xff0c;?志解析主要還 是logstash做的事情 從上圖中可以看到&#x…

RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接內存訪問)是一種能力&#xff0c;允許在計算機主板上的設備直接把數據發送到內存中去&#xff0c;數據搬運不需要CPU的參與。 傳統內存訪問需要通過CPU進行數據copy來移動數據&#xff0c;通過CPU將內存中的Buffer1移動到Buffer2中。DMA模…

【圖像分類】理論篇 (4)圖像增強opencv實現

隨機旋轉 隨機旋轉是一種圖像增強技術&#xff0c;它通過將圖像以隨機角度進行旋轉來增加數據的多樣性&#xff0c;從而幫助改善模型的魯棒性和泛化能力。這在訓練深度學習模型時尤其有用&#xff0c;可以使模型更好地適應各種角度的輸入。 原圖像&#xff1a; 旋轉后的圖像&…

1.MySQL數據庫的基本操作

數據庫操作過程&#xff1a; 1.用戶在客戶端輸入 SQL 2.客戶端會把 SQL 通過網絡發送給服務器 3.服務器執行這個 SQL,把結果返回給客戶端 4.客戶端收到結果,顯示到界面上 數據庫的操作 這里的數據庫不是代表一個軟件&#xff0c;而是代表一個數據集合。 顯示當前的數據庫 …

Python中的MetaPathFinder

MetaPathFinder 是 Python 導入系統中的一個關鍵組件&#xff0c;它與 sys.meta_path 列表緊密相關。sys.meta_path 是一個包含 MetaPathFinder 實例的列表&#xff0c;這些實例用于自定義模塊的查找和加載邏輯。當使用 import 語句嘗試導入一個模塊時&#xff0c;Python 會遍歷…

Golang通過alibabaCanal訂閱MySQLbinlog

最近在做redis和MySQL的緩存一致性&#xff0c;一個方式是訂閱MySQL的BinLog文件&#xff0c;我們使用阿里巴巴的Canal的中間件來做。 Canal是服務端和客戶端兩部分構成&#xff0c;我們需要先啟動Canal的服務端&#xff0c;然后在Go程序里面連接Canal服務端&#xff0c;即可監…

Maven - 統一構建規范:Maven 插件管理最佳實踐

文章目錄 Available Plugins開源項目中的使用插件介紹maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 標簽artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一個開源的軟件構建工具&…

零食量販店熱潮:小縣城的新零售革命

零食量販店熱潮&#xff1a;小縣城的新零售革命 目錄 引言零食量販店的快速崛起零食量販店的運營模式量販零食店在小縣城的影響技術在零食量販店的應用未來展望結論 1. 引言 近年來&#xff0c;零食量販店在我國小縣城迅速發展&#xff0c;成為一種新型的零售模式。在一條街…

flutter 二進制轉字符串

通常接口返回的數據都是二進制數據 二進制轉字符串&#xff1a;utf8二進制轉字符串 onRoomMsg.body是二進制編碼 utf8.decode(onRoomMsg.body)然后字符串轉對象 json.decode(utf8.decode(onRoomMsg.body))然后再用fromJson解析 PrankActivityModel prankActivityModel Prank…

新疆大學841軟件工程考研

1&#xff0e;軟件生產的發展經歷了三個階段&#xff0c;分別是____、程序系統時代和軟件工程時代時代。 2&#xff0e;可行性研究從以下三個方面研究每種解決方法的可行性&#xff1a;經濟可行性、社會可行性和_____。 3&#xff0e;HIPO圖的H圖用于描述軟件的層次關系&…

Android 12.0 系統systemui下拉通知欄的通知布局相關源碼分析

1.前言 在android12.0的系統rom開發中,在進行systemui中的下拉通知欄的布局自定義的時候,對于原生systemui的 系統的下拉通知欄的通知布局的了解也是非常重要的,接下來就來分析下相關的下拉通知欄的通知布局的相關 源碼流程,了解這些才方便對通知欄的布局做修改 2.系統sy…

創建maven的Springboot項目出現錯誤:Cannot access alimaven

創建maven的Springboot項目出現錯誤&#xff1a;Cannot access alimaven 1&#xff09;問題2) 分析問題3&#xff09;解決問題 1&#xff09;問題 創建maven的Springboot項目出現錯誤&#xff1a; Cannot access alimaven (http://maven.aliyun.com/nexus/content/groups/p…