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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
python中requests模块的使用方法
Apr 08 Python
python实现NB-IoT模块远程控制
Jun 20 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
python实现简易数码时钟
Feb 19 Python
python网络应用开发知识点浅析
May 28 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 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 代码优化之经典示例
2011/03/24 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
动手学习无线电
2021/03/10 无线电
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python中属性和描述符的正确使用
2016/08/23 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
企业厂长岗位职责
2013/12/17 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
小组合作学习反思
2014/02/18 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android