jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 腳本中心 > python > 詳細頁面

Python實現自動裝機功能案例分析

時間:2020-10-22來源:www.farandoo.com作者:電腦系統城

前言

提示:在管理服務器的過程中,發現有很多服務器在啟動的過程中默認以PXE方式啟動,這就導致我們無法將PXE裝機程序放開到所有的交換機端口中,本文是以Python對dell服務器進行了一些控制,更多廠商機器的管理和控制,仍在調研中。


提示:以下是本篇文章正文內容,下面案例可供參考

一、利用snmp協議獲取到目標機器的網卡mac地址

代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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地址做防火墻控制

防火墻的初始化:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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實現自動裝機功能案例分析的文章就介紹到這了

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載