python将ansible配置转为json格式实例代码
发布时间 - 2026-01-11 01:07:30 点击率:次python将ansible配置转为json格式实例代码

ansible的配置文件举例如下,这种配置文件不利于在前端的展现,因此,我们用一段简单的代码将ansible的配置文件转为json格式的:
[webserver] 192.168.204.70 192.168.204.71 [dbserver] 192.168.204.72 192.168.204.73 192.168.204.75 [proxy] 192.168.204.76 192.168.204.77 192.168.204.78 [test] 192.168.204.79 192.168.204.80 [haproxy] 192.168.205.82 192.168.204.83
用python将ansible配置转为json格式,python代码如下:
import ConfigParser
import json
dict_result = {}
cf = ConfigParser.ConfigParser(allow_no_value=True)
cf.read('/etc/ansible/hosts.test')
secs = cf.sections()
for sec in secs:
dict_result[sec] = cf.options(sec)
print json.dumps(dict_result)
转换结果如下(python版本使用2.7版本的):
/usr/local/python/bin/python /tmp/test.py
{"test": ["192.168.204.79", "192.168.204.80"], "haproxy": ["192.168.205.82", "192.168.204.83"], "webserver": ["192.168.204.70", "192.168.204.71"], "proxy": ["192.168.204.76", "192.168.204.77", "192.168.204.78"], "dbserver": ["192.168.204.72", "192.168.204.73", "192.168.204.75"]}
转换成json文件就方便在前端进行展示了,使用Flask提供json格式的接口如下:
#获取ansible分组
@app.route('/web_test/ansible')
def web_test_ansible():
dict_result = {}
cf = ConfigParser.ConfigParser(allow_no_value=True)
cf.read('/etc/ansible/hosts.test')
secs = cf.sections()
for sec in secs:
dict_result[sec] = cf.options(sec)
return json.dumps(dict_result)
然后前端代码(使用bootstrap treeview)如下:
<script src="/static/js/bootstrap-treeview.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#btn-get-hostgroup').click(function () {
getAllCheck = $('#hostgrouptree').treeview('getChecked');
for (var i = 0; i < getAllCheck.length; i++) {
console.log(getAllCheck[i].text);
}
});
$.ajax({
url: '/web_test/ansible',
type: 'GET',
success: function (data) {
result = JSON.parse(data);
nodes = [];
for (var hostgroup in result) {
var nodeshostgroup = [];
hosts = result[hostgroup];
for (var i = 0; i < hosts.length; i++) {
nodeshostgroup.push({text: hosts[i], selectable:false});
}
nodes.push({text: hostgroup, nodes: nodeshostgroup, selectable:false});
}
$('#hostgrouptree').treeview({data: [{text: 'all', nodes: nodes, selectable:false}], showCheckbox: true, showBorder:false});
}
});
});
</script>
{% endblock %}
{% block page_content %}
<div class="col-md-4" id="hostgrouptree">
</div>
<div class="col-md-6">
<button id="btn-get-hostgroup" type="button" class="btn btn-default">获取选中的组</button>
</div>
ansible的配置文件在前端的展示如下,获取ansible选中的组,利用ansible命令就可以实现一些简单的自动化操作了:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# python将ansible配置转为json格式
# ansible配置转为json格式
# python ansible自动化运维工具执行流程
# python中Ansible模块的Playbook的具体使用
# ansible-playbook实现自动部署KVM及安装python3的详细教程
# Python自动化运维之Ansible定义主机与组规则操作详解
# python自动化之Ansible的安装教程
# python ansible服务及剧本编写
# ansible作为python模块库使用的方法实例
# python开发的自动化运维工具ansible详解
# 配置文件
# 作了
# 希望能
# 谢谢大家
# 转换成
# 就可以
# 展示了
# hosts
# read
# secs
# sections
# sec
# True
# ConfigParser
# import
# dict_result
# allow_no_value
# cf
# options
# tmp
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么为数据库表字段添加索引以优化查询
Python数据仓库与ETL构建实战_Airflow调度流程详解
如何用PHP快速搭建CMS系统?
香港服务器WordPress建站指南:SEO优化与高效部署策略
html如何与html链接_实现多个HTML页面互相链接【互相】
怎么用AI帮你设计一套个性化的手机App图标?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
iOS UIView常见属性方法小结
iOS发送验证码倒计时应用
微信小程序 HTTPS报错整理常见问题及解决方案
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
详解Huffman编码算法之Java实现
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Python函数文档自动校验_规范解析【教程】
高防服务器租用首荐平台,企业级优惠套餐快速部署
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何在IIS服务器上快速部署高效网站?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何将凡科建站内容保存为本地文件?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel如何实现本地化和多语言支持?(i18n教程)
HTML 中动态设置元素 name 属性的正确语法详解
装修招标网站设计制作流程,装修招标流程?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
C++时间戳转换成日期时间的步骤和示例代码
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何自定义分页视图?(Pagination示例)
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何使用Gate和Policy进行授权?(权限控制)
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
C语言设计一个闪闪的圣诞树
Bootstrap整体框架之CSS12栅格系统
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel如何处理文件下载请求?(Response示例)
Swift中循环语句中的转移语句 break 和 continue
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
怎样使用JSON进行数据交换_它有什么限制
如何用wdcp快速搭建高效网站?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道

