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正则简单实例分析
Mar 21 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python绘图模块matplotlib示例详解
Jul 26 Python
python绘制玫瑰的实现代码
Mar 02 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
python Django 反向访问器的外键冲突解决
May 20 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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/12/06 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
Firefox div高度自适应
2009/04/28 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
python实现BackPropagation算法
2017/12/14 Python
python opencv之SIFT算法示例
2018/02/24 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
如何清空python的变量
2020/07/05 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
python如何构建mock接口服务
2021/01/28 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
国际商务专业学生个人的自我评价
2013/09/28 职场文书
粗加工管理制度
2014/02/04 职场文书
租赁协议书范本
2014/04/22 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
微信小程序调用python模型
2022/04/21 Python