Итак, после 4 часов дополнительного веб-сканирования я наконец-то это сделал! Большое спасибо @jeroen -it -nerdbox за понимание этого:
Задача состояла в том, чтобы получить данные из smartctl (, для которого требуются учетные данные root ), с сервера с отключенным ssh -root и отключенным sudo. Это, конечно, также будет работать с sudo вместо su.
вот полный рабочий код на Python с реализацией Paramiko.
#!/usr/bin/python2
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('rootserver.domain.com', port=22, username='admin', password='adminpass')
stdin, stdout, stderr = ssh.exec_command('/bin/su root -c "smartctl -a /dev/sda > /tmp/smartctl_output"', get_pty=True)
stdin.write('rootpass\n')
stdin.flush()
print (stdout.readlines())
ssh.close()
Взгляните на проект modulemd -tools . Вы можете найти предварительно скомпилированные двоичные файлы в EPEL .
Предположим, что у вас есть несколько модульных rpm в./my-custom-repo/Packages
:
модульные имена rpm, такие как python36 -3.6.8 -2. модуль _el8 .1.0+245+c39af44f.x86 _64.rpm
Выполнить:
cd my-custom-repo
# create traditional rpm repo
createrepo_c.
# generate modules meta info
repo2module -s stable -d. modules.yaml
# adjust modules meta info to traditional rpm repo
modifyrepo_c --mdtype=modules modules.yaml repodata/
После всей этой работы вы можете найти файлы с такими именами, как xxxx -modules.yaml.gz в каталоге repodata.
Теперь репозиторий должен работать.
yum все еще работает на RHEL 8. Также есть вариант загрузки только для DNF и yum.
--только для скачивания Загрузите разрешенный набор пакетов, не выполняя RPM транзакция (установка/обновление/удаление ).
yum install httpd --только загрузка
загрузите файлы и скопируйте их в нужное место, а затем выполните
dnf localinstall packagename