Ansible部署

Ansible部署

一、部署環境及前置操作

1、測試環境

注:主機復用原測試環境,主機hostname根據需求調整
硬件環境:N100 x86主機 Proxmox系統
軟件環境:Ubuntu 22.04.3 LTS
軟件版本:redis-7.4.0.tar.gz
主機環境:主機IP          主機名  192.168.0.150 node1	#Ansible管理節點192.168.0.151 node2	#測試節點192.168.0.152 node3	#測試節點

2、主機IP及主機名調整

#配置靜態IP
vi /etc/netplan/00-installer-config.yaml 
#添加以下內容,靜態IP根據個人需求調整
network:version: 2renderer: networkdethernets:ens18:addresses: [192.168.0.150/24]   # 靜態 IP 和子網掩碼dhcp4: false                    # 關閉 DHCProutes:- to: default                 # 默認路由via: 192.168.0.1           # 網關地址nameservers:addresses: [192.168.0.1, 114.114.114.114]  # DNS 服務器
#生效配置
netplan apply     #主機復用原測試環境,主機hostname根據需求調整
#節點1:192.168.0.150 node1
hostnamectl set-hostname node1
#節點2:192.168.0.151 node2
hostnamectl set-hostname node2
#節點3:192.168.0.152 node3
hostnamectl set-hostname node3

3、調整hosts及時間同步

#添加host配置
cat >> /etc/hosts << EOF
192.168.0.150 node1
192.168.0.151 node2
192.168.0.152 node3
EOF
#node節點主機如果是使用其他主機克隆時,注意調整/etc/hosts中127.0.1.1配置,克隆主機默認為原始主機配置#調整系統時區配置
timedatectl set-timezone Asia/Shanghai#安裝時間同步工具chrony
apt install chrony -y#添加時間同步源/etc/chrony/chrony.conf
echo "server time1.aliyun.com iburst" >> /etc/chrony/chrony.conf#啟動服務
systemctl start chrony
systemctl enable chrony#檢查運行狀態
chronyc sources -v

4、配置免密登錄

#192.168.0.150主機執行
root@node1:/etc/ansible# ssh-keygen
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:40g2VL66TKcfb0X5l3alhHZscxP2mgOhL075cocK4iA root@node1
The key's randomart image is:
+---[RSA 3072]----+
|        .        |
|       o    .  o |
|      . .  . =. o|
|     .   .. * *.+|
|      + S  = * *+|
|     o = .+ o *oo|
|  E . = =o + ..o.|
|   . = = ++ + .  |
|      =...o+ .   |
+----[SHA256]-----+
#首次配置免密需要手動輸入密碼
root@node1:/etc/ansible# ssh-copy-id test@192.168.0.151  
root@node1:/etc/ansible# ssh-copy-id test@192.168.0.152 

二、Ansible部署

1、Ansible安裝

Ansible安裝方式有2種,具體安裝方式如下:

1.1、使用apt安裝

在線安裝:

#聯網情況下
apt update
apt install ansible -y

離線安裝:

#離線環境
#在可聯網主機創建相同環境架構本地環境/虛擬機下載安裝包及依賴
mkdir -p /data/ansible_download/ #目錄根據實際進行調整
cd /data/ansible_download/
#下載軟件包及依賴
apt download ansible $(apt-rdepends ansible | grep -v "^ " | grep -v "^lib")
root@node1:/data/ansible_download# ll
total 17128
drwxr-xr-x 2 root root     4096 Jun  3 22:13 ./
drwxr-xr-x 3 root root     4096 Jun  3 22:13 ../
-rw-r--r-- 1 root root 17530700 Apr 29  2021 ansible_2.10.7+merged+base+2.10.8+dfsg-1_all.deb
#安裝,如果有其他deb安裝包,添加到命令
apt install ./ansible_2.10.7+merged+base+2.10.8+dfsg-1_all.deb -y

安裝驗證:

#安裝驗證
root@node1:/data/ansible_download# ansible --version
ansible 2.10.8config file = Noneconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3/dist-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0]
1.2、使用pip安裝

在線安裝:

#聯網情況下
apt update
apt install python3-pip -y
pip3 install ansible
#默認源安裝較慢時
pip3 install ansible --index-url https://pypi.tuna.tsinghua.edu.cn/simple

離線安裝:

#離線環境
#在可聯網主機創建相同環境架構本地環境/虛擬機下載安裝包及依賴
mkdir -p /data/ansible_download/ #目錄根據實際進行調整
cd /data/ansible_download/
#下載軟件包
pip3 download ansible
#如果默認源下載較慢,可以使用
#國內常用鏡像源
#清華:https://pypi.tuna.tsinghua.edu.cn/simple
#阿里云:https://mirrors.aliyun.com/pypi/simple/
#騰訊云:https://mirrors.cloud.tencent.com/pypi/simple
#華為云:https://repo.huaweicloud.com/repository/pypi/simple
pip3 download ansible --index-url https://pypi.tuna.tsinghua.edu.cn/simple
#安裝
pip3 install --no-index --find-links=./ ansible

