Рейтинг:0

ansible [Errno 2] Файл или каталог в указанном пути не существует

флаг cn

Я выполняю через ansible Tower следующий код:

 команда:
   chdir={{ __iim_install_location }}/eclipse/tools/
   "su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory {{ __was_install_location} } -log {{ __log_file }}"
 зарегистрироваться: cout
 with_items: "{{ __was_this_files }}"
 change_when: определен cout.stdout и ( cout.stdout.find( __version_check ) != -1)

Я получаю следующую ошибку. Я проверяю, и все пути существуют на удаленном хосте.

{
    "ansible_loop_var": "элемент",
    "_ansible_no_log": ложь,
    «изменено»: ложь,
    "предмет": {
        "check_sum": "866C82D13C24189E880C70AF7AE20143851330AD1C090E0DCF687B612BBC8513",
        "имя_файла": "8.5.5.16-ws-was-ifph42899.zip"
    },
    "cmd": "'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM/ WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log'",
    "_ansible_item_label": {
        "check_sum": "866C82D13C24189E880C70AF7AE20143851330AD1C090E0DCF687B612BBC8513",
        "имя_файла": "8.5.5.16-ws-was-ifph42899.zip"
    },
    "рс": 2,
    "вызов": {
        "module_args": {
            "создает": ноль,
            "исполняемый": ноль,
            "chdir": "/opt/IBM/was/InstallationManager/eclipse/tools/",
            "strip_empty_ends": правда,
            "_raw_params": "\" su - был -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM /WAS/8.5.5.16-ws-was-ifph42899.zip -Каталог_установки /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log\"",
            "удаляет": ноль,
            "аргв": ноль,
            "предупредить": правда,
            "_uses_shell": ложь,
            "stdin_add_newline": правда,
            "стандартный ввод": ноль
        }
    },
    "msg": "[Errno 2] Файл или каталог в указанном пути не существует.: b'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS- WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM/WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/ was/logs/was_nd_fix_install.20211223102239.log': b'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM/WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log'"
}
Рейтинг:0
флаг cn

Похоже, он обрабатывает вашу командную строку как файл.

Я считаю, что если вы измените свою игру на это:

команда:
  chdir: {{ __iim_install_location }}/eclipse/tools/
  cmd: "su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory {{ __was_install_location}} -log {{ __log_file }}"
зарегистрироваться: cout
with_items: "{{ __was_this_files }}"
change_when: определен cout.stdout и ( cout.stdout.find( __version_check ) != -1)

В частности, префикс команды с команда: , он должен работать?

João Pedro Alexandre avatar
флаг cn
Спасибо, я попробую.
João Pedro Alexandre avatar
флаг cn
Что-то не так с этим синтаксисом. Теперь у меня есть следующее: { "reason": "Мы не смогли прочитать ни JSON, ни YAML, это ошибки, которые мы получили от каждого: JSON: объект JSON не может быть декодирован\n\nСинтаксическая ошибка при загрузке YAML.\n значения сопоставления не разрешены в этом контексте\n\nПохоже, ошибка находится в .../project/roles/was-install-ifix/tasks/install_ifix.yml': строка 5, столбец 8, но может быть\nв другом месте файла в зависимости от точного проблема с синтаксисом.\n\nОшибочная строка:\n\n chdir={{ __iim_install_location }}/eclipse/tools/\n
João Pedro Alexandre avatar
флаг cn
cmd: \"su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory { { __was_install_location}} -log {{ __log_file }} Мы можем ошибаться, но это похоже на проблему с\nотсутствующими кавычками. Всегда заключайте в скобки выражение шаблона,\nкогда они начинают значение. Например:\n\n with_items:\n - {{ foo }}\n\nДолжен быть записан как:\n\n with_items:\n - \"{{ foo }}\"\n" }
флаг cn
Ах, заключите аргумент `chdir:` в двойные кавычки. Но не сбежавшие.
Рейтинг:0
флаг cn

Следуя всем ответам и рекомендациям, я получил следующий код:

- имя: Обновление программного обеспечения IBM WAS
  команда:
    cmd: "su - {{ __was_user }} -c '{{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory { { __was_install_location}} -log {{ __log_file }}'"
  аргументы: 
    chdir: "{{ __iim_install_location }}/eclipse/tools/"
  зарегистрироваться: cout
  with_items: "{{ __was_this_files }}"
  change_when: определен cout.stdout и ( cout.stdout.find( __version_check ) != -1)
´´´
Рейтинг:0
флаг jp

Команда передана как параметр из Су нужно цитировать.

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

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