python將ansible配置轉(zhuǎn)為json格式實(shí)例代碼
python將ansible配置轉(zhuǎn)為json格式實(shí)例代碼
ansible的配置文件舉例如下,這種配置文件不利于在前端的展現(xiàn),因此,我們用一段簡(jiǎn)單的代碼將ansible的配置文件轉(zhuǎn)為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配置轉(zhuǎn)為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)
轉(zhuǎn)換結(jié)果如下(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"]}
轉(zhuǎn)換成json文件就方便在前端進(jìn)行展示了,使用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命令就可以實(shí)現(xiàn)一些簡(jiǎn)單的自動(dòng)化操作了:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程
- python中Ansible模塊的Playbook的具體使用
- ansible-playbook實(shí)現(xiàn)自動(dòng)部署KVM及安裝python3的詳細(xì)教程
- Python自動(dòng)化運(yùn)維之Ansible定義主機(jī)與組規(guī)則操作詳解
- python自動(dòng)化之Ansible的安裝教程
- python ansible服務(wù)及劇本編寫(xiě)
- ansible作為python模塊庫(kù)使用的方法實(shí)例
- python開(kāi)發(fā)的自動(dòng)化運(yùn)維工具ansible詳解
相關(guān)文章
Python實(shí)現(xiàn)比較兩個(gè)列表(list)范圍
這篇文章主要介紹了Python實(shí)現(xiàn)比較兩個(gè)列表(list)范圍,本文根據(jù)一道題目實(shí)現(xiàn)解決代碼,本文分別給出題目和解答源碼,需要的朋友可以參考下2015-06-06django用戶登錄和注銷(xiāo)的實(shí)現(xiàn)方法
這篇文章主要介紹了django用戶登錄和注銷(xiāo)的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07跟老齊學(xué)Python之深入變量和引用對(duì)象
本講再次提及變量和引用對(duì)象,就是要讓看官對(duì)變量和賦值有一個(gè)知其然和知其所以然的認(rèn)識(shí)。當(dāng)然,最后能不能達(dá)到此目的,主要看我是不是說(shuō)的通俗易懂了。如果您沒(méi)有明白,就說(shuō)明我說(shuō)的還不夠好,可以聯(lián)系我,我再為您效勞。2014-09-09帶你學(xué)習(xí)Python如何實(shí)現(xiàn)回歸樹(shù)模型
這篇文章主要介紹了Python如何實(shí)現(xiàn)回歸樹(shù)模型,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07Python利用yarl實(shí)現(xiàn)輕松操作url
在諸如網(wǎng)絡(luò)爬蟲(chóng)、web應(yīng)用開(kāi)發(fā)等場(chǎng)景中,我們需要利用Python完成大量的url解析、生成等操作。本文為大家介紹了Pythonyarl操作url的方法,需要的可以了解一下2022-10-10django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了django中上傳圖片分頁(yè)三級(jí)聯(lián)動(dòng)效果的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-08