优化项目结构

This commit is contained in:
2025-09-25 13:36:12 +08:00
parent 923b338172
commit f8cad4e61f
9 changed files with 280 additions and 6 deletions

1
.gitignore vendored
View File

@@ -204,3 +204,4 @@ __marimo__/
# 业务文件
*.crt
config.csv

View File

@@ -1,5 +1,6 @@
index,name,code,gateway,public,mask,private,domain,cert
0,混拨1,hh1,43.226.58.1,43.226.58.9,24,192.168.98.1,hh,server.9.crt
0,混拨1,hh1,43.226.58.1,43.226.58.7,24,192.168.98.3,hh,server.7.crt
0,混拨2,hh2,43.226.58.1,43.226.58.8,24,192.168.98.2,hh,server.crt
1,宣城,ahxc215,43.226.58.1,43.226.58.10,24,192.168.99.1,ahxc,server.crt
2,宿州,ahsz216,43.226.58.1,43.226.58.11,24,192.168.99.2,ahsz,server.crt
3,阜阳,ahfy225,43.226.58.1,43.226.58.12,24,192.168.99.3,ahfy,server.crt
1 index name code gateway public mask private domain cert
2 0 混拨1 hh1 43.226.58.1 43.226.58.9 43.226.58.7 24 192.168.98.1 192.168.98.3 hh server.9.crt server.7.crt
3 0 混拨2 hh2 43.226.58.1 43.226.58.8 24 192.168.98.2 hh server.crt
4 1 宣城 ahxc215 43.226.58.1 43.226.58.10 24 192.168.99.1 ahxc server.crt
5 2 宿州 ahsz216 43.226.58.1 43.226.58.11 24 192.168.99.2 ahsz server.crt
6 3 阜阳 ahfy225 43.226.58.1 43.226.58.12 24 192.168.99.3 ahfy server.crt

View File

@@ -1,2 +0,0 @@
index,name,code,gateway,public,mask,private,domain,cert
0,混拨1,hh1,43.226.58.1,43.226.58.9,24,192.168.98.1,hh,server.9.crt
1 index name code gateway public mask private domain cert
2 0 混拨1 hh1 43.226.58.1 43.226.58.9 24 192.168.98.1 hh server.9.crt

View File

@@ -30,7 +30,11 @@ failed = []
# 配置执行步骤
steps = [
configLogs
configNet,
configOutsMix,
configScripts,
configLogs,
configDrop
]

View File

