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 相关文章推荐
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
解决Python一行输出不显示的问题
Dec 03 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 Python
python无序链表删除重复项的方法
Jan 17 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
python 经纬度求两点距离、三点面积操作
Jun 03 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
服务器web工具 php环境下
2010/12/29 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue组件watch属性实例讲解
2017/11/07 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Python实现的购物车功能示例
2018/02/11 Python
python写一个md5解密器示例
2018/02/23 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
大学生个人实习的自我评价
2014/02/15 职场文书
高校教师岗位职责
2014/03/18 职场文书
预备党员承诺书
2014/03/25 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python