我正在尝试通过Python在Virtual Guest上自动化基本监控选项,并已成功订购基本监控以及自动安装Nimsoft监视器。缺少的一步是打开机器上的端口(48000到48003),以便可以发送监控数据。
我查找了creating network rule through API,但在我的例子中,当我尝试输出firewallServiceComponent时,我没有任何输出。
In [48]: client['Virtual_Guest'].getObject(id=server_id, mask="mask[id,firewallServiceComponent[rules]]")
Out[48]: {'id': 29701179}有人能帮助理解如何为虚拟来宾设置防火墙规则吗?
谢谢!
发布于 2017-03-24 03:32:57
该示例用于在VLAN防火墙上打开端口,而不是直接在虚拟来宾上打开端口。API不能与您的虚拟来宾的操作系统级函数交互。这是您可以手动完成的操作,也可以在Post Provisioning脚本的帮助下完成。
http://knowledgelayer.softlayer.com/procedure/add-custom-provisioning-script
发布于 2017-03-24 09:02:13
firewallServiceComponent用于具有硬件防火墙的VSI或BMS服务器。您可以订购硬件防火墙,但请考虑到此选项仅适用于月度服务器。
您可以通过接口添加/编辑硬件防火墙的规则,如I need to create a softlayer network firewall rule through REST API所述
如果您已使用软件防火墙创建了虚拟来宾,则需要进入VSI并像任何其他操作系统一样编辑/添加规则。
要了解您是否有软件防火墙,可以使用以下REST调用:
https://[user_name]:[api_key]@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/29701179/getSoftwareComponents?objectFilter={"softwareComponents":{"softwareDescription":{"productItems":{"categories":{"categoryCode":{"operation":"firewall"}}}}}}如果您没有软件防火墙,您可以通过添加此选项来创建新的VSI,也可以使用reload the OS。重新加载将格式化主磁盘,并将计算实例重新配置为记录的当前规格,在此之前,我建议您备份您的操作系统。如果您不确定通过API进行重新加载,您可以通过门户页面进行。
"""
Reload OS of VSI
Important manual pages:
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Virtual_Guest
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Virtual_Guest/reloadOperatingSystem
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
"""
import SoftLayer
USERNAME = 'set-me'
API_KEY = 'set-me'
# The id of virtual guest you wish to reload the OS
guestId = 29701179
client = SoftLayer.create_client_from_env(username=USERNAME, api_key=API_KEY)
itemPrices = [
{'id': 170009}, # Ubuntu Linux 16.04 LTS Xenial Xerus Minimal Install (64 bit)
{'id': 14625}, # Monitoring Package - Basic
{'id': 411} # APF Software Firewall for Linux
]
config = {'itemPrices': itemPrices}
try:
reload = client['SoftLayer_Virtual_Guest'].reloadOperatingSystem('FORCE', config,
id=guestId)
print(reload)
except SoftLayer.SoftLayerAPIError as e:
print("Unable to get SoftLayer_Hardware object: %s, %s " % (e.faultCode,
e.faultString))(请考虑以上价格仅为示例)
我希望这对你有帮助。
致以敬意,
https://stackoverflow.com/questions/42984179
复制相似问题