安裝驗證:

#安裝驗證
root@node1:/data/ansible_download# ansible --version
ansible [core 2.17.12]config file = Noneconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/lib/python3.10/dist-packages/ansibleansible collection location = /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0] (/usr/bin/python3)jinja version = 3.0.3libyaml = True

2、Ansible配置文件

2.1、主配置文件

位置(按優先級從高到低):

  • 當前目錄下的 ./ansible.cfg

  • 用戶家目錄下的 ~/.ansible.cfg

  • 系統全局的 /etc/ansible/ansible.cfg

創建方法

# 創建默認配置文件
mkdir -p /etc/ansible/
mkdir -p /etc/ansible/{inventory,group_vars,host_vars,roles,files,templates}
touch /etc/ansible/ansible.cfg#生成默認配置(配置較多,使用常用配置項即可)
ansible-config init --disabled > /etc/ansible/ansible.cfg

常用配置內容:

[defaults]
# 安全設置
# 禁用SSH主機密鑰檢查(測試環境用)
host_key_checking = False# 禁用棄用警告
deprecation_warnings = False# 性能優化
# 并發進程數
forks = 50
# 智能收集facts
gathering = smart
# 緩存facts加速后續執行
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts
# 緩存24小時
fact_caching_timeout = 86400# 路徑設置
# 默認庫存文件
inventory = /etc/ansible/hosts
# 角色搜索路徑
roles_path = /etc/ansible/roles
# 日志記錄
log_path = /var/log/ansible.log[privilege_escalation]
# 默認啟用權限提升,根據需求配置
become = True
# 使用sudo                 
become_method = sudo
# 提升為root
become_user = root
# 不提示sudo密碼
become_ask_pass = False[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
# 啟用管道加速
pipelining = True
2.2、庫存文件 (Inventory File)

默認位置/etc/ansible/hosts

創建方法

#以自定義為例
mkdir -p /etc/ansible/
touch /etc/ansible/hosts 

配置內容:

# 簡單主機定義
[ubuntu_servers]
192.168.0.151
192.168.0.152 ansible_port=22  # 自定義SSH端口
2.3、主機變量文件

位置:通常在庫存文件所在目錄的 host_vars/group_vars/ 子目錄中

創建方法

mkdir -p /etc/ansible/{host_vars,group_vars}

示例:

# /etc/ansible/group_vars/all.yml
---
ansible_python_interpreter: /usr/bin/python3
timezone: UTC# /etc/ansible/host_vars/web1.example.com.yml
---
http_port: 8080
max_clients: 200
2.4、Ansible Vault 密碼文件(可選)

用于加密敏感數據:

#全局存儲
echo "my_vault_password" > /etc/ansible/vault_pass.txt
chmod 600 /etc/ansible/vault_pass.txt#用戶級存儲
#在用戶目錄下創建
mkdir -p ~/.ansible/
echo "your_vault_password" > ~/.ansible/vault_pass
chmod 600 ~/.ansible/vault_pass
2.5、配置文件優先級

Ansible 按以下順序查找配置文件:

  1. ANSIBLE_CONFIG 環境變量指定的文件

  2. 當前目錄下的 ansible.cfg

  3. 用戶家目錄下的 ~/.ansible.cfg

  4. /etc/ansible/ansible.cfg

推薦目錄結構如下:

ansible_project/
├── ansible.cfg          # 項目級配置
├── inventory/           # 庫存目錄
│   ├── hosts            # 主庫存文件
│   ├── host_vars/       # 主機變量
│   └── group_vars/      # 組變量
├── roles/               # 自定義角色
├── playbooks/           # playbook 文件
└── files/               # 文件資源

驗證配置文件:

#測試配置文件目錄結構如下
root@node1:/etc/ansible# tree /etc/ansible
/etc/ansible
├── ansible.cfg
├── files
├── group_vars
│?? └── all.yml
├── hosts
├── host_vars
├── inventory
├── roles
└── templates
root@node1:/etc/ansible# ansible --version          
ansible [core 2.17.12]config file = /etc/ansible/ansible.cfgconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/lib/python3.10/dist-packages/ansibleansible collection location = /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/bin/ansiblepython version = 3.10.12 (main, Feb  4 2025, 14:57:36) [GCC 11.4.0] (/usr/bin/python3)jinja version = 3.0.3libyaml = True
2.6、測試
#免密配置為test用戶,直接執行ansible ubuntu_servers -m command -u test -a 'df -h'因配置開啟權限提升,會出現執行失敗情況,現象如下:
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'ls /tmp'
192.168.0.151 | FAILED | rc=-1 >>
Missing sudo password
192.168.0.152 | FAILED | rc=-1 >>
Missing sudo password#處理方式1:可以通過-K參數手動輸入密碼
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'df -h' -K
BECOME password: 
192.168.0.151 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.0G  7.0G  51% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000
192.168.0.152 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  6.5G  7.5G  47% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000#方式2:關閉權限提升配置,編輯ansible.cfg配置,將become=true,改為become=false
root@node1:/etc/ansible# ansible ubuntu_servers -m command -u test -a 'df -h'
192.168.0.151 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.0G  7.0G  51% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000
192.168.0.152 | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.1M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  6.5G  7.5G  47% /
tmpfs                              982M     0  982M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          2.0G  252M  1.6G  14% /boot
tmpfs                              197M  4.0K  197M   1% /run/user/1000

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

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

相關文章

智慧教室:科技賦能,奏響個性化學習新樂章

在傳統教育模式中&#xff0c;課堂互動的局限性猶如一道無形的枷鎖&#xff0c;束縛著學生主動學習的熱情與能力。課堂上&#xff0c;往往是教師單向的知識輸出&#xff0c;僅有少數學生能獲得發言機會&#xff0c;大部分學生只能被動聆聽&#xff0c;逐漸在枯燥的學習氛圍中喪…

Android埋點實現方案深度分析

埋碼是數據驅動業務決策、產品優化、用戶行為分析的核心基礎&#xff0c;其實現方案的優劣直接影響數據的準確性、完整性、實時性、可維護性以及開發效率。 以下從多個維度對主流方案進行剖析&#xff1a; 一、核心目標與挑戰目標&#xff1a; 精準采集&#xff1a; 在用戶觸發…

萬界星空科技銅線/漆包線行業智能化MES系統解決方案

萬界星空科技針對銅線及漆包線行業開發的智能化MES系統&#xff0c;專門解決該行業原材料管理復雜、工藝控制嚴、質量追溯困難等核心痛點。該系統通過數字化手段實現生產全流程的可視化與精準控制&#xff0c;助力企業提升生產效率、降低運營成本并增強市場競爭力。一、行業專屬…

Git 完全手冊:從入門到團隊協作實戰(3)

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《C修煉之路》、《Linux修煉&#xff1a;終端之內 洞悉真理…

使用Docker搭建SearXNG搜索引擎

1、安裝Docker# 安裝Docker https://docs.docker.com/get-docker/# 安裝Docker Compose https://docs.docker.com/compose/install/# CentOS安裝Docker https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA2、安裝SearXNG詳見&#xff1a; https://docs.searxng.org/admin/inst…

基于pi/4-QPSK擴頻解擴和gardner環定時同步的通信系統matlab性能仿真

目錄 1.引言 2.算法仿真效果演示 3.數據集格式或算法參數簡介 4.算法涉及理論知識概要 4.1 π/4-QPSK 4.2 直接序列擴頻與解擴 4.3 Gardner環定時同步 5.參考文獻 6.完整算法代碼文件獲得 1.引言 π/4-QPSK是一種特殊的QPSK調制方式&#xff0c;其相鄰符號間的相位跳變…

CGA老年人能力評估師:提升老年生活質量

一、CGA老年人能力評估師是提升老年生活質量的“導航者” 老年生活質量的提升&#xff0c;始于對老年人真實需求的精準把握。CGA老年人能力評估師正是這樣一群“導航者”&#xff0c;他們運用CGA老年綜合評估系統&#xff0c;深入了解老年人在生理、心理、社會參與等方面的狀況…

開源的大語言模型(LLM)應用開發平臺Dify

概述Dify 是一個開源的大語言模型&#xff08;LLM&#xff09;應用開發平臺&#xff0c;結合了后端即服務&#xff08;Backend-as-a-Service&#xff09;和 LLMOps 的理念&#xff0c;旨在幫助開發者快速構建生產級的生成式 AI 應用。它通過直觀的界面、強大的功能和靈活的部署…

RAG(檢索增強生成)里的文檔管理

RAG&#xff08;檢索增強生成&#xff09;是結合檢索與生成式 AI 的技術框架。核心邏輯是先從外部知識庫精準檢索相關信息&#xff0c;再將其作為上下文輸入大模型生成回答。技術上依賴檢索引擎&#xff08;如向量數據庫、BM25&#xff09;、大語言模型&#xff08;如 GPT、LLa…

床上肢體康復機器人的機械結構設計cad【7張】三維圖+設計說明書

摘要 近年來&#xff0c;隨著人口老齡化問題的加重&#xff0c;常年臥床的老年人數增多&#xff0c;同時因為各種疾病的原因&#xff0c;患肢體功能障礙的人數也在增加。嚴重影響著患者的生活質量&#xff0c;同時給社會和家庭增加了很多麻煩。他們迫切希望盡快康復&#xff0c…

主要分布在背側海馬體(dHPC)CA1區域(dCA1)的時間細胞對NLP中的深層語義分析的積極影響和啟示

時間細胞&#xff08;time cells&#xff09;作為海馬體CA1區域中編碼時間信息的神經元&#xff0c;其工作機制對自然語言處理&#xff08;NLP&#xff09;中的深層語義分析具有多方面的啟示。這些神經元通過整合時空信息、動態競爭機制和序列編碼能力&#xff0c;為解決NLP中語…

數字ic后端設計從入門到精通12(含fusion compiler, tcl教學)全定制設計進階

標準單元庫中幾種時序單元介紹 C2MOS觸發器C2MOS觸發器的工作分為兩個階段&#xff1a; 1&#xff09;φ0&#xff08;φ1&#xff09;時&#xff0c;第一個三態驅動器導通&#xff08;三態門主要體現在&#xff0c;此時主級處于求值模式。同時從級處在高阻抗模式&#xff0c;即…

Qt調試技巧與常見錯誤解決方法

一、調試工具與環境配置 1.1 Qt Creator調試器集成 Qt Creator內置GDB/Lldb調試器&#xff0c;支持斷點、單步執行、變量監視等功能。 啟動調試&#xff1a;按F5或點擊"Debug"按鈕斷點設置&#xff1a;在代碼行號旁點擊添加斷點調試工具欄&#xff1a;包含繼續、暫停…

VRRP技術(虛擬路由器冗余協議)

1. VRRP的概念及應用場景&#xff08;優先級數值越大&#xff0c;越優先&#xff09;VRRP&#xff08;虛擬路由器冗余協議&#xff09;是 IETF&#xff08;互聯網工程任務組&#xff09;提出的一種容錯協議&#xff0c;主要用于解決局域網中網關單點故障的問題。VRRP 通過把多個…

《每日AI-人工智能-編程日報》--2025年7月23日

介紹&#xff1a;AI&#xff1a;阿里開源通義千問 AI 編程大模型 Qwen3-Coder&#xff1a;7 月 23 日清晨&#xff0c;阿里開源全新的通義千問 AI 編程大模型 Qwen3-Coder&#xff0c;編程能力登頂全球開源模型陣營&#xff0c;并超越 GPT4.1 等閉源模型&#xff0c;比肩全球最…

網安-JWT

認證的方式&#xff1a;sessioncookie、jwt、tokenSession認證機制需要配合Cookie才能實現。由于 Cookie默認不支持跨域訪問 &#xff0c;所以&#xff0c;當涉及到前端跨域請求后端接口的時候&#xff0c;需要做 很多額外的配置&#xff0c;才能實現跨域Session認證。JWT(英文…

零基礎學編程,編程從入門到精通系列教程,附:編程工具箱之時間計算構件的用法#零基礎自學編程 學習計劃#新手學編程 高效學習方法

前言&#xff1a; 對于正在學習編程的大學生、IT 人士或是編程愛好者而言&#xff0c;掌握正確的學習方法能讓編程學習事半功倍。即便你是初學者&#xff0c;只要通過成百上千個實例練習&#xff0c;也能快速成長為編程高手。 全中文編程工具 易上手的基礎特性 安裝過程簡單且…

Day01_C++編程

01.思維導圖02.方法一&#xff1a;#include <iostream> #include <cstring> #include <iostream> using namespace std; class mystring { private:char* buf;int len;public:mystring(const char* str);void copy(const char* ptr);void copy(mystring ptr)…

lammps滾動模擬

大家好,我是小馬老師。 本文介紹lammps中模型滾動的設置方法。 模型的滾動需要解決2個問題: (1)設置滾動旋轉軸位置和方向,也就是確定沿哪個方向滾動。 (2)原地滾動還是在滾動過程中整體也要移動。 為保證滾動的平穩,旋轉軸一般通過模型的質心,需要先計算模型的質…

增強LLM最后隱藏層的意義與效果

LLM 置信度增強:是否可以增強最后的隱藏層(非logits層) 表征工程是提取隱藏層狀態表征,LLM的置信度增強是優化的logist數值 要回答“是否可以增強最后的隱藏層(非logits層)以及是否有意義”,需要結合大語言模型的結構特性、你當前的任務(情感分析)以及“隱藏層增強”…