Montar dispositivo de bloco na inicialização usando o systemd no coreos

2

Estou montando /dev/vdb1 para /media/esdata usando a seguinte unidade systemd:

A unidade está localizada em /etc/systemd/system/media-esdata.mount :

[Unit]
Description=Mount cinder volume
Before=docker.service
[Mount]
What=/dev/vdb1
Where=/media/esdata
Options=defaults,noatime,noexec

mas isso não inicia na reinicialização. Eu não consigo ativar esta unidade:

$ sudo systemctl enable media-esdata.mount
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).

O que posso fazer para ter sempre /media/esdata disponível?

    
por xrl 31.05.2016 / 06:09

3 respostas

1

Você pode adicionar o campo [Instalar] no media-esdata.mount, systemctl enable criará o link para você:

[Unit]
Description=Mount cinder volume
Before=docker.service

[Mount]
What=/dev/vdb1
Where=/media/esdata
Options=defaults,noatime,noexec

[Install]
WantedBy=docker.service

Ao ativar a unidade de montagem, você verá a seguinte mensagem:

$ sudo systemctl enable media-esdata.mount
Created symlink /etc/systemd/system/docer.service.wants/media-esdata.mount → /etc/systemd/system/media-esdata.mount.
    
por 06.01.2017 / 01:10
0

Você precisará "ativar" esta unidade, o que significa que ela inicia na inicialização. Você pode fazer isso via cloud-config ou manualmente com sudo systemctl enable media-esdata.mount

    
por 31.05.2016 / 19:10
0

Meu trabalho foi em torno de systemctl enable docker.service e, em seguida, criar um /etc/systemd/system/docker.service.wants e criar um link simbólico para o media-esdata.mount nessa pasta. O Systemd estava disposto a iniciar docker.service na inicialização e usar a pasta quer forçar a montagem da unidade.

Agora tenho o docker em execução sem ter o SSH na caixa e execute docker (que, por padrão, é iniciado somente quando a dependência docker.socket é acionada. Além disso, recebo a unidade montada antes que qualquer contêiner possa acessar o arquivo Não é exatamente simples, mas funciona de forma confiável e não parece muito longe do caminho comum.

    
por 01.06.2016 / 20:29