在Ubuntu使用 Ansible 配置 Azure 資源的動態清單

使用 Ansible 配置 Azure 資源的動態清單

  • 簡介
  • 1.安裝pipx
  • 2.通過 pipx 安裝 Ansible
  • 3.安裝azure.azcollection
  • 4.安裝集合所需的依賴項
  • 5.生成動態庫存

簡介

在主機變化不定的云環境中,Ansible 的動態清單功能可以消除維護靜態清單文件的負擔

本教程將帶你使用 Azure 的 dynamic-inventory 插件,自動填充 Ansible 清單。


1.安裝pipx

從 Ubuntu 23.04 開始,系統默認禁止在全局環境中使用 pip install,以避免與系統自帶的 APT 包管理器(如 python3-* 包)產生沖突
所以因為我的是ubuntu版本為24 LTS, 必須要用pipx來安裝ansible,而不能直接使用apt安裝,這樣后面才能安裝依賴不報錯。

參考文檔:pipx–installation

sudo apt update
sudo apt install pipx
pipx ensurepath

2.通過 pipx 安裝 Ansible

pipx install --include-deps "ansible<10"

參數:--include-deps

在使用 pipx 安裝 Ansible 時,如果未指定 --include-deps 參數,pipx 只會安裝主包,而不會安裝其依賴項,包括ansible-core

他的輸出會是這樣

  installed package ansible 9.13.0, installed using Python 3.12.3These apps are now globally available- ansible- ansible-community- ansible-config- ansible-connection- ansible-console- ansible-doc- ansible-galaxy- ansible-inventory- ansible-playbook- ansible-pull- ansible-test- ansible-vault
done! ? 🌟 ?

這里有個大坑,從 Ansible 10 開始,Ansible 官方做了一個大重構:不再提供 ansible 命令入口點,轉而用 ansible-community 這個命令來代表 Ansible CLI 主入口。ansible 和 ansible-playbook 等命令被移除,取而代之的是通過 ansible-community 調用相應的插件。所以以前直接ansible是會報錯的,這里降級安裝 小于10的版本

裝完之后需要重新打開一個bash終端,然后才能ansible --version

ansible [core 2.16.14]config file = Noneconfigured module search path = ['/home/azureuser/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /home/azureuser/.local/share/pipx/venvs/ansible/lib/python3.12/site-packages/ansibleansible collection location = /home/azureuser/.ansible/collections:/usr/share/ansible/collectionsexecutable location = /home/azureuser/.local/bin/ansiblepython version = 3.12.3 (main, Feb  4 2025, 14:48:35) [GCC 13.3.0] (/home/azureuser/.local/share/pipx/venvs/ansible/bin/python)jinja version = 3.1.6libyaml = True

如果顯示出來版本,證明你成功了,可以進入下一步

3.安裝azure.azcollection

此集合提供了一系列用于與 Azure 交互的 Ansible 模塊和插件

參考文檔:Ansible collection for Azure

ansible-galaxy collection install azure.azcollection --force

輸出這樣就是成功了

Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/azure-azcollection-3.3.1.tar.gz to /home/azureuser/.ansible/tmp/ansible-local-2726e_5yr3jc/tmp8eixr_93/azure-azcollection-3.3.1-52eb6zq_
Installing 'azure.azcollection:3.3.1' to '/home/azureuser/.ansible/collections/ansible_collections/azure/azcollection'
azure.azcollection:3.3.1 was installed successfully

4.安裝集合所需的依賴項

pipx runpip ansible install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

5.生成動態庫存

Ansible 提供了 Azure 動態庫存插件,這里使用環境變量作為憑證,其他配置方法請閱讀參考文檔

參考文檔:azure.azcollection.azure_rm inventory – Azure 資源管理器庫存插件

創建 myazure_rm.yml 文件,配置示例如下:

plugin: azure.azcollection.azure_rm
include_vm_resource_groups:- ansible-inventory-test-rg
auth_source: auto

在Azure的Entra ID注冊一個應用,使其成為一個服務主體,分配其權限,然后復制subscription_id、client_id、secret 和 tenant id,然后使其export為環境變量

參考文檔:快速入門:為 Ansible 創建 Azure 服務主體

export AZURE_SUBSCRIPTION_ID="your_subscription_id"
export AZURE_CLIENT_ID="your_client_id"
export AZURE_CLIENT_SECRET="your_client_secret"
export AZURE_TENANT_ID="your_tenant_id"

運行命令查看資源組內的虛擬機:

ansible-inventory -i myazure_rm.yml --graph

運行結果示例:

@all:|--@ungrouped:|  |--linux-vm_cdb4|  |--win-vm_3211

這里兩個虛擬機都屬于 ungrouped 組,ungroupedall 組的子組。


Azure 動態庫存插件默認返回全局唯一的虛擬機名稱,名稱中會帶有額外字符。如果想禁用此行為,可以在清單文件里添加:

plain_host_names: yes

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

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

相關文章

車載診斷架構 ---車載總線對于功能尋址的處理策略

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 鈍感力的“鈍”,不是木訥、遲鈍,而是直面困境的韌勁和耐力,是面對外界噪音的通透淡然。 生活中有兩種人,一種人格外在意別人的眼光;另一種人無論…

Github 2025-05-16 Java開源項目日報 Top9

根據Github Trendings的統計,今日(2025-05-16統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量Java項目9Netty:異步事件驅動的網絡應用程序框架 創建周期:5043 天開發語言:Java協議類型:Apache License 2.0Star數量:33219 個Fork數量:…

大語言模型(LLM)如何通過“思考時間”(即推理時的計算資源)提升推理能力

大語言模型(LLM)如何通過“思考時間”(即推理時的計算資源)提升推理能力 核心圍繞人類思維機制、模型架構改進、訓練方法優化等展開 一、人類思維的啟發:快思考與慢思考 類比心理學: 人類思維分兩種模式: 快思考(系統1):直覺驅動,快速但易出錯(如估算簡單問題)。…

【ubuntu24.04】pycharm 死機結束進程

windows 遠程pycharm到ubuntu執行程序 pycharm 在調試過程中&#xff0c;內存耗盡&#xff0c;然后死機了 pycharm 進程 (base) rootk8s-master-pfsrv:/home/zhangbin/下載# ps -ef | grep pycharm root 121245 3230568 0 5月14 pts/8 00:00:00 /bin/bash --rcfile …

從虛擬仿真到行業實訓再到具身智能--華清遠見嵌入式物聯網人工智能全鏈路教學方案

2025年5月23-25日&#xff0c;第63屆中國高等教育博覽會&#xff08;高博會&#xff09;將在長春中鐵東北亞國際博覽中心舉辦。作為國內高等教育領域規模大、影響力廣的綜合性展會&#xff0c;高博會始終聚焦教育科技前沿&#xff0c;吸引全國高校管理者、一線教師、教育科技企…

本地部署dify+ragflow+deepseek ,結合小模型實現故障預測,并結合本地知識庫和大模型給出維修建議

1.準備工作 使用ollama 拉取deepseek-r1:7b 官網下載ollama ollama run deepseek-r1:7b ollama list Ragflow專注于構建基于檢索增強生成&#xff08;RAG&#xff09;的工作流&#xff0c;強調模塊化和輕量化&#xff0c;適合處理復雜文檔格式和需要高精度檢索的場景。Dify…

https://api.ipify.org/?format=json 不好使

https://api.ipify.org/?formatjson 打不開&#xff0c;用下面新地址 https://api64.ipify.org/?formatjson

Linux基礎開發工具三(git,gdb/cgdb)

不知道你?作或學習時&#xff0c;有沒有遇到這樣的情況&#xff1a;我們在編寫各種?檔時&#xff0c;為了防??檔丟失&#xff0c;更改 失誤&#xff0c;失誤后能恢復到原來的版本&#xff0c;不得不復制出?個副本&#xff0c;?如&#xff1a; “報告-v1” “報告-v2” …

如何優化 Elasticsearch 磁盤空間和使用情況

作者&#xff1a;來自 Elastic Kofi Bartlett 解釋如何防止和處理磁盤過滿&#xff08;過度使用&#xff09;以及磁盤容量未被充分利用的情況。 想獲得 Elastic 認證&#xff1f;了解下一次 Elasticsearch Engineer 培訓的時間吧&#xff01; Elasticsearch 擁有許多新功能&am…

itop-3568開發板驅動開發指南-實驗程序的編寫

本實驗對應的網盤路徑為&#xff1a;iTOP-RK3568 開發板【底板 V1.7 版本】\03_【iTOP-RK3568開發板】指南教程\02_Linux 驅動配套資料\04_Linux 驅動例程\02。 本章實驗將編寫 Linux 下的驅動傳參實例代碼&#xff0c;通過“insmod”命令進行參數的傳遞&#xff0c;并將相應的…

lesson03-簡單回歸案例(理論+代碼)

一、梯度下降 二、 線性方程怎么樣&#xff1f; 三、有噪音嗎&#xff1f; 四、讓我們看一個列子 五、如何優化 啟發式搜索 學習進度 六、線性回歸、邏輯回歸、分類 總結、 簡單線性回歸是一種統計方法&#xff0c;用于確定兩個變量之間的關系。具體來說&#xff0c;它試圖…

【C語言】易錯題 經典題型

出錯原因&#xff1a;之前運行起來的可執行程序沒有關閉 關閉即可 平均數&#xff08;average&#xff09; 輸入3個整數&#xff0c;輸出它們的平均值&#xff0c;保留3位小數。 #include <stdio.h> int main() {int a, b, c;scanf("%d %d %d", &a, &…

修改樣式還能影響功能?是的!

最常見的幾種樣式導致按鈕點擊無效的情況&#xff1a; 1. pointer-events: none; &#x1f449; 點擊被徹底屏蔽 癥狀&#xff1a;按鈕完全不能點擊&#xff0c;事件不會觸發。 可能原因&#xff1a;這個樣式讓元素“無法響應鼠標事件”。 button {pointer-events: none; }…

ai決策平臺:AnKo如何推動引領智能化未來?

ai決策平臺&#xff1a;AnKo如何推動引領智能化未來&#xff1f; ai決策平臺正在改變企業運營模式&#xff0c;AnKo作為ai決策平臺的代表&#xff0c;為智能管理提供新方向。借助ai決策平臺&#xff0c;組織在效率與準確性上實現飛躍。ai決策平臺的力量正被廣泛認可。 ai決策…

開疆智能Profient轉ModbusTCP網關連接ABB機器人MODBUS TCP通訊案例

本案例是通過開疆智能Profinet轉ModbusTCP網關將西門子PLC與ABB機器人進行通訊 因西門子PLC采用Profinet協議&#xff0c;而ABB機器人采用的是ModbusTCP通訊。故采取此種方案。 配置過程&#xff1a; 1.MODBUS/TCP基于以太網&#xff0c;故ABB機器人在使用時需要有616-1PCIN…

2089. 找出數組排序后的目標下標——O(n)做法!

本題要求在一個已排序的數組 nums 中&#xff0c;找出所有等于目標值 target 的元素下標。若不存在這樣的元素&#xff0c;則返回 {-1, -1}。解決該問題有兩種主要方法&#xff1a;二分查找法和統計計數法。 二分查找法&#xff1a;首先對數組進行排序&#xff0c;然后通過二分…

pyspark測試樣例

from pyspark.sql import SparkSession from pyspark.sql.functions import col, lit, concat 創建 SparkSession spark SparkSession.builder.appName(“SparkSQLExample”).getOrCreate() 創建 DataFrame&#xff08;可以是從 CSV、JSON 等文件讀取&#xff09; data […

【AWS入門】AWS身份驗證和訪問管理(IAM)

【AWS入門】AWS身份驗證和訪問管理&#xff08;IAM&#xff09; [AWS Essentials] AWS Identity and Access Management (IAM) By JacksonML 眾所周知&#xff0c;AWS亞馬遜云科技位列全球云計算服務第一位&#xff0c;并且持續為廣大客戶提供安全、穩定的各類云產品和服務。…

HarmonyOS NEXT 適配高德地圖FlutterSDK實現地圖展示,添加覆蓋物和移動Camera

HarmonyOS NEXT 適配高德地圖 Flutter SDK 實現地圖展示&#xff0c;添加覆蓋物和移動 Camera 在現代移動應用開發中&#xff0c;地圖功能是許多應用的核心組成部分之一。HarmonyOS NEXT 提供了強大的跨平臺開發能力&#xff0c;而高德地圖 Flutter SDK 則為開發者提供了豐富的…

三鍵標準、多鍵usb鼠標數據格式

三鍵標準usb鼠標數據格式 滾輪上滾 滾輪下滾 鼠標快速上移 鼠標快速右移 鼠標快速左移 鼠標右鍵單擊_抬起 鼠標中鍵單擊_抬起 鼠標左鍵單擊_抬起 鼠標左鍵先按_右鍵再按_同時抬起 鼠標左右鍵同時按下_同時抬起 鼠標左右鍵同時按下_右鍵先抬 多鍵usb鼠標…