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 中 list 的各项操作技巧
Apr 13 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python subprocess模块常见用法分析
Jun 12 Python
Python列表推导式与生成器用法分析
Aug 02 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
python框架django项目部署相关知识详解
Nov 04 Python
python sorted方法和列表使用解析
Nov 18 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
python中zip()函数遍历多个列表方法
Feb 18 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简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
js中日期的加减法
2015/05/06 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
python小技巧之批量抓取美女图片
2014/06/06 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
高校生生产实习自我鉴定
2013/09/21 职场文书
有个性的自我评价范文
2013/11/15 职场文书
岗位职责范本
2013/11/23 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
高三化学教学反思
2016/02/22 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python