RHEL 9.5 離線安裝 Ansible 完整教程

在這里插入圖片描述

文章目錄

  • RHEL 9.5 離線安裝 Ansible 完整教程
    • 環境準備
      • 系統要求
      • 準備工作清單
    • 方法一:使用 RPM 包離線安裝
      • 步驟 1:在聯網機器上下載必要的 RPM 包
      • 步驟 2:創建本地倉庫元數據
      • 步驟 3:在離線服務器上安裝
    • 方法二:使用 Python 離線安裝
      • 步驟 1:在聯網機器上下載 Python 包
      • 步驟 2:在離線服務器上安裝
    • 方法三:使用預編譯的二進制包
      • 步驟 1:下載 Ansible 源碼
      • 步驟 2:離線編譯安裝
    • 驗證安裝
    • 包可用性檢查
      • 解決方案 1:啟用 EPEL 倉庫
      • 解決方案 2:使用 pip 下載方式
    • 常見問題解決
      • 問題 1:依賴包缺失
      • 問題 2:Python 版本兼容性
      • 問題 3:權限問題
    • 配置建議
      • 創建基本配置文件
      • 創建主機清單文件
    • 性能優化建議
    • 總結

RHEL 9.5 離線安裝 Ansible 完整教程

在企業環境中,由于安全策略限制,服務器往往無法直接訪問互聯網。本文將詳細介紹如何在 Red Hat Enterprise Linux 9.5 系統上離線安裝 Ansible 自動化工具。

環境準備

系統要求

  • Red Hat Enterprise Linux 9.5
  • Python 3.9+ (RHEL 9.5 默認自帶)
  • 足夠的磁盤空間(至少 500MB)

準備工作清單

  • 一臺能聯網的機器用于下載依賴包
  • 移動存儲設備或網絡傳輸方式
  • 目標離線 RHEL 9.5 服務器

方法一:使用 RPM 包離線安裝

步驟 1:在聯網機器上下載必要的 RPM 包

首先在一臺能聯網的 RHEL 9.5 機器上執行以下操作:

# 創建下載目錄
mkdir -p /tmp/ansible-offline/{rpms,repo}
cd /tmp/ansible-offline# 啟用必要的倉庫
sudo subscription-manager repos --enable rhel-9-for-x86_64-appstream-rpms
sudo subscription-manager repos --enable rhel-9-for-x86_64-baseos-rpms# 下載 Ansible 及其依賴包
sudo dnf download --downloadonly --downloaddir=./rpms ansible-core
sudo dnf download --downloadonly --downloaddir=./rpms python3-pip python3-setuptools# 下載額外的依賴包(先檢查可用性)
sudo dnf download --downloadonly --downloaddir=./rpms python3-cryptography python3-jinja2 python3-yaml python3-packaging# 檢查并下載其他可能的依賴包
sudo dnf download --downloadonly --downloaddir=./rpms python3-six python3-cffi python3-pycparser || true

步驟 2:創建本地倉庫元數據

# 安裝 createrepo_c 工具(如果沒有)
sudo dnf install -y createrepo_c# 創建倉庫元數據
createrepo_c ./rpms# 打包所有文件
tar -czf ansible-offline-rpms.tar.gz rpms/

步驟 3:在離線服務器上安裝

ansible-offline-rpms.tar.gz 傳輸到離線服務器,然后執行:

# 解壓文件包
tar -xzf ansible-offline-rpms.tar.gz
cd rpms# 安裝所有 RPM 包
sudo rpm -ivh *.rpm --nodeps --force# 或者使用 dnf 本地安裝
sudo dnf localinstall -y *.rpm

方法二:使用 Python 離線安裝

步驟 1:在聯網機器上下載 Python 包

# 創建工作目錄
mkdir -p /tmp/ansible-python-offline
cd /tmp/ansible-python-offline# 下載 Ansible 及其依賴的 Python 包
pip3 download ansible-core
pip3 download cryptography jinja2 PyYAML paramiko packaging markupsafe# 下載額外可能需要的包
pip3 download resolvelib setuptools wheel# 打包所有下載的文件
tar -czf ansible-python-packages.tar.gz *.whl *.tar.gz

步驟 2:在離線服務器上安裝

# 解壓 Python 包
tar -xzf ansible-python-packages.tar.gz# 確保 pip 已安裝
sudo dnf localinstall -y python3-pip-*.rpm  # 如果沒有 pip# 離線安裝 Ansible
pip3 install --no-index --find-links . ansible-core# 或者為系統全局安裝
sudo pip3 install --no-index --find-links . ansible-core

方法三:使用預編譯的二進制包

步驟 1:下載 Ansible 源碼

在聯網機器上:

# 下載 Ansible 源碼
wget https://github.com/ansible/ansible/archive/v2.15.6.tar.gz
tar -xzf v2.15.6.tar.gz
cd ansible-2.15.6# 創建完整的離線安裝包
python3 setup.py sdist

步驟 2:離線編譯安裝

在離線服務器上:

# 解壓源碼包
tar -xzf ansible-2.15.6.tar.gz
cd ansible-2.15.6# 編譯安裝
sudo python3 setup.py install# 或者安裝到用戶目錄
python3 setup.py install --user

驗證安裝

無論使用哪種方法,安裝完成后都應該驗證 Ansible 是否正常工作:

# 檢查 Ansible 版本
ansible --version# 檢查 Ansible 配置
ansible-config dump# 測試本地連接
ansible localhost -m ping# 檢查可用模塊
ansible-doc -l | head -10

預期輸出示例:

ansible [core 2.15.6]config file = Noneconfigured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/local/lib/python3.9/site-packages/ansibleansible collection location = /home/user/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /usr/local/bin/ansiblepython version = 3.9.18

包可用性檢查

在下載依賴包之前,建議先檢查包的可用性:

# 檢查哪些包在當前倉庫中可用
dnf list available | grep -E "python3-(cryptography|jinja2|yaml|paramiko|packaging|six|cffi)"# 搜索 paramiko 相關包
dnf search paramiko# 如果 python3-paramiko 不可用,可能需要啟用 EPEL 倉庫或使用 pip 安裝

針對 python3-paramiko 不可用的情況,有以下解決方案:

解決方案 1:啟用 EPEL 倉庫

# 下載并安裝 EPEL 倉庫
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm# 啟用 EPEL 倉庫后重新嘗試
sudo dnf download --downloadonly --downloaddir=./rpms python3-paramiko

解決方案 2:使用 pip 下載方式

# 如果某些包在 RPM 倉庫中不可用,使用 pip 下載
pip3 download --dest ./python-packages paramiko cryptography jinja2 PyYAML packaging

常見問題解決

問題 1:依賴包缺失

如果遇到依賴包缺失的錯誤:

# 查找缺失的依賴
rpm -qR ansible-core | grep "not installed"# 下載缺失的包
sudo dnf download --downloadonly package-name

問題 2:Python 版本兼容性

確保 Python 版本兼容:

# 檢查 Python 版本
python3 --version# 如果版本過低,可能需要升級
sudo dnf update python3

問題 3:權限問題

解決權限相關問題:

# 為當前用戶創建 Ansible 配置目錄
mkdir -p ~/.ansible/collections
mkdir -p ~/.ansible/plugins# 設置合適的權限
chmod 755 ~/.ansible

配置建議

創建基本配置文件

# 創建 Ansible 配置文件
sudo mkdir -p /etc/ansible
sudo tee /etc/ansible/ansible.cfg > /dev/null <<EOF
[defaults]
host_key_checking = False
inventory = /etc/ansible/hosts
remote_user = root
ask_pass = False[inventory]
enable_plugins = host_list, script, auto, yaml, ini, toml[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
pipelining = True
EOF

創建主機清單文件

# 創建示例主機清單
sudo tee /etc/ansible/hosts > /dev/null <<EOF
[local]
localhost ansible_connection=local[webservers]
web1.example.com
web2.example.com[databases]
db1.example.com ansible_user=dbadmin
EOF

性能優化建議

  1. 啟用連接復用:在配置文件中啟用 ControlMaster 和 ControlPersist
  2. 使用流水線:啟用 pipelining 選項以減少 SSH 連接次數
  3. 調整并發數:根據目標主機性能調整 forks 參數
  4. 使用本地連接:對本機操作使用 ansible_connection=local

總結

本文介紹了三種在 RHEL 9.5 上離線安裝 Ansible 的方法:RPM 包安裝、Python 包安裝和源碼編譯安裝。每種方法都有其適用場景:

  • RPM 包方式:適合標準化環境,易于管理和卸載
  • Python 包方式:更靈活,可以安裝最新版本
  • 源碼編譯:完全自主可控,適合定制化需求

選擇合適的安裝方式,并按照本文的步驟操作,即可在離線環境中成功部署 Ansible 自動化工具。安裝完成后,記得進行充分的測試以確保系統正常運行。

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

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

相關文章

44、鴻蒙HarmonyOS Next開發:視頻播放 (Video)組件和進度條 (Progress)組件的使用

目錄 視頻播放 (Video) 創建視頻組件 加載視頻資源 加載本地視頻 加載沙箱路徑視頻 加載網絡視頻 添加屬性 事件調用 Video控制器使用 其他說明 示例代碼 進度條 (Progress) 創建進度條 設置進度條樣式 場景示例 視頻播放 (Video) Video組件用于播放視頻文件并…

6、微服務架構常用十種設計模式

目錄 1、微服務架構 2、微服務架構的優點 3、微服務架構的缺點 4、何時使用微服務架構 5、微服務架構常用十種設計模式 ① 獨享數據庫&#xff08;Database per Microservice&#xff09; ② 事件源&#xff08;Event Sourcing&#xff09; ③ 命令和查詢職責分離&…

Docker 初學者需要了解的幾個知識點 (六):docker-compose.yml (ThinkPHP)

下面這個文 docker-compose.yml 文件定義了一個包含 PHP、Nginx、MySQL、Redis 的完整 ThinkPHP 開發環境&#xff0c;各配置項的含義如下&#xff1a;version: 3.8services:# PHP-FPM 服務php-fpm:image: php:8.1-fpmvolumes:- ./tp-demo:/var/www/html- ./php.ini:/usr/local…

TiDB 詳解

TiDB 詳解&#xff1a;架構、特性與應用實踐 TiDB 是 PingCAP 公司開發的開源分布式 NewSQL 數據庫&#xff0c;采用 “計算-存儲分離” 架構設計&#xff0c;兼具傳統關系型數據庫的 ACID 事務特性和 NoSQL 系統的水平擴展能力。以下是 TiDB 的全面技術解析。一、核心架構設計…

推客小程序商業模型設計:合規分傭體系×盈利模式×LTV提升策略

一、推客小程序的市場背景與商業價值在當今移動互聯網紅利逐漸消退的背景下&#xff0c;社交電商正成為流量增長的新突破口。推客小程序作為一種基于社交關系的分銷工具&#xff0c;完美融合了社交傳播與電商變現的雙重優勢&#xff0c;為企業和個人創業者提供了全新的商業機會…

Matlab處理多個循環的判斷的方式:

1、使用正則表達式&#xff1a;pattern strcat(\b, strjoin(tuple, \b|\b), \b);% 4. 逐行處理文件內容 modifiedContents {}; % 存儲修改后的內容 for i 1:length(fileContents)line fileContents{i};% 使用正則表達式檢查當前行是否包含元組中的任何元素if ~isempty(reg…

從字符串中“薅出”最長子串:LeetCode 340 Swift 解法全解析

文章目錄摘要描述題解答案題解代碼分析詳細解析&#xff1a;示例測試及結果結果解釋&#xff1a;時間復雜度總結摘要 在日常開發中&#xff0c;我們經常需要處理字符串&#xff0c;比如分析用戶輸入、文本挖掘、數據清洗等等。而這道題就特別實用&#xff1a;如何找到一個字符…

時序數據庫廠商 TDengine 發布 AI 原生的工業數據管理平臺 IDMP,“無問智推”改變數據消費范式

在工業企業越來越依賴數據驅動決策的今天&#xff0c;數據的獲取不再是難題&#xff0c;難的是從紛繁復雜的數據中提煉出有用的信息。而 AI 的崛起&#xff0c;正在重塑整個數據分析的邏輯。 7 月 29 日晚&#xff0c;TDengine 發布了一款全新產品 —— TDengine IDMP&#xf…

HBase、MongoDB 和 Redis 的區別詳解

這三者都是流行的 NoSQL 數據庫&#xff0c;但設計目標、數據模型和適用場景有顯著差異。以下是它們的核心對比&#xff1a; 1. 數據模型對比特性HBaseMongoDBRedis數據模型寬列存儲&#xff08;類似 BigTable&#xff09;文檔存儲&#xff08;BSON/JSON&#xff09;鍵值存儲&a…

設計模式之單例模式及其在多線程下的使用

很多時候&#xff0c;我們在使用類創建類的實例并不想可以創建很多實例對象&#xff0c;比如在數據庫連接的時候&#xff0c;對于一個數據庫的連接通常只需要連接池中的某個連接的實例&#xff0c;連接一次即可&#xff0c;對于session會話&#xff0c;用戶在訪問網頁做會話保持…

Apache Ignite 2.8 引入的新指標系統(New Metrics System)的完整說明

這段文檔是關于 Apache Ignite 2.8 引入的“新指標系統&#xff08;New Metrics System&#xff09;” 的完整說明。這是 Ignite 監控體系的一次重大升級&#xff0c;相比舊的、分散的統計方式&#xff0c;新系統更統一、靈活、可擴展。 我們來逐層拆解、通俗易懂地理解這個新…

【氮化鎵】GaN同質外延p-i-n二極管中星形與三角形擴展表面缺陷的電子特性

2025年7月23日,美國國家標準與技術研究院(NIST)與美國海軍研究實驗室的Andrew J. Winchester等人在《Applied Physics Letters》期刊發表了題為《Electronic properties of extended surface defects in homoepitaxial GaN diodes》的文章,基于光電發射電子顯微術、導電原子…

使用 Scrapy 框架定制爬蟲中間件接入淘寶 API 采集商品數據

一、引言 在電商數據分析、市場調研等領域&#xff0c;獲取淘寶平臺上的商品數據是一項常見需求。淘寶提供了 API 接口&#xff0c;允許開發者通過授權的方式獲取商品信息。本文將介紹如何使用 Scrapy 框架定制爬蟲中間件&#xff0c;實現對淘寶 API 的接入&#xff0c;從而高…

Jmeter全局變量跨線程組的使用

一、線程組1中從數據庫中查詢到字段值二、BeanShell取樣器中設置為全局變量#為什么說props.put("Out1",Out);其實是設置Out1為Jmeter的屬性了呢&#xff1f; 因為在后面的調試取樣器運行結果中&#xff0c;會發現如果只打開顯示變量開關&#xff0c;是看不到Out1運行…

前端技術棧詳解

前端技術棧是指構建現代Web應用程序所需的一系列技術和工具的集合。以下是當前主流前端技術棧的詳細解析&#xff1a; 一、核心基礎技術 1. HTML5 作用&#xff1a;網頁內容的結構化標記關鍵特性&#xff1a; 語義化標簽&#xff08;<header>, <section>, <arti…

Git Pull 時遇到 Apply 和 Abort 選項?詳解它們的含義與應對策略

在使用 Git 進行團隊協作時&#xff0c;git pull 是最常用的命令之一&#xff0c;用于拉取遠程倉庫的最新代碼并合并到本地分支。但有時執行 git pull 后&#xff0c;Git 會提示 ?Apply&#xff08;應用&#xff09;?? 和 ?Abort&#xff08;中止&#xff09;?? 兩個選項…

暑期算法訓練.11

目錄 47. 力扣203 移除鏈表元素 47.1 題目解析&#xff1a; ?編輯 47.2 算法思路&#xff1a; 47.3 代碼演示&#xff1a; ?編輯 48. 力扣2.兩數相加 48.1 題目解析&#xff1a; ?編輯 48.2 算法思路; 48.3 代碼演示&#xff1a; 48.4 總結反思&#xff1a; …

nl2sql grpo強化學習訓練,加大數據量和輪數后,準確率沒提升,反而下降了,如何調整

在NL2SQL任務中使用GRPO強化學習訓練時&#xff0c;增加數據量和訓練輪數后準確率下降&#xff0c;通常是由過擬合、訓練不穩定、獎勵函數設計不合理、數據質量問題或探索-利用失衡等原因導致的。以下是具體的診斷思路和調整策略&#xff0c;幫助定位問題并優化性能&#xff1a…

PHP/Java/Python實現:如何有效防止惡意文件上傳

文章目錄 木馬病毒防范:文件上傳如何徹底防止偽造文件類型 引言 一、文件類型偽造的原理與危害 1.1 常見偽造手段 1.2 潛在危害 二、防御體系設計 2.1 防御架構 三、核心防御技術實現 3.1 服務端驗證實現 3.1.1 文件內容檢測(Python示例) 3.1.2 擴展名與內容雙重驗證(Java示…

SpringBoot系列之基于Redis的分布式限流器

SpringBoot系列之基于Redis的分布式限流器 SpringBoot 系列之基于 Redis 的分布式限流器 圖文并茂,代碼即拷即用,支持 4 種算法(固定窗口 / 滑動窗口 / 令牌桶 / 漏桶) 一、為什么要用分布式限流? 單機 Guava-RateLimiter 在集群下會 各玩各的,流量漂移,無法全局控量。…