Python实现自动装机功能案例分析


Posted in Python onOctober 22, 2020

前言

提示:在管理服务器的过程中,发现有很多服务器在启动的过程中默认以PXE方式启动,这就导致我们无法将PXE装机程序放开到所有的交换机端口中,本文是以Python对dell服务器进行了一些控制,更多厂商机器的管理和控制,仍在调研中。


提示:以下是本篇文章正文内容,下面案例可供参考

一、利用snmp协议获取到目标机器的网卡mac地址

代码如下

def get_mac(ipmi, netcard):
	#ipmi即服务器idrac_ip,netcard即网卡序列号(一般是4个,从1开始)
  # 将控制卡IP传给snmp命令,获取mac地址
  popen = subprocess.Popen(f'snmpwalk -v 2c -c public {ipmi} 1.3.6.1.4.1.674.10892.5.4.1100.90.1.6.1.{netcard}',
               stdout=subprocess.PIPE, shell=True)
  popen.wait()
  res = popen.stdout.read().decode().split()[-1].split('"')[0]
  res1 = res.replace(":", "")
  res2 = res.lower()
  # 获取到的mac地址,去空格,写入到文件中
  with open("/root/allow_mac", mode="w", encoding="utf-8") as f:
    f.write(res + "\n")
  print(res)
  #获取到mac地址的目的有两个,可以将mac地址传给后端交换机,交换机找到对应的接口,自动进行网络配置的下发,
	#另外一个是针对mac地址做防火墙控制

防火墙的初始化:

def init_iptables():
  # 调用iptables初始化防火墙策略
  print("防火墙开始初始化")
  subprocess.call('/sbin/iptables -F ', shell=True)
  subprocess.call('/sbin/iptables -P OUTPUT ACCEPT ', shell=True)
  subprocess.call('/sbin/iptables -A INPUT -m state --state INVALID -j DROP ', shell=True)
  subprocess.call('/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ', shell=True)
  subprocess.call('/sbin/iptables -P INPUT DROP ', shell=True)
  # stdout = subprocess.call('/sbin/iptables -L ', shell=True)
  # print(stdout)
  # subprocess.call('systemctl stop dhcpd ', shell=True)
  print("防火墙初始化完毕")
  #主要就是封装了一系列防火墙的配置,在装机完成之后,可以进行再控制,防止其他机器通过pxe-server进行装机操作

到此这篇关于Python实现自动装机功能案例分析的文章就介绍到这了,更多相关Python自动装机内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
关于Python面向对象编程的知识点总结
Feb 14 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
使用Python爬取Json数据的示例代码
Dec 07 Python
python如何进行基准测试
Apr 26 Python
Python reversed反转序列并生成可迭代对象
Oct 22 #Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 #Python
Python类的继承super相关原理解析
Oct 22 #Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 #Python
Python基于内置函数type创建新类型
Oct 22 #Python
python使用ctypes库调用DLL动态链接库
Oct 22 #Python
Python通过len函数返回对象长度
Oct 22 #Python
You might like
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
Yii全局函数用法示例
2017/01/22 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
关于this和self的使用说明
2010/08/01 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
python针对excel的操作技巧
2018/03/13 Python
python3爬虫怎样构建请求header
2018/12/23 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
关于Java finally的面试题
2016/04/27 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
本科毕业生求职信
2014/06/15 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
三方股份合作协议书
2014/10/13 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
话题作文之诚信
2019/11/28 职场文书
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript