Служба systemd для установки пула хранения virsh по умолчанию
Я пытаюсь запустить скрипт при загрузке системы после автоматической установки кикстарта, скрипт просто меняет пул хранения по умолчанию для KVM. Но по какой-то причине изменения не вступают в силу, если я запускаю скрипт вручную или запускаю systemctl start pool.service
все работает нормально и пул по умолчанию установлен, но если я запустлю systemctl enable pool.service
через ks.cfg или вручную после установки и перезагрузки, ничего не меняется. Я попытался установить pool.service на несколько типов (обычный, бездействующий и т. Д.), Но, похоже, ничего не помогло.
Я работаю над CentOS 7 x64.
ks.cfg
wget http://my_server/scripts/virsh/pool.service -O /etc/systemd/system/pool.service
wget http://my_server/scripts/virsh/pool -O /usr/bin/pool
chmod 755 /usr/bin/pool
systemctl enable pool.service
файл pool.service
[Unit]
Description=Set default storage pool
[Service]
Type=idle
ExecStart=/usr/bin/pool
[Install]
WantedBy=multi-user.target
файл сценария пула
#!/bin/bash
/usr/bin/virsh pool-start default
/usr/bin/virsh pool-destroy default
/usr/bin/virsh pool-delete default
/usr/bin/virsh pool-undefine default
mkdir /srv/virtual_machines
/usr/bin/virsh pool-define-as default --type dir --target /srv/virtual_machines
/usr/bin/virsh pool-build default
/usr/bin/virsh pool-start default
/usr/bin/virsh pool-autostart default
systemctl disable pool.service
1 ответ
Не использовать Type=idle
- он был добавлен специально для приглашения к входу в систему и является почти таким же надежным, как бросок костей. Просто объявите зависимости явно. (Для кратковременного сценария Type=oneshot
правильно.)
Ваш сервис связывается с libvirtd, используя virsh
Это означает, что он может работать, только когда libvirtd уже запущен. Следовательно:
[Unit]
Requires=libvirtd.service
After=libvirtd.service
(Настройте, если ваш дистрибутив вызывает службу по-другому.)
Кроме того, самообслуживание может быть не самой лучшей идеей. Вместо этого вы можете использовать:
[Unit]
ConditionPathExists=!/srv/virtual_machines