如何更改 Knife SoftLayer 插件的 API 端点?
How do i change API end point for Knife SoftLayer Plugin?
默认情况下,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 日 0900 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 UTC (0300 CDT) 将不再支持 TLS 1.0 和 TLS 1.1,需要 TLS 1.2+。
这会影响到谁?
任何使用代码或服务引用 softlayer.com API 加密级别早于 TLS 1.2 的 IBM Cloud Infrastructure 服务端点的用户。
确认并测试升级到 TLS 1.2 或更高版本
增强的安全配置目前在备用端点上强制执行。您现在可以针对它们测试您的服务,以确保在主要端点收到更新的配置后不会出现中断:
• api-dev.softlayer.com(而不是 api.softlayer.com)
• api-dev.service.softlayer.com(而不是 api.service.softlayer.com)
我只能为您提供解决方法。我建议等待 knife-softlayer 开发人员的响应,他们可能会在这里提供更好的解决方案 https://github.com/softlayer/knife-softlayer/issues/56
knife-softlayer调用fog-softlayergem执行API请求,建议修改源码gem 因为无法通过 knife-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. 其次,确保您可以使用端点 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"
默认情况下,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 日 0900 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 UTC (0300 CDT) 将不再支持 TLS 1.0 和 TLS 1.1,需要 TLS 1.2+。
这会影响到谁? 任何使用代码或服务引用 softlayer.com API 加密级别早于 TLS 1.2 的 IBM Cloud Infrastructure 服务端点的用户。
确认并测试升级到 TLS 1.2 或更高版本 增强的安全配置目前在备用端点上强制执行。您现在可以针对它们测试您的服务,以确保在主要端点收到更新的配置后不会出现中断:
• api-dev.softlayer.com(而不是 api.softlayer.com) • api-dev.service.softlayer.com(而不是 api.service.softlayer.com)
我只能为您提供解决方法。我建议等待 knife-softlayer 开发人员的响应,他们可能会在这里提供更好的解决方案 https://github.com/softlayer/knife-softlayer/issues/56
knife-softlayer调用fog-softlayergem执行API请求,建议修改源码gem 因为无法通过 knife-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. 其次,确保您可以使用端点 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"