Подтвердить что ты не робот

Ansible: Как изменить активный каталог в Ansible Playbook?

- name: Go to the folder
  command: chdir=/opt/tools/temp

Когда я запускаю свою книгу, я получаю:

TASK: [Go to the folder] ***************************** 
failed: [host] => {"failed": true, "rc": 256}
msg: no command given

Любая помощь очень ценится.

4b9b3361

Ответ 1

В Ansible нет понятия текущего каталога. Вы можете указать текущий каталог для конкретной задачи, как это было в вашем плейбуке. Единственной недостающей частью была фактическая команда для выполнения. Попробуйте следующее:

- name: Go to the folder and execute command
  command: chdir=/opt/tools/temp ls

Ответ 2

Если вам нужна консоль входа (например, для bundler), вам необходимо выполнить команду следующим образом.

command: bash -lc "cd /path/to/folder && bundle install"

Ответ 3

Этот вопрос был в результатах, когда я пытался выяснить, почему "shell" не уважал мои записи chdir, когда мне приходилось возвращаться к Ansible 1.9. Поэтому я отправлю свое решение.

У меня был

- name: task name
  shell:
    cmd: touch foobar
    creates: foobar
    chdir: /usr/lib/foobar

Он работал с Ansible > 2, но для 1.9 мне пришлось его изменить.

- name: task name
  shell: touch foobar
  args:
    creates: foobar
    chdir: /usr/lib/foobar

Просто хотел поделиться.