部署阶段因CF登录失败:用法不正确

时间:2018-12-12 14:21:02

标签: login deployment ibm-cloud

我正在经历IBM Cloud Essentials类(CL0101EN)的实验2,并正在尝试部署示例应用程序nodejs-cloudant。对于交付管道,我必须创建一个API密钥,方法是单击“创建”按钮,然后单击“部署”。这里的Deploy阶段由于以下错误而失败:

正在准备开始工作... 正在准备构建工件... cf login -a“ https://api.eu-de.bluemix.net” -u apikey -p“ ****” -o“ Bolik Corp.” -s“ dev” 用法不正确:标志-p', but got option ****'

的预期参数

NAME:    登录-登录用户

用法:    cf登录名[-a API_URL] [-u用户名] [-p密码] [-o ORG] [-s空格] [--sso | --sso-passcode PASSCODE]

警告:    强烈建议不要将密码作为命令行选项提供    您的密码可能对其他人可见,并且可能会记录在您的Shell历史记录中

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

让我感到奇怪的是,它会让您创建一个API密钥,然后提供用户名和密码参数。通常,您将使用以下命令和标志来使用API​​密钥登录:

ibmcloud login --apikey <the api key>

这就是API密钥的关键-充当您的身份,这样您就不会共享或依赖用户名和密码。

在工具链中,通过单击看起来像齿轮的图标来编辑“部署”阶段(“配置阶段”)。然后选择失败的作业。在Deploy作业的脚本中,它是否执行显式登录命令?工具链应自动处理该问题,无需自己执行登录命令。就像删除部署脚本中的任何login命令一样简单。

您还可以链接到或提供有关如何创建工具链的说明吗?我对它作为部署脚本提供的内容很感兴趣。

更新:

我想我知道发生了什么事。您的cf login正在从Cloud Foundry Deployer类型自动运行。这说明了命令的来源。工具链最近发表了这样的声明:“警告:不指定API KEY而部署到Cloud Foundry已被废弃。按上面的[CONFIGURE]按钮以为此作业添加API KEY。”

我要做的是仔细检查您的API密钥。具体来说,“ API密钥”文本框应列出密钥的名称,例如“ my-toolchain-key”。如果是其他内容或空白,则表示有问题。使用ibmcloud iam api-key-create <api-key-name>命令创建一个新的API密钥。然后更新文本字段。对我来说,使用“部署到IBM Cloud”工具链示例创建API密钥时出现问题。直到我手动编辑工具链后,问题才得以解决。我已经让工具链开发人员意识到了要调查的问题。

答案 1 :(得分:0)

感谢您的回复。我只是重做了整个实验,再次创建了一个API密钥,可以自动配置Deploy阶段,现在可以正常工作了。有趣的是,在日志中,login命令的外观与我上面的问题完全相同,但是这次却成功了:

cf login -a“ https://api.eu-de.bluemix.net” -u apikey -p“ ****” -o“ Bolik Corp.” -s“ dev” API端点:https://api.eu-de.bluemix.net 正在验证... 好

我在失败的交付管道中检查了Deploy状态的配置,我以完全相同的方式使用了API密钥。因此,看来我遇到了一些内部缺陷,这些缺陷会同时纠正(或纠正)。