00 Ansible簡介和安裝

1. Ansible概述與基本概念

1.1. 什么是Ansible?

Ansible 是一款用 Python 編寫的開源 IT 自動化工具,主要用于配置管理、軟件部署及高級工作流編排。它能夠簡化應用程序部署、系統更新等操作,并且支持自動化管理大規模的計算機系統。Ansible 的設計簡單易懂,且無代理(agentless),這使得它可以快速集成到現有環境中。

大量任務基于ssh解析,會出現瓶頸。

1.2. 初學者官方指南

推薦閱讀官方的入門指南:redhat ansible。該指南將幫助你快速上手 Ansible,了解其基本概念和用法,助你掌握自動化運維的基礎技能。

2. 學習目的與實踐場景

2.1. 學習目標

  • 自動化運維:通過Ansible實現服務器管理和配置的自動化,減少手動操作,提升效率,降低錯誤率。
  • 簡化配置管理:使用簡潔的腳本和配置文件,快速完成大規模系統配置和部署。
  • 提升運維效率:通過自動化流程減少重復工作,使運維人員能夠專注于更有價值的任務。

2.2. 適合的受眾:

  • 運維工程師:Ansible可以幫助運維人員管理大量的服務器,自動化配置和部署,減少人工干預。
  • 開發人員:開發人員通過使用Ansible能在開發環境中快速部署應用,環境搭建,減少手動配置環境的時間。

2.3. 實踐場景:

  • 系統初始化:在公司部署一批新服務器時,使用Ansible自動化配置操作系統、系統參數調整、批量創建用戶、設置用戶權限、基礎環境、軟件安裝等,確保所有服務器按照公司標準配置,無需手動配置每臺服務器。
  • 配置變更:服務器中配置Nginx時,修改Nginx配置文件(如nginx.conf),并通過Ansible將配置推送到所有相關服務器,確保負載均衡策略一致,并自動重啟服務生效。
  • 應用部署:通過Ansible Playbook部署Zookeeper集群、kafka集群,確保多節點間的通信和數據同步,每個節點的配置都被統一管理。
  • 計劃任務:使用Ansible定期配置和執行服務器備份任務(例如通過cron),確保數據每周定時備份到遠程存儲,不遺漏任何重要數據。
  • 環境一致性:Ansible保證開發環境、測試環境和生產環境的配置一致性,在每個環境中部署的Nginx服務配置、SSL證書、日志路徑等完全相同,避免環境間的配置差異引發問題。

二、Ansible安裝配置

1. Ansible架構與工作原理

控制機:通過命令行接口(CLI)或 Playbook 發起任務請求。

SSH通信:控制機通過 SSH 協議向受控節點發送任務請求(控制機要免密登錄被控機)。

受控節點:接收到任務并執行。受控節點可以是多個,Ansible 通過并行執行提高效率。

模塊:Ansible 使用模塊在受控節點上執行特定操作,如安裝軟件、復制文件等。

結果反饋:執行完畢后,受控節點將執行結果反饋給控制機,顯示成功或失敗的狀態,并提供執行細節。

2. 安裝與環境配置

2.1. 節點規劃

用途

主機 IP

操作系統

備注

Ansible 控制機

192.168.101.100

Rocky Linux 9.4

安裝 ansible-core、用于運行 playbook

被控節點(node1)

192.168.101.101

Rocky Linux 9.4

RockyLinux9

被控節點(node2)

192.168.101.110

CentOS 7.9

測試兼容性,常用老版本系統

被控節點(node3)

192.168.101.120

ubuntu 20.04

ubuntu操作系統

2.2. 安裝Ansible

# 啟用epel 源
sudo dnf install epel-release -y
# 安裝ansible
sudo dnf install ansible-core -y
ansible --version

2.3. Asnsible節點與被管理節點基于Key(免密登錄)SSH

# 生成ssh key
ssh-keygen
# 拷貝ssh key到遠程主機,ssh的時候就不需要輸入密碼了
ssh-copy-id root@192.168.101.101

2.4. SSH公私鑰用途(補充)

2.4.1. SSH 公鑰與私鑰的用途解釋

用于通過不安全的網絡安全地訪問遠程計算機。它使用 公鑰加密私鑰解密 機制來實現安全的身份驗證和加密通信。

2.4.2. 公鑰與私鑰的基本概念

公鑰(Public Key)

?用于加密數據或進行身份驗證。

?可公開共享,并添加到遠程服務器中以允許驗證客戶端身份。

私鑰(Private Key)

?用于解密數據或驗證身份。

?必須保密,泄露可能導致安全問題。

非對稱加密的特點

?公鑰和私鑰成對使用,公鑰加密的數據只能通過對應的私鑰解密,反之亦然。

