如何更改Knife SoftLayer插件的API终点?

时间:2018-02-12 07:07:27

标签: ibm-cloud ibm-cloud-infrastructure knife

默认情况下,Knife SoftLayer使用API​​端点有api.softlayer.com。 :host => " api.softlayer.com"

由于API中断事件,我需要将API端点更改为api-dev.softlayer.com。

如何对Knife SoftLayer插件进行上述更改?

活动说明 主题:API中断:3月1日IBM Cloud将停止在api.softlayer.com和api.service.softlayer.com上支持TLS 1.0和1.1

发生了什么事? 2018年3月1日UTC时间(0300 CDT),IBM Cloud Infrastructure将停止支持api.softlayer.com和api.service.softlayer.com上的TLS 1.0和1.1加密。这些API端点仅支持使用TLS 1.2加密级别或更高级别的呼叫者。

什么时候会发生? 在2018年3月1日格林威治标准时间0900(0300 CDT),将不再支持TLS 1.0和TLS 1.1,并且需要TLS 1.2+。

这会影响谁? 具有代码或服务的任何用户,这些代码或服务引用了加密级别低于TLS 1.2的IBM Cloud Infrastructure服务的softlayer.com API端点。

确认并测试升级到TLS 1.2或更高版本 目前,在备用端点上强制实施增强的安全配置。您现在可以针对它们测试您的服务,以确保主端点收到更新的配置后不会中断:

•api-dev.softlayer.com(而不是api.softlayer.com) •api-dev.service.softlayer.com(而不是api.service.softlayer.com)

1 个答案:

答案 0 :(得分:1)

我只能为您提供解决方法。我建议等待来自knife-softlayer开发人员的响应,他们可能会在这里提供更好的解决方案https://github.com/softlayer/knife-softlayer/issues/56

knife-softlayer调用 fog-softlayer gem来执行API请求,因此我建议修改此gem的源代码,因为无法通过刀设置不同的端点-softlayer的配置文件。

要知道安装了fog-softlayer的位置,您可以执行以下命令:

gem list -e fog-softlayer -d

答案如下:

fog-softlayer (1.1.4)
    Author: Matt Eldridge
    Homepage: https://github.com/fog/fog-softlayer
    License: MIT
    Installed at: /var/lib/gems/2.4.0

在修改源代码之前,首先转到安装了fog-softlayer的文件夹,我的情况是 /var/lib/gems/2.4.0 < / EM> 即可。 第二,确保您可以使用端点api-dev.softlayer.com执行API REST调用。

Note: I will assume that the REST endpoint is http://api-dev.softlayer.com/rest/v3

第一选项。

打开文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer.rb 并搜索以下代码行:

SL_API_URL = ENV['SL_API_URL'] ? ENV['SL_API_URL'] : 'api.softlayer.com/rest/v3' unless defined? SL_API_URL

通过您要使用的端点进行修改,例如:

SL_API_URL = ENV['SL_API_URL'] ? ENV['SL_API_URL'] : 'api-dev.softlayer.com/rest/v3' unless defined? SL_API_URL

如果端点指向 http而不是https ,请修改文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer / slapi.rb 如下:

搜索:

@request_url = "https://#{sanitize_username(username)}:#{apikey}@#{@request_url}"

通过以下方式更改:

@request_url = "http://#{sanitize_username(username)}:#{apikey}@#{@request_url}"

第二个选项

打开文件 gems / fog-softlayer-1.1.4 / lib / fog / softlayer / slapi.rb 并搜索以下代码行:

@request_url = "https://#{sanitize_username(username)}:#{apikey}@#{@request_url}"

通过以下方式更改:

@request_url = "http://#{sanitize_username(username)}:#{apikey}@api-dev.softlayer.com/rest/v3"