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 相关文章推荐
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python时间time模块处理大全
Oct 25 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
关于python类SortedList详解
Sep 04 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/10/09 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP实现懒加载的方法
2015/03/07 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
超实用的 30 段 Python 案例
2019/10/10 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
NumPy排序的实现
2020/01/21 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
降低python版本的操作方法
2020/09/11 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
2014年人事专员工作总结
2014/11/19 职场文书
辞职信的写法
2015/02/27 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
React配置子路由的实现
2021/06/03 Javascript
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
MySQL导致索引失效的几种情况
2022/06/25 MySQL