Рейтинг:0

Не удается выполнить инструкцию sqlite с командным модулем Ansible — [Errno 2] Нет такого файла или каталога: b'sqlite3'"

флаг jp

Я пытаюсь запустить простой запрос на многих серверах. Я знаю на 100%, что рассматриваемый файл и каталог существуют.

Я могу выполнять простые команды, например лс, pwd, кто яи т. д., и я могу запустить sqlite команду на самом удаленном хосте.

Задание по пьесе:

- имя: сделать тестовый оператор SELECT
  стать: да
  стать_пользователем: корень
  команда: sqlite3 /usr/local/share/sqlite/dbfile.sqlite3 "SELECT * FROM db WHERE hostname="{{ db_server_prompt }}""
  зарегистрироваться: запрос_результат

- отладка: var=query_result.stdout_lines

Ошибка, которую я получаю, "msg": "[Errno 2] Нет такого файла или каталога: b'sqlite3'",.

Что-то не так с моим синтаксисом? Почему он говорит мне, что "Данный файл или каталог отсутствует" при использовании команды sqlite3? Я пробовал абсолютный путь к исполняемому файлу (/USR/бен/sqlite3), но я получаю ту же ошибку.

Обновлять я пытался использовать чдир в качестве аргумента этот ответ, но я получаю Невозможно изменить каталог перед выполнением. Я также пробовал абсолютный путь к sqlite с /USR/бен/sqlite3. Ни одна из этих вещей не работает.

Рейтинг:0
флаг ca

Вы можете заглянуть в В чем разница между ansible сырой, ракушка и команда? и попробуйте следующее

- имя: сделать тестовый оператор SELECT
  стать: да
  стать_пользователем: корень
  ракушка:
    cmd: /usr/bin/sqlite3 /usr/local/share/sqlite/dbfile.sqlite3 "SELECT * FROM db WHERE hostname={{ db_server_prompt}}"
  зарегистрироваться: запрос_результат

- имя: Показать результат запроса
  отлаживать: 
    переменная: query_result.stdout_lines
DevOpsSauce avatar
флаг jp
Я бы никогда не подумал поставить `cmd` с модулем `shell`. После добавления двойных кавычек вокруг SELECT и одинарных кавычек вокруг переменной db_server_prompt все заработало! Я приму ваш ответ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.