readlink не работает при удаленном вызове через ssh

Внутри своих ролей Ansible я используюcheck-update --refresh-как опцию команды dnf, но та же идея должна применяться и к yum.

yumможет не иметь опции --refresh. Вместо этого запустите yum clean expire-cache, а затем yum check-update.

Статус выхода($?)из check-updateравен 0в случае успеха, 100, если доступны обновления. Любое другое значение указывало бы на сбой. Обычно, хотя я думаю, что не всегда, это указывает на проблему чтения репозитория. Для моих целей этого достаточно. Например, если я отключаюсь от сети и запускаю эту команду прямо сейчас, она возвращает статус выхода 1.

В частности, моя роль Ansible устанавливает новый репозиторий и хочет проверить этот репозиторий. Например. чтобы проверить, работает ли репозиторий bilityи можно ли прочитать его метаданные, я использую команду вроде dnf --disablerepo="*" --enablerepo=bility --refresh check-update.

0
19.12.2019, 19:38
2 ответа

Похоже, что в вашем звонке используется слишком сложное количество кавычек. Эта линия работает:

ssh <your-options> <target-host> "sudo /bin/sh -c 'readlink -f /sbin/init'"

(Будьте осторожны, если требуется пароль, использование опции -Sдля sudo сделает ввод пароля видимым.)

3
28.01.2020, 02:17

Вам не нужно использовать sudoили bashдля запуска команды в удаленной системе.

Просто

ssh <options> <user@hostname> readlink -f /sbin/init

должно быть достаточно.

1
28.01.2020, 02:17

Теги

Похожие вопросы