@@ -101,11 +101,58 @@ def configOuts(conn:Api,config):
print('添加路由表失败: {}'.format(e))
continue
def configOutsMix(conn:Api,config):
ppps = conn.path('interface', 'l2tp-client')
for ppp in ppps:
if ppp['name'].startswith('l2tp-out'):
try:
ppps.remove(ppp['.id'])
except Exception as e:
print('删除 PPP 失败: {}'.format(e))
continue
for i in range(30):
for j in range(10):
n = j*30 + i
k = n%3 + 1
ppps.add(**{
'name':f'l2tp-out{n+1}',
'connect-to':f'192.168.25{k}.25{k}',
'user':f'jdzz{j+11}dt{i+221}',
'password':'123231',
'disabled':'no',
})
routes = conn.path('ip', 'route')
for route in routes:
if str(route['routing-table']).startswith('r'):
try:
routes.remove(route['.id'])
except Exception as e:
print('删除路由表失败: {}'.format(e))
continue
for i in range(300):
routeName = f'r{i+1}'
routeOut = f'l2tp-out{i+1}'
try:
routes.add(**{
'dst-address': '0.0.0.0/0',
'gateway': routeOut,
'routing-table': routeName,
})
except Exception as e:
print('添加路由表失败: {}'.format(e))
continue
def configScripts(conn:Api,config):
'''
配置脚本
'''
# 配置脚本
scripts = conn.path('system', 'script')
for script in scripts:
if script['name'] == 'up':
@@ -137,6 +184,8 @@ def configScripts(conn:Api,config):
'source': pppoeStatusScript.replace('<IP>', config['public'])
})
# todo 配置计划任务
def configLogs(conn:Api,config):
'''
配置日志处理
@@ -222,7 +271,7 @@ def configLogs(conn:Api,config):
'action': 'logremoteidc',
})
def addDrop(conn:Api, config):
def configDrop(conn:Api, config):
'''
添加丢弃规则
'''

Binary file not shown.

View File

@@ -0,0 +1,2 @@
SHA1(ros-test.nvram)= f9f46745698c658f483adcb0dc7a9d30144fc452
SHA1(ros-58.10-宣城-0.vmdk)= 4b0f4ea68dc8b56bd7af112e593227324919c58a

View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by VMware ESX Server, User: root, UTC time: 2025-09-24T16:36:02.105938Z-->
<Envelope vmw:buildId="build-22380479" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<References>
<File ovf:href="ros-58.10-%e5%ae%a3%e5%9f%8e-0.vmdk" ovf:id="file1" ovf:size="0"/>
<File ovf:href="ros-test.nvram" ovf:id="file2" ovf:size="0"/>
</References>
<DiskSection>
<Info>Virtual disk information</Info>
<Disk ovf:capacity="6" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"/>
</DiskSection>
<NetworkSection>
<Info>The list of logical networks</Info>
<Network ovf:name="VM Network">
<Description>The VM Network network</Description>
</Network>
<Network ovf:name="address">
<Description>The address network</Description>
</Network>
</NetworkSection>
<VirtualSystem ovf:id="ros-58.10-宣城">
<Info>A virtual machine</Info>
<Name>ros-58.10-宣城</Name>
<OperatingSystemSection ovf:id="99" vmw:osType="other26xLinuxGuest">
<Info>The kind of installed guest operating system</Info>
</OperatingSystemSection>
<VirtualHardwareSection>
<Info>Virtual hardware requirements</Info>
<System>
<vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
<vssd:InstanceID>0</vssd:InstanceID>
<vssd:VirtualSystemIdentifier>ros-58.10-宣城</vssd:VirtualSystemIdentifier>
<vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType>
</System>
<Item>
<rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
<rasd:Description>Number of Virtual CPUs</rasd:Description>
<rasd:ElementName>2 virtual CPU(s)</rasd:ElementName>
<rasd:InstanceID>1</rasd:InstanceID>
<rasd:ResourceType>3</rasd:ResourceType>
<rasd:VirtualQuantity>2</rasd:VirtualQuantity>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
<rasd:Description>Memory Size</rasd:Description>
<rasd:ElementName>1024MB of memory</rasd:ElementName>
<rasd:InstanceID>2</rasd:InstanceID>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:Address>1</rasd:Address>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>VirtualIDEController 1</rasd:ElementName>
<rasd:InstanceID>3</rasd:InstanceID>
<rasd:ResourceType>5</rasd:ResourceType>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:Address>0</rasd:Address>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>VirtualIDEController 0</rasd:ElementName>
<rasd:InstanceID>4</rasd:InstanceID>
<rasd:ResourceType>5</rasd:ResourceType>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item ovf:required="false">
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:ElementName>VirtualVideoCard</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceType>24</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="useAutoDetect" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="videoRamSizeInKB" vmw:value="4096"/>
<vmw:Config ovf:required="false" vmw:key="enable3DSupport" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="use3dRenderer" vmw:value="automatic"/>
<vmw:Config ovf:required="false" vmw:key="graphicsMemorySizeInKB" vmw:value="262144"/>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item ovf:required="false">
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:ElementName>VirtualVMCIDevice</rasd:ElementName>
<rasd:InstanceID>6</rasd:InstanceID>
<rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
<rasd:ResourceType>1</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="33"/>
<vmw:Config ovf:required="false" vmw:key="allowUnrestrictedCommunication" vmw:value="false"/>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:ElementName>Hard Disk 1</rasd:ElementName>
<rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
<rasd:InstanceID>7</rasd:InstanceID>
<rasd:Parent>4</rasd:Parent>
<rasd:ResourceType>17</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="backing.writeThrough" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="guestReadOnly" vmw:value="false"/>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:AddressOnParent>7</rasd:AddressOnParent>
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
<rasd:Connection>VM Network</rasd:Connection>
<rasd:Description>VmxNet3 ethernet adapter on &quot;VM Network&quot;</rasd:Description>
<rasd:ElementName>Ethernet 1</rasd:ElementName>
<rasd:InstanceID>8</rasd:InstanceID>
<rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
<rasd:ResourceType>10</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="160"/>
<vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="connectable.allowGuestControl" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="uptCompatibilityEnabled" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="uptv2Enabled" vmw:value="false"/>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<Item>
<rasd:AddressOnParent>8</rasd:AddressOnParent>
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
<rasd:Connection>address</rasd:Connection>
<rasd:Description>VmxNet3 ethernet adapter on &quot;address&quot;</rasd:Description>
<rasd:ElementName>Ethernet 2</rasd:ElementName>
<rasd:InstanceID>9</rasd:InstanceID>
<rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
<rasd:ResourceType>10</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="192"/>
<vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="connectable.allowGuestControl" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="uptCompatibilityEnabled" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="uptv2Enabled" vmw:value="false"/>
<vmw:CoresPerSocket ovf:required="false">1</vmw:CoresPerSocket>
</Item>
<vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="cpuHotRemoveEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="firmware" vmw:value="bios"/>
<vmw:Config ovf:required="false" vmw:key="cpuAllocation.shares.shares" vmw:value="2000"/>
<vmw:Config ovf:required="false" vmw:key="cpuAllocation.shares.level" vmw:value="normal"/>
<vmw:Config ovf:required="false" vmw:key="simultaneousThreads" vmw:value="1"/>
<vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHostAllowed" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.afterPowerOn" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.afterResume" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.beforeGuestShutdown" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.beforeGuestStandby" vmw:value="true"/>
<vmw:Config ovf:required="false" vmw:key="tools.toolsUpgradePolicy" vmw:value="manual"/>
<vmw:Config ovf:required="false" vmw:key="fixedPassthruHotPlugEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="hard"/>
<vmw:Config ovf:required="false" vmw:key="nestedHVEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="vPMCEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="virtualICH7MPresent" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="virtualSMCPresent" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="flags.vvtdEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="flags.vbsEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="bootOptions.efiSecureBootEnabled" vmw:value="false"/>
<vmw:Config ovf:required="false" vmw:key="powerOpInfo.standbyAction" vmw:value="checkpoint"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="sched.cpu.latencySensitivity" vmw:value="normal"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="tools.guest.desktop.autolock" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="nvram" vmw:value="ovf:/file/file2"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="svga.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="hpet0.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="cpuid.coresPerSocket" vmw:value="1"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="ethernet0.pciSlotNumber" vmw:value="160"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="mks.use3dRenderer" vmw:value="automatic"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="monitor.phys_bits_used" vmw:value="40"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="numa.autosize.cookie" vmw:value="20001"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="numa.autosize.vcpu.maxPerVirtualNode" vmw:value="2"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge0.pciSlotNumber" vmw:value="17"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge0.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.functions" vmw:value="8"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.pciSlotNumber" vmw:value="21"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge4.virtualDev" vmw:value="pcieRootPort"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.functions" vmw:value="8"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.pciSlotNumber" vmw:value="22"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge5.virtualDev" vmw:value="pcieRootPort"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.functions" vmw:value="8"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.pciSlotNumber" vmw:value="23"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge6.virtualDev" vmw:value="pcieRootPort"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.functions" vmw:value="8"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.pciSlotNumber" vmw:value="24"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.present" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="pciBridge7.virtualDev" vmw:value="pcieRootPort"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="softPowerOff" vmw:value="FALSE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="tools.remindInstall" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="virtualHW.productCompatibility" vmw:value="hosted"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmci0.pciSlotNumber" vmw:value="33"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmci0.unrestricted" vmw:value="FALSE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmxstats.filename" vmw:value="电信.scoreboard"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmotion.checkpointFBSize" vmw:value="4194304"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="ethernet0.generatedAddressOffset" vmw:value="0"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="hostCPUID.0" vmw:value="0000001b756e65476c65746e49656e69"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="hostCPUID.1" vmw:value="000606a6008008007ffefbffbfebfbff"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="hostCPUID.80000001" vmw:value="0000000000000000000001212c100800"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="guestCPUID.0" vmw:value="0000001b756e65476c65746e49656e69"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="guestCPUID.1" vmw:value="000606a60001080096d832030f8bfbff"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="guestCPUID.80000001" vmw:value="00000000000000000000010128100800"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="userCPUID.0" vmw:value="0000001b756e65476c65746e49656e69"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="userCPUID.1" vmw:value="000606a60001080096d832030f8bfbff"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="userCPUID.80000001" vmw:value="00000000000000000000010128100800"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="evcCompatibilityMode" vmw:value="TRUE"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="ethernet1.pciSlotNumber" vmw:value="192"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="ethernet1.generatedAddressOffset" vmw:value="10"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmware.tools.internalversion" vmw:value="0"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="vmware.tools.requiredversion" vmw:value="12384"/>
<vmw:ExtraConfig ovf:required="false" vmw:key="migrate.hostLog" vmw:value="./电信-b24b8218.hlog"/>
</VirtualHardwareSection>
<AnnotationSection ovf:required="false">
<Info>A human-readable annotation</Info>
<Annotation>User: admin
Password: admin</Annotation>
</AnnotationSection>
</VirtualSystem>
</Envelope>

BIN
templates/ros-test.nvram Normal file

Binary file not shown.