The *dch-storage-net* role configures a machine to connect the storage network and mount shared folders from the storage appliance. The `wait-global-address.sh` script and corresponding *wait-global-address@.service* systemd unit template are necessary to ensure that the storage network is actually available before attempting to mount the shared volumes. This is particularly important at boot, since `dhcpcd` does not implement any kind of signaling that can be used by *network-online.target*, so the network is considered "online" as soon as the `dhcpcd` process has started. This typically results in "network unreachable" errors.
30 lines
893 B
YAML
30 lines
893 B
YAML
- name: ensure wait-global-address script is installed
|
|
copy:
|
|
src=wait-global-address.sh
|
|
dest=/usr/local/libexec/wait-global-address.sh
|
|
mode=0755
|
|
- name: ensure wait-global-address unit is installed
|
|
copy:
|
|
src=wait-global-address.service
|
|
dest=/etc/systemd/system/wait-global-address@.service
|
|
mode=0644
|
|
notify: reload systemd
|
|
|
|
- name: ensure wait-global-address service starts at boot
|
|
service:
|
|
name=wait-global-address@{{ storage_iface }}.service
|
|
enabled=yes
|
|
- name: ensure wait-global-address service is running
|
|
service:
|
|
name=wait-global-address@{{ storage_iface }}.service
|
|
state=started
|
|
|
|
- name: ensure storage volumes are mounted
|
|
mount:
|
|
path={{ item.mountpoint }}
|
|
src={{ item.host }}:{{ item.share }}
|
|
fstype={{ item.fstype|d('nfs') }}
|
|
opts={{ item.opts|d(omit) }}
|
|
state=mounted
|
|
with_items: '{{ mount_shared_volumes }}'
|