当前位置: 首页 > 编程笔记 >

python将ansible配置转为json格式实例代码

东郭元魁
2023-03-14
本文向大家介绍python将ansible配置转为json格式实例代码,包括了python将ansible配置转为json格式实例代码的使用技巧和注意事项,需要的朋友参考一下

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命令就可以实现一些简单的自动化操作了:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 问题内容: 我尝试使用json格式的文件作为输入。这是示例数据的片段。 可以在r中使用这种复杂的json格式制作一个csv,以便更平滑地处理数据吗? 例如,有以下基本类别:基本信息照片创建者位置类别网址 可以制作带有basic_information.id,creator.id等子类别类别的csv文件吗? 问题答案: 在研究您的答案时,我在评论中张贴了一些链接,但现在我非常确信这是解决问题的方法。

  • 问题内容: 我想将数组转换为JSON格式。这是我的来源: 这是我想要的期望结果: 首先,我将字节转换为字符串: 但是当我尝试加载到JSON时: 我收到此错误: 问题答案: 您的对象 几乎 是JSON,但是它使用单引号而不是双引号,并且它必须是字符串。因此,解决该问题的一种方法是解码to 并替换引号。另一种选择是使用; 有关详情,请参见下文。如果要打印结果或将其作为有效JSON保存到文件中,则可以将

  • 本文向大家介绍python 把数据 json格式输出的实例代码,包括了python 把数据 json格式输出的实例代码的使用技巧和注意事项,需要的朋友参考一下 有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作  这样就会得到如下的输出: 可以看到都已经格式化了。 这是在python中,如果直接使用命令行,希望直接转换,可

  • 问题内容: 有什么办法可以将mongo集合转储为json格式吗?无论是在外壳上还是使用Java驱动程序,我都在寻找性能最好的一个。 问题答案: Mongo包含可转储集合的mongoexport实用程序(请参阅文档)。该实用程序使用本机libmongoclient,可能是最快的方法。 也有帮助: :将输出写入文件,否则使用标准输出(docs) :生成一个有效的json文档,而不是每行一个json对象

  • 问题内容: 我有一个带有两列的Pandas –一列带有文件名,一列带有生成它的时间: 我正在尝试将其转换为以下格式的JSON文件: 使用命令时,将以以下格式获取记录: 我只是想知道是否存在以所需格式获取JSON文件的选项。任何帮助,将不胜感激。 问题答案: 您得到的输出是。因此,您可以根据需要简单地对其进行切片,并从中删除逗号。 要将输出写入文本文件,您可以执行以下操作:

  • 问题内容: 我有两个清单 我希望最终结果像这样在json中。 我使用zip(a,b)合并两个,但无法命名 问题答案: 使用列表理解: 使用得到JSON: