我正在使用Google Cloud CLI创建VM,并且还需要通过CLI创建防火墙规则;
我有一个bash脚本,带有一些预定义的变量,例如端口,描述等;创建虚拟机,然后为其应用防火墙规则;
要应用我使用的规则
gcloud compute firewall-rules create
但是我得到的错误是GCP文档here
中定义的参数ERROR: (gcloud.compute.firewall-rules.create) unrecognized arguments:
./1541078390.sh: line 84: --allow: command not found
./1541078390.sh: line 86: --source-ranges: command not found
./1541078390.sh: line 87: --priority: command not found
我尝试了不同但相似的方法,并且不断尝试。 我有什么想念的吗?
脚本的示例是
ports="udp:2555"
vm="client"
priority=100
description="Port 2555"
gcloud compute firewall-rules create "${ports%%:*} rule" \
--allow "${ports}" \ (line 84)
--source-tags "$vm" \
--source-ranges "0.0.0.0/0" \ (line 86)
--priority "$priority" \(line 87)
--description "$description" \
--direction INGRESS
答案 0 :(得分:1)
我认为您在使用反斜杠后可能会有空白。确保删除所有空格,然后重试。
根据您的示例,在第83、85和86行上应该有一个空格
欢呼
答案 1 :(得分:0)
我发现了为什么会这样。
在终端中手动执行命令后,它会输出详细错误,这些错误很明显是“正则表达式”验证失败的“无法识别”参数。因此,我根据错误中推荐的一种对参数语法进行了修改,并且奏效了;
TL; DR
“无法识别”的参数格式错误;