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 】
相关推荐:
昵图网官网入口 昵图网素材平台官方入口
PythonWeb开发入门教程_Flask快速构建Web应用
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel如何使用Blade组件和插槽?(Component代码示例)
python中快速进行多个字符替换的方法小结
javascript中对象的定义、使用以及对象和原型链操作小结
如何在建站之星绑定自定义域名?
Laravel如何实现模型的全局作用域?(Global Scope示例)
zabbix利用python脚本发送报警邮件的方法
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel如何使用模型观察者?(Observer代码示例)
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Laravel如何实现多对多模型关联?(Eloquent教程)
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel如何发送系统通知?(Notification渠道示例)
b2c电商网站制作流程,b2c水平综合的电商平台?
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
中国移动官方网站首页入口 中国移动官网网页登录
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel如何使用Telescope进行调试?(安装和使用教程)
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
想要更高端的建设网站,这些原则一定要坚持!
详解jQuery停止动画——stop()方法的使用
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel怎么使用Intervention Image库处理图片上传和缩放
php json中文编码为null的解决办法
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
专业商城网站制作公司有哪些,pi商城官网是哪个?
北京网站制作公司哪家好一点,北京租房网站有哪些?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何快速上传自定义模板至建站之星?
如何自定义建站之星网站的导航菜单样式?
如何快速生成高效建站系统源代码?
php结合redis实现高并发下的抢购、秒杀功能的实例
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何用PHP快速搭建高效网站?分步指南
Laravel如何配置任务调度?(Cron Job示例)
如何用VPS主机快速搭建个人网站?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在腾讯云服务器上快速搭建个人网站?

