35 lines
1.0 KiB
Django/Jinja
35 lines
1.0 KiB
Django/Jinja
#!/usr/bin/env bash
|
|
set -ev
|
|
|
|
export CPID="$(lxc-info -Hpn {{ inventory_hostname }})"
|
|
|
|
function update_backup_resolvers {
|
|
if [[ -e "/proc/${CPID}/root/etc/resolv.conf.setup" ]]; then
|
|
mv /proc/${CPID}/root/etc/resolv.conf.setup /proc/${CPID}/root/etc/resolv.conf
|
|
elif [[ -e "/proc/${CPID}/root/etc/resolv.conf" ]]; then
|
|
cp /proc/${CPID}/root/etc/resolv.conf /proc/${CPID}/root/etc/resolv.conf.setup
|
|
fi
|
|
}
|
|
|
|
# If the setup is complete return as the process is complete
|
|
if [[ -f "/var/lib/lxc/{{ inventory_hostname }}/setup.complete" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Backup the resolvers as the setup script is not executed within an NS.
|
|
update_backup_resolvers
|
|
|
|
# Use the host resolvers
|
|
cat /etc/resolv.conf > /proc/${CPID}/root/etc/resolv.conf
|
|
|
|
# Execute
|
|
nsenter --mount=/proc/${CPID}/ns/mnt --pid=/proc/${CPID}/ns/pid \
|
|
--uts=/proc/${CPID}/ns/uts --ipc=/proc/${CPID}/ns/ipc \
|
|
-- /opt/container-setup.sh
|
|
|
|
# Restore the resolvers
|
|
update_backup_resolvers
|
|
|
|
# Mark the setup as complete
|
|
touch /var/lib/lxc/{{ inventory_hostname }}/setup.complete
|