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自动化测试工具Splinter简介和使用实例
May 13 Python
python中__call__方法示例分析
Oct 11 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
Python创建普通菜单示例【基于win32ui模块】
May 09 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
python中Lambda表达式详解
Nov 20 Python
打包PyQt5应用时的注意事项
Feb 14 Python
基于Python脚本实现邮件报警功能
May 20 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
如何用Python绘制3D柱形图
Sep 16 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 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
生成静态页面的PHP类
2006/07/15 PHP
PHP的FTP学习(一)
2006/10/09 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
python生成日历实例解析
2014/08/21 Python
Python set集合类型操作总结
2014/11/07 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
python字符串与url编码的转换实例
2018/05/10 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python 忽略warning的输出方法
2018/10/18 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
李培根演讲稿
2014/05/22 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
分居协议书范本
2014/11/03 职场文书
个人先进事迹材料
2014/12/29 职场文书
努力学习保证书
2015/02/26 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
喋血孤城观后感
2015/06/08 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书