2.4.3. SSH 免密登錄原理

1.生成密鑰對:在客戶端生成公鑰和私鑰(使用 ssh-keygen)。私鑰保存在本地,公鑰可公開。

2.部署公鑰:將公鑰復制到目標服務器的 ~/.ssh/authorized_keys 文件中。

3.身份驗證:

?客戶端連接時,服務器發送一個加密的隨機挑戰信息。

?客戶端使用私鑰解密挑戰信息,并返回解密結果。

?如果解密正確,服務器允許登錄。

免密登錄本質

?通過 公鑰加密私鑰解密 來驗證客戶端身份,無需使用密碼。

公鑰和私鑰比作一個 鎖和鑰匙:

  • 公鑰:如一把可以公開的鎖,任何人都可以用它鎖住東西(加密)。
  • 私鑰:如僅你擁有的鑰匙,只有你能打開鎖(解密)。

3. Ansible 常用命令

3.1. 定義主機組

[rockylinux]
192.168.101.100
192.168.101.101[centos]
192.168.101.110[ubuntu]
192.168.101.120

3.2. 遠程執行Linux命令(使用常用命令批量管理機器)

指定用戶沒有做過免密登錄提示任務運行失敗,也可以指定密碼,相對繁瑣。

ansible all -m ping -u xinglu
ansible all -m ping -u xinglu

3.3. 執行命令

在所有的遠程主機上,以當前bash的同名用戶,在遠程主機執行“echo bash”

ansible -i hosts all -m command -a "pwd"

指定rockylinux 組創建文件

所有組創建文件

查看詳細信息加v

ansible -i hosts all -a 'w' -vvv

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

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

相關文章

Linxu實驗五——NFS服務器

一.NFS服務器介紹 NFS服務器(Network File System)是一種基于網絡的分布式文件系統協議,允許不同操作系統的主機通過網絡共享文件和目錄3。其核心作用在于實現跨平臺的資源透明訪問,例如在Linux和Unix系統之間共享靜態數據&#…

『 測試 』測試基礎

文章目錄 1. 調試與測試的區別2. 開發過程中的需求3. 開發模型3.1 軟件的生命周期3.2 瀑布模型3.2.1 瀑布模型的特點/缺點 3.3 螺旋模型3.3.1 螺旋模型的特點/缺點 3.4 增量模型與迭代模型3.5 敏捷模型3.5.1 Scrum模型3.5.2 敏捷模型中的測試 4 測試模型4.1 V模型4.2 W模型(雙V…

紅外遙控鍵

紅外 本章節旨在讓用戶自定義紅外遙控功能,需要有板載紅外接收的板卡。 12.1. 獲取紅外遙控鍵值 由于不同遙控器廠家定義的按鍵鍵值不一樣,所以配置不通用,需要獲取實際按鍵對應的鍵值。 1 2 3 4 5 6 #設置輸出等級 echo 7 4 1 7> /pr…

同一個虛擬環境中conda和pip安裝的文件存儲位置解析

文章目錄 存儲位置的基本區別conda安裝的包pip安裝的包 看似相同實則不同的機制實際路徑示例這種差異帶來的問題如何檢查包安裝來源最佳實踐建議 總結 存儲位置的基本區別 conda安裝的包 存儲在Anaconda(或Miniconda)目錄下的pkgs和envs子目錄中: ~/anaconda3/en…

機器學習極簡入門:從基礎概念到行業應用

有監督學習(supervised learning) 讓模型學習的數據包含正確答案(標簽)的方法,最終模型可以對無標簽的數據進行正確處理和預測,可以分為分類與回歸兩大類 分類問題主要是為了“盡可能分開整個數據而畫線”…

split和join的區別?

split和join是Python中用于處理字符串的兩種方法,它們的主要區別在于功能和使用場景。? split()方法 ?split()方法用于將字符串按照指定的分隔符分割成多個子串,并返回這些子串組成的列表?。如果不指定分隔符,則默認分割所有的空白字符&am…

MySQL從入門到精通(二):Windows和Mac版本MySQL安裝教程

目錄 MySQL安裝流程 (一)、進入MySQL官網 (二)、點擊下載(Download) (三)、Windows和Mac版本下載 下載Windows版本 下載Mac版本 (四)、驗證并啟動MySQL …

LeetCode 解題思路 45(分割等和子集、最長有效括號)

解題思路: dp 數組的含義: 在數組中是否存在一個子集,其和為 i。遞推公式: dp[i] | dp[i - num]。dp 數組初始化: dp[0] true。遍歷順序: 從大到小去遍歷,從 i target 開始,直到 …

電影感戶外啞光人像自拍攝影Lr調色預設,手機濾鏡PS+Lightroom預設下載!

調色詳情 電影感戶外啞光人像自拍攝影 Lr 調色,是借助 Lightroom 軟件,針對戶外環境下拍攝的人像自拍進行后期處理。旨在模擬電影畫面的氛圍與質感,通過調色賦予照片獨特的藝術氣息。強調打造啞光效果,使畫面色彩不過于濃烈刺眼&a…

使用 NV?Ingest、Unstructured 和 Elasticsearch 處理非結構化數據

作者:來自 Elastic Ajay Krishnan Gopalan 了解如何使用 NV-Ingest、Unstructured Platform 和 Elasticsearch 為 RAG 應用構建可擴展的非結構化文檔數據管道。 Elasticsearch 原生集成了行業領先的生成式 AI 工具和提供商。查看我們的網絡研討會,了解如…

Android 13 使能user版本進recovery

在 debug 版本上,可以在關機狀態下,同時按 電源鍵 和 音量加鍵 進 recovery 。 user 版本上不行。 參考 使用 build 變體 debug 版本和 user 版本的差別之一就是 ro.debuggable 屬性不同。 順著這個思路追蹤,找到 bootable/recovery/reco…

每日算法刷題計劃

這是我每天堅持刷算法題的倉庫,每天刷1-3道,時間30-40min,加油! 目前考慮leetcode洛谷形式,c和python3語言,leetcode主要學核心思想,洛谷學會輸入輸出格式 每日打卡:markdowncsdn打卡 刷題策略: 按分類刷…

紅黑樹():

1. 紅黑樹: 紅黑樹從根節點開始的最長的路徑不會超過最短路徑的2倍。 紅黑樹的話,他的結點的分布沒有我們的AVL樹的結點的分布均衡,但是效率也不錯,AVL樹的結點分布的那么均勻,其實也是在進行了旋轉,付出了…

【AI智能推薦系統】第六篇:隱私保護與聯邦學習在推薦系統中的平衡之道

第六篇:隱私保護與聯邦學習在推薦系統中的平衡之道 提示語:?? “數據不出域,推薦更精準!深度揭秘騰訊、螞蟻集團如何用聯邦學習打造合規推薦系統,隱私計算技術全景解析與工業級實現方案!” 目錄 隱私保護的行業挑戰隱私計算技術體系 2.1 聯邦學習基礎架構2.2 差分隱私…

【Qt/C++】深入理解 Lambda 表達式與 `mutable` 關鍵字的使用

【Qt/C】深入理解 Lambda 表達式與 mutable 關鍵字的使用 在 Qt 開發中,我們常常會用到 lambda 表達式來編寫簡潔的槽函數。今天通過一個實際代碼示例,詳細講解 lambda 的語法、變量捕獲方式,特別是 mutable 的作用。 示例代碼 QPushButto…

記錄 ubuntu 安裝中文語言出現 software database is broken

搜索出來的結果是 sudo apt-get install language-pack-zh-han* 然而,無效,最后手動安裝如下 apt install language-pack-zh-hans apt install language-pack-zh-hans-base apt install language-pack-gnome-zh-hans apt install fonts-arphic-uming apt install libreoffic…

[虛幻官方教程學習筆記]深入理解實時渲染(An In-Depth Look at Real-Time Rendering)

原英文教程地址深入理解實時渲染(An In-Depth Look at Real-Time Rendering) 文章目錄 1.Intro to An In-Depth Look at Real-Time RenderingCPU VS GPUDeferred VS Forward 2. Before Rendering and OcclusionCulling計算的步驟使用console command:fre…

Linux進程間信號

目錄 信號入門 生活角度中的信號 技術應用角度的信號 信號的發送與記錄 信號處理常見方式概述 產生信號 通過終端按鍵產生 通過系統函數向進程發信號 由軟件條件產生信號 由硬件異常產生信號 阻塞信號 信號其他相關常見概念 在內核中的表示 sigset_t 信號集操作…

Git簡介和發展

Git 簡介 Git是一個開源的分布式版本控制系統,跨平臺,支持Windows、Linux、MacOS。主要是用于項目的版本管理,是由林納斯托瓦茲(Linux Torvalds)在2005年為Linux內核開發而創建。 起因 在2002年至2005年間,Linux內核開發團隊使…

Perspective,數據可視化的超級引擎!

Perspective 是一個強大的交互式數據分析和可視化庫,它允許你創建高度可配置的報告、儀表板、筆記本和應用程序。給用戶提供了一個新的視角來看待數據。 Stars 數9125Forks 數1217 主要特點 高效流式查詢引擎:Perspective使用C編寫,并編譯為…