Как передать несколько аргументов в соль cmd.run?

Я только что начал использовать соль вместо Ansible. Я не уверен, следует ли вызывать следующий сценарий из мастера или вручную вводить команды в солт-состояние. Для последнего может кто-нибудь предложить, как добиться этого с помощью 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 &

person Atlantic0    schedule 24.01.2017    source источник


Ответы (1)


Вы можете сохранить свой сценарий в файл и вызвать его с помощью cmd.script состояние следующим образом:

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, вам нужно будет заключить ее в двойные кавычки.

person alejdg    schedule 24.01.2017