Внутри своих ролей 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
.
Похоже, что в вашем звонке используется слишком сложное количество кавычек. Эта линия работает:
ssh <your-options> <target-host> "sudo /bin/sh -c 'readlink -f /sbin/init'"
(Будьте осторожны, если требуется пароль, использование опции -S
для sudo сделает ввод пароля видимым.)
Вам не нужно использовать sudo
или bash
для запуска команды в удаленной системе.
Просто
ssh <options> <user@hostname> readlink -f /sbin/init
должно быть достаточно.