使用 Python 和 Excel 进行基于风险的动态更新
使用 Python 和 Excel 进行基于风险的动态更新”
在本博客中,我们将采用一个简单的 Ansible 服务器更新脚本,并将其转变为基于风险的更新系统。在这里,风险最低的服务器首先得到修补,使我们有机会在转向更高优先级的系统之前进行彻底的测试。
-
Ansible 自动化:
- 使用 Python 和 Excel 进行基于风险的动态更新”
- 主机文件
- 动态主机列表
- 为什么不使用主机文件?
秘方?设置明确的组以使此过程无缝进行。但真正的问题是:我们能否在不对上次的 Ansible 脚本进行重大更改的情况下实现这一目标?让我们来看看吧!
主机文件
主机文件是此更改的核心。在上一篇文章中,我们使用了按服务器类型分组的静态文件。现在,我们添加了按风险级别分组的第二层 - 这确实增加了主机文件的复杂性。
但问题在于:如果我们的主机文件可以从更通用的源动态生成怎么办?这将使事情保持灵活性并使我们免于无休止的文件编辑!
动态主机列表
Ansible 可以使用动态创建的主机文件,这为我们提供了更灵活的方式来跟踪服务器。在此示例中,我们将使用 Excel 文件来组织我们的主机。
hosts_data.xlsx 结构示例:
Host Name | Server Environment | Ansible User | Server Type | DNS | Notes |
---|---|---|---|---|---|
mint | dev | richard | desktop | desktop.sebostech.LOCAL | Mint desk top |
ansible_node | dev | ansible_admin | Ansible | ansible_node.sebostech.local | Development server; Only updates monthly |
clone_master | dev | ansible_admin | clone | clone.dev.sebostech.local | Development server; Only updates monthly |
mele | staging | richard | nas | nas.stage.sebostech.local | Testing server; Used for application testing |
pbs | production | root | backup server | pbs.prod.sebostech.local | Testing server; Used for application testing |
pve | production | root | hypervisor | api.stage.sebostech.local | Testing server; Used for application testing |
samba | production | richard | nas | nas.prod.sebostech.local | Critical server; Requires daily backup |
firewall | production | richard | firewall | firewall.sebostech.local | Critical server; Requires daily backup |
大多数 IT 部门已经将服务器列表存储在 Excel 文件中,那么为什么不充分利用它呢?这种方法可以轻松地使我们的 Ansible 主机保持井井有条并保持最新状态,而无需不断进行手动更新。
但是 Ansible 是如何使用 Excel 文件的呢?让我们深入研究如何将这些数据转换为可用的动态库存!
## This will run agains all host ansible-playbook -i dynamic_inventory.py playbook.yml
您还可以根据服务器环境、服务器类型甚至两者的组合,使用环境变量选项来定位特定组:
## Just production SERVER_ENVIRONMENT="production" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## Just nas SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## production nas SERVER_ENVIRONMENT="production" SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"
需要新群组吗?只需更新 Excel 文件并相应调整 Python 脚本 - 就这么简单!
要查看 Python 代码,请参阅此处。
为什么不使用主机文件?
当我第一次开始使用 Ansible 时,hosts 文件是我的首选。但随着我添加更多服务器,尤其是具有双重角色的服务器,该文件变得越来越复杂。
您可以使用传统的主机文件来实现此目的吗?当然可以,但是有一些缺点。
使用主机文件,您可能最终会得到重复的条目或附加变量来捕获您需要的所有结构。另一方面,Excel 文件提供了干净、易于维护的结构,使内容保持井井有条。
在企业环境中,很可能已经至少有一个包含服务器列表的 Excel 文件,那么为什么不利用它呢?
如果您希望我更深入地了解 Python 代码,请告诉我!
以上是使用 Python 和 Excel 进行基于风险的动态更新的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...

Python3.6环境下加载pickle文件报错:ModuleNotFoundError:Nomodulenamed...

使用Scapy爬虫时管道文件无法写入的原因探讨在学习和使用Scapy爬虫进行数据持久化存储时,可能会遇到管道文�...
