2017-01-24 8 views
0

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

ответ

5

Вы можете сохранить свой скрипт в файл и вызвать его, используя cmd.script state так:

concourse_script: 
    cmd.script: 
    - name: salt://scripts/concourse.sh 

Или вы могли бы использовать то же самое состояние для вызова команды и передать ARGS:

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