Как подключаться к виртуальным машинам libvirt по имени, а не по IP-адресу

ВНИМАНИЕ :этот ответ использует опцию --forceкоманды pacman. Вы должны использовать его тогда и только тогда, когда понимаете, что делаете!

  1. Экспорт списка установленных пакетов черезpip:

>>> pip freeze > packages.txt

  1. Запустите эту команду, :она повторно -загрузит и установит через pacmanпакеты, установленные из pip, которые не помечены как installedв базе данных pacman.

>>> for i in $(awk -F "==" '{print $1}' packages.txt); do sudo pacman -S --needed --force --noconfirm python-$i; done

  1. Вы можете сделать то же самое с python2, просто добавив 2после pythonи pipв приведенных выше командах.

  2. С этого момента просто используйте pacman, а не pip. Вы можете использовать pipдля обновления/отката до определенной версии пакета, если это необходимо.

При желании вы также можете использовать скриптовую версию:

#!/bin/sh
pip freeze > packages.txt
for i in $(awk -F "==" '{print $1}' packages.txt)
do
     sudo pacman -S --needed --force --noconfirm python-$i
done

Сохраните его в файл, дайте разрешение на выполнение этому файлу и запустите.

0
02.08.2020, 18:28
2 ответа
  1. Установите libvirt -nss . Для Fedora запустите dnf install libvirt-nss. (Для Debian:apt install libnss-libvirt).

  2. В /etc/nsswitch.confвы хотите, чтобы строка hosts:включала libvirt. Пример есть по ссылке выше.

  3. Теперь вы можете получить доступ к виртуальной машине по имени хоста, например. ssh debian10-vm.В этом решении вы не используете суффикс вроде .local.

0
18.03.2021, 23:15

Шаг 1 :Создайте /etc/firewalld/zones/libvirt.xmlследующим образом

<?xml version="1.0" encoding="utf-8"?>
<zone target="ACCEPT">
  <short>libvirt</short>

  <description>
    The default policy of "ACCEPT" allows all packets to/from
    interfaces in the zone to be forwarded, while the (*low priority*)
    reject rule blocks any traffic destined for the host, except those
    services explicitly listed (that list can be modified as required
    by the local admin). This zone is intended to be used only by
    libvirt virtual networks - libvirt will add the bridge devices for
    all new virtual networks to this zone by default.
  </description>

<rule priority='32767'>
  <reject/>
</rule>
<protocol value='icmp'/>
<protocol value='ipv6-icmp'/>
<service name='dhcp'/>
<service name='dhcpv6'/>
<service name='dns'/>
<!-- <service name='ssh'/> --> <!-- Wut? No thank you. -->
<service name='tftp'/>

<service name='mdns'/> <!-- Added by the local admin :). -->
</zone>

Шаг 2 :Выполнитьfirewall-cmd --reload


Существует объяснение, почему этот материал изменился в патче libvirt: «выборочно установить зону firewalld 'libvirt' ». По-видимому, это произошло, когда firewalldперешел с использования iptablesна использование nftables.

0
18.03.2021, 23:15

Теги

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