如何将多个参数传递给 salt cmd.run?
How to pass multiple arguments into salt cmd.run?
我刚开始使用 Salt 而不是 Ansible。我不确定是从 master 调用以下脚本还是手动将命令输入盐状态。对于后者,任何人都可以建议如何使用 cmd.run
来实现这一点。
#!/bin/bash
. /lib/lsb/init-functions
cd /opt/concourse/bin/
./concourse worker \
--name ci_worker01 \
--bind-ip 0.0.0.0 \
--bind-port 7777 \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-port 2222 \
--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub \
--tsa-worker-private-key /opt/concourse/.ssh/id_worker_rsa &>/var/log/concourse/concourse_worker.log &
您可以将脚本保存到一个文件中,然后使用 cmd.script
state 调用它,如下所示:
concourse_script:
cmd.script:
- name: salt://scripts/concourse.sh
或者您可以使用相同的状态 调用命令并传递参数:
concourse_cmd:
cmd.script:
- name: ./concourse worker
- cwd: /opt/concourse/bin/
- args: "'--name ci_worker01' '--bind-ip 0.0.0.0' '--bind-port 7777' '--work-dir /opt/concourse/worker' '--tsa-host 127.0.0.1' '--tsa-port 2222' '--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub' '--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub'"
请注意,要在 YAML 中传递包含空格的字符串,您需要 doubly-quote 它。
我刚开始使用 Salt 而不是 Ansible。我不确定是从 master 调用以下脚本还是手动将命令输入盐状态。对于后者,任何人都可以建议如何使用 cmd.run
来实现这一点。
#!/bin/bash
. /lib/lsb/init-functions
cd /opt/concourse/bin/
./concourse worker \
--name ci_worker01 \
--bind-ip 0.0.0.0 \
--bind-port 7777 \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-port 2222 \
--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub \
--tsa-worker-private-key /opt/concourse/.ssh/id_worker_rsa &>/var/log/concourse/concourse_worker.log &
您可以将脚本保存到一个文件中,然后使用 cmd.script
state 调用它,如下所示:
concourse_script:
cmd.script:
- name: salt://scripts/concourse.sh
或者您可以使用相同的状态 调用命令并传递参数:
concourse_cmd:
cmd.script:
- name: ./concourse worker
- cwd: /opt/concourse/bin/
- args: "'--name ci_worker01' '--bind-ip 0.0.0.0' '--bind-port 7777' '--work-dir /opt/concourse/worker' '--tsa-host 127.0.0.1' '--tsa-port 2222' '--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub' '--tsa-public-key /opt/concourse/.ssh/id_web_rsa.pub'"
请注意,要在 YAML 中传递包含空格的字符串,您需要 doubly-quote 它。