正在尝试编写ansible playbook以在计算机上安装snowsql。获取以下错误:
line 1: syntax error near unexpected token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'"尝试手动运行snowsql-1.2.7-linux_x86_64.bash,但出现错误:
ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.7-linux_x86_64.bash
snowsql-1.2.7-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'
snowsql-1.2.7-linux_x86_64.bash: line 1: `<?xml version="1.0" encoding="UTF-8"?>然后意识到1.2.7是最近发布的版本。
尝试安装以前的1.2.3和1.2.5,并能够手动安装它们。但是当我尝试使用ansible安装它们时,如下所示:
name: install installer
command: bash "{{snowsql_installation_directory}}"/"{{snowsql_version}}".bash
become: yes我经常收到如下错误:-
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": ["bash", "/bin/snowsql-1.2.0-linux_x86_64.bash"], "delta": "0:00:00.003428", "end": "2020-06-30 21:15:15.085449", "msg": "non-zero return code", "rc": 2, "start": "2020-06-30 21:15:15.082021", "stderr": "/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'", "stderr_lines": ["/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'", "/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'"], "stdout": "", "stdout_lines": []}我已经注意到新的snowsql安装程序需要一个名为destination的用户输入
[ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.0-linux_x86_64.bash **********************************************************************
Installing SnowSQL, Snowflake CLI.
**********************************************************************
Specify the directory in which the SnowSQL components will be installed. [~/bin]
Do you want to add /home/ec2-user/bin to PATH in /home/ec2-user/.bash_profile? [y/N] y ansible抛出这个错误是否是因为它没有收到来自用户的任何输入?
1.2.7版本抛出了同样的错误,让我觉得这与二进制代码有关,而不是与代码有关。对snowsql来说是个新手,所以我会很感激我能得到的帮助
发布于 2020-07-01 11:26:50
ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.7-linux_x86_64.bash
snowsql-1.2.7-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'
snowsql-1.2.7-linux_x86_64.bash: line 1: `<?xml version="1.0" encoding="UTF-8"?>该错误提示第一行不能被Bash shell解释,这是有意义的,因为它报告了看似XML文档头的内容,而bash脚本文件不应该包含该文档头:
<?xml version="1.0" encoding="UTF-8"?>分辨率将取决于您下载此脚本文件的方式。如果该步骤是自动化的,请检查该步骤,以确保下载的文件完全包含您所期望的内容。您可以查看当前文件以确定它的实际内容,而不是脚本:
~> cat /bin/snowsql-1.2.7-linux_x86_64-unix.bash
<?xml version="1.0" encoding="UTF-8"?>
[ … ]如果您使用curl从Snowflake's client repository获取脚本,则在获取确切的文件时,应执行以下操作(如果您的环境需要代理设置,请确保添加一个代理设置,否则它将返回一些您不希望的内容):
# Download directly to /bin/snowsql-1.2.7-linux_x86_64.bash
# Uses the fail option to detect if something, such as a proxy, rejected or interfered with the HTTP(S) GET request
~> curl --silent --fail https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.7-linux_x86_64.bash -O /bin/snowsql-1.2.7-linux_x86_64.bash
# If download succeeds, ensure the first line is a shbang line indicating a proper script download
~> head -1 /bin/snowsql-1.2.7-linux_x86_64.bash
#!/bin/bash -ehttps://stackoverflow.com/questions/62666370
复制相似问题