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备份Mysql脚本
Aug 11 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python 批量压缩图片的脚本
Jun 02 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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php异常处理使用示例
2014/02/25 PHP
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python读取文件名并改名字的实例
2019/01/07 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
python应用文件读取与登录注册功能
2019/09/23 Python
python lambda的使用详解
2021/02/26 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
给领导的致歉信范文
2014/01/13 职场文书
住宅质量保证书
2014/04/29 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
心灵点滴观后感
2015/06/02 职场文书
单位病假条范文
2015/08/17 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python