Запуск команды sed из ansible - PullRequest
       13

Запуск команды sed из ansible

0 голосов
/ 28 октября 2018

Я пытаюсь обновить несколько файлов .sql и успешно с помощью sed в командной строке, но я не могу заставить его работать с ansible.

Команда выглядит примерно так:

  1. cd / tmp / Ratings_DB
  2. Запустите команду как sudo - sudo sed -i 's / TYPE / ENGINE /' * .sql
  3. Файлы создаются из учетной записи root, следовательно, sudo.

Моя цель - заменить TYPE на ENGINE, поскольку они являются более старыми .sql дампами. Если в MySQL нет способа сделать это напрямую - я не могу их импортировать.

Ошибка «Исключение произошло во время выполнения задачи. Чтобы увидеть полную трассировку, используйте -vvv. Ошибка: OSError: [Errno 2] Нет такого файла или каталога: '/ home / jesse / Desktop / playbooks / cd / tmp / Ratings_DB'

Кажется, я как-то не перенаправляю в правильный каталог.

1 Ответ

0 голосов
/ 28 октября 2018

Вам не нужно делать 'cd', вы можете напрямую обратиться к имени файла.Кроме того, лучше использовать «становиться = истина» вместо того, чтобы использовать sudo:

---
- name: pb
  hosts: localhost
  become: true
  tasks:
    - name: replace in sql files
      shell: sed -i 's/TYPE/ENGINE/' /tmp/*.sql

запустить playbook как:

$ ansible-playbook pb.yml -e "ansible_sudo_pass =1234 "

...