Microsoft ARI (Azure Resource Inventory) 安装与配置完全指南
前言
Microsoft ARI (Azure Resource Inventory) 是一款强大的 PowerShell 模块,专为 Azure 资源管理而设计。本文将详细介绍如何在不同环境下安装和配置 ARI,帮助系统管理员和云架构师快速搭建资源盘点工具。
核心功能概述
在开始安装前,让我们先了解 ARI 的核心能力:
- 自动化收集 Azure 订阅中的资源清单
- 生成结构化的 Excel 格式报告
- 支持跨订阅的资源聚合分析
- 提供资源依赖关系可视化
系统要求详解
PowerShell 环境要求
ARI 支持两种 PowerShell 版本:
-
推荐版本:PowerShell 7.0+
- 支持跨平台运行(Windows/Linux/macOS)
- 性能优化更好
- 支持最新的 PowerShell 特性
-
最低要求:PowerShell 5.1
- 仅限 Windows 平台
- 功能完整但性能稍逊
Azure 权限要求
使用 ARI 需要以下 Azure RBAC 角色之一:
- 读者(Reader)
- 监控读者(Monitoring Reader)
- 自定义角色包含以下权限:
Microsoft.Resources/subscriptions/resources/read
Microsoft.ResourceGraph/resources/read
必备模块说明
ARI 依赖以下 PowerShell 模块:
| 模块名称 | 功能用途 | 版本要求 | |---------|---------|---------| | ImportExcel | Excel 报表生成 | ≥7.1.0 | | Az.Accounts | Azure 认证管理 | ≥2.0.0 | | Az.ResourceGraph | 资源查询服务 | ≥0.10.0 | | Az.Storage | 存储账户操作 | ≥3.0.0 | | Az.Compute | 计算资源管理 | ≥4.0.0 |
详细安装指南
方法一:从 PowerShell 库安装(推荐)
- 打开 PowerShell 会话(建议以管理员身份运行)
- 执行以下命令安装稳定版本:
Install-Module -Name AzureResourceInventory -Force -AllowClobber
- 如果遇到权限问题,可使用用户级安装:
Install-Module -Name AzureResourceInventory -Scope CurrentUser -Force
安装过程解析:
-Force
参数会覆盖现有版本-AllowClobber
解决命令冲突- 首次安装会自动下载所有依赖模块
方法二:手动安装(离线环境)
适用于受限制的网络环境:
- 获取模块压缩包(需从官方渠道下载)
- 解压到 PowerShell 模块目录:
- Windows:
$env:USERPROFILE\Documents\PowerShell\Modules\
- Linux/macOS:
~/.local/share/powershell/Modules/
- Windows:
- 确保文件夹命名为
AzureResourceInventory
安装后验证
执行以下命令验证安装:
Get-Command -Module AzureResourceInventory
预期应看到 ARI 提供的所有命令列表,包括:
Get-AzResourceInventory
Export-AzResourceInventory
Update-AzResourceInventoryCache
模块导入最佳实践
建议采用以下方式导入模块:
Import-Module AzureResourceInventory -DisableNameChecking -PassThru
参数说明:
-DisableNameChecking
跳过名称冲突检查-PassThru
显示导入的模块信息
版本更新策略
建议设置定期更新机制:
# 检查可用更新
Find-Module AzureResourceInventory
# 执行更新
Update-Module AzureResourceInventory -Force
更新注意事项:
- 重大版本更新前备份配置文件
- 生产环境建议先测试后更新
- 可固定特定版本:
Install-Module -RequiredVersion x.x.x
常见问题排查
问题1:模块依赖缺失
解决方案:
$requiredModules = 'ImportExcel','Az.Accounts','Az.ResourceGraph','Az.Storage','Az.Compute'
$requiredModules | ForEach-Object {
if (!(Get-Module -ListAvailable $_)) {
Install-Module $_ -Force -AllowClobber
}
}
问题2:执行策略限制
调整执行策略(需管理员权限):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
问题3:代理环境配置
如需通过代理访问:
$proxyAddress = 'http://your.proxy.server:8080'
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy($proxyAddress)
进阶配置建议
-
模块自动加载: 在
$PROFILE
中添加:Import-Module AzureResourceInventory -DisableNameChecking
-
自定义模块路径:
$env:PSModulePath += ";C:\MyCustomModules\"
-
多版本共存:
Import-Module AzureResourceInventory -RequiredVersion 1.2.0
安全注意事项
- 生产环境建议使用服务主体认证而非交互式登录
- 定期审计模块更新日志,关注安全补丁
- 限制模块安装来源为可信的 PowerShell Gallery
后续操作建议
成功安装后,建议:
- 配置 Azure 认证环境
- 测试基础资源查询功能
- 设置自动化执行计划
- 自定义报表输出格式
通过本文的详细指导,您应该已经完成了 ARI 的安装和基础配置。下一步可以探索模块的高级功能,如自定义资源查询、报表模板设计等,以充分发挥 Azure 资源管理的潜力。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考