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的id()函数解密过程
Dec 25 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
如何利用python查找电脑文件
Apr 27 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
python系列 文件操作的代码
Oct 06 Python
python 深度学习中的4种激活函数
Sep 18 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 Python
Python利用capstone实现反汇编
Apr 06 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 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
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
py中的目录与文件判别代码
2008/07/16 Python
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
详解K-means算法在Python中的实现
2017/12/05 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
python读取Excel实例详解
2018/08/17 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python全局变量引用与修改过程解析
2020/01/07 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
优秀护士获奖感言
2014/02/20 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
机电系毕业生求职信
2014/07/11 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python