cloud-init runcmd(使用 MAAS)
cloud-init runcmd (using MAAS)
我无法在“运行cmd:”中 运行 bash 非内联脚本。
runcmd:
- [ bash, -c, echo "=========hello world=========" >>foo1.bar ]
- [ bash, -c, echo "=========hello world=========" >>foo2.bar ]
- [ bash, -c, /usr/local/bin/foo.sh ]
前两行在已部署的 Ubuntu 实例上成功 运行。但是,foo.sh 似乎没有 运行。
这里是/usr/local/bin/foo.sh:
#!/bin/bash
echo "=========hello world=========" >>foosh.bar
foo.sh 具有 root 的可执行权限并驻留在 MAAS 服务器上。
我查看了以下内容,但它们似乎没有解决我的问题:
- run GO111MODULE=on go install . ./cmd/... in cloud init
- https://gist.github.com/aw/40623531057636dd858a9bf0f67234e8
如有任何帮助或提示,我们将不胜感激。
您 运行 使用 runcmd
的任何内容必须已经存在于文件系统中。没有自动从远程主机获取内容的规定。
您可以通过多种方式获取文件。立即想到的两个是:
您可以使用 write-files
directive:
在 cloud-init 配置中嵌入脚本
write_files:
- path: /usr/local/bin/foo.sh
permissions: '0755'
content: |
#!/bin/bash
echo "=========hello world=========" >>foosh.bar
runcmd:
- [bash, /usr/local/bin/foo.sh]
您可以使用 curl
(或类似工具)从远程位置获取脚本:
runcmd:
- [curl, -o, /usr/local/bin/foo.sh, http://somewhere.example.com/foo.sh]
- [bash, /usr/local/bin/foo.sh]
我无法在“运行cmd:”中 运行 bash 非内联脚本。
runcmd:
- [ bash, -c, echo "=========hello world=========" >>foo1.bar ]
- [ bash, -c, echo "=========hello world=========" >>foo2.bar ]
- [ bash, -c, /usr/local/bin/foo.sh ]
前两行在已部署的 Ubuntu 实例上成功 运行。但是,foo.sh 似乎没有 运行。
这里是/usr/local/bin/foo.sh:
#!/bin/bash
echo "=========hello world=========" >>foosh.bar
foo.sh 具有 root 的可执行权限并驻留在 MAAS 服务器上。
我查看了以下内容,但它们似乎没有解决我的问题:
- run GO111MODULE=on go install . ./cmd/... in cloud init
- https://gist.github.com/aw/40623531057636dd858a9bf0f67234e8
如有任何帮助或提示,我们将不胜感激。
您 运行 使用 runcmd
的任何内容必须已经存在于文件系统中。没有自动从远程主机获取内容的规定。
您可以通过多种方式获取文件。立即想到的两个是:
您可以使用
在 cloud-init 配置中嵌入脚本write-files
directive:write_files: - path: /usr/local/bin/foo.sh permissions: '0755' content: | #!/bin/bash echo "=========hello world=========" >>foosh.bar runcmd: - [bash, /usr/local/bin/foo.sh]
您可以使用
curl
(或类似工具)从远程位置获取脚本:runcmd: - [curl, -o, /usr/local/bin/foo.sh, http://somewhere.example.com/foo.sh] - [bash, /usr/local/bin/foo.sh]