parent
e7d8977b7d
commit
4a61d27571
@ -1,431 +0,0 @@
|
||||
# Hello packaging friend!
|
||||
#
|
||||
# If you find yourself using this 'fpm --edit' feature frequently, it is
|
||||
# a sign that fpm is missing a feature! I welcome your feature requests!
|
||||
# Please visit the following URL and ask for a feature that helps you never
|
||||
# need to edit this file again! :)
|
||||
# https://github.com/jordansissel/fpm/issues
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
# Disable the stupid stuff rpm distros include in the build process by default:
|
||||
# Disable any prep shell actions. replace them with simply 'true'
|
||||
%define __spec_prep_post true
|
||||
%define __spec_prep_pre true
|
||||
# Disable any build shell actions. replace them with simply 'true'
|
||||
%define __spec_build_post true
|
||||
%define __spec_build_pre true
|
||||
# Disable any install shell actions. replace them with simply 'true'
|
||||
%define __spec_install_post true
|
||||
%define __spec_install_pre true
|
||||
# Disable any clean shell actions. replace them with simply 'true'
|
||||
%define __spec_clean_post true
|
||||
%define __spec_clean_pre true
|
||||
# Disable checking for unpackaged files ?
|
||||
#%undefine __check_files
|
||||
|
||||
# Allow building noarch packages that contain binaries
|
||||
%define _binaries_in_noarch_packages_terminate_build 0
|
||||
|
||||
# Use md5 file digest method.
|
||||
# The first macro is the one used in RPM v4.9.1.1
|
||||
%define _binary_filedigest_algorithm 1
|
||||
# This is the macro I find on OSX when Homebrew provides rpmbuild (rpm v5.4.14)
|
||||
%define _build_binary_file_digest_algo 1
|
||||
|
||||
# Use gzip payload compression
|
||||
%define _binary_payload w9.gzdio
|
||||
|
||||
|
||||
Name: one-context
|
||||
Version: 6.6.0
|
||||
Release: 1.el9
|
||||
Summary: OpenNebula Contextualization Package
|
||||
AutoReqProv: no
|
||||
# Seems specifying BuildRoot is required on older rpmbuild (like on CentOS 5)
|
||||
# fpm passes '--define buildroot ...' on the commandline, so just reuse that.
|
||||
BuildRoot: %buildroot
|
||||
|
||||
Prefix: /
|
||||
|
||||
Group: default
|
||||
License: Apache 2.0
|
||||
Vendor: OpenNebula Systems
|
||||
URL: http://opennebula.org
|
||||
Packager: OpenNebula Systems <contact@opennebula.io>
|
||||
|
||||
Requires: util-linux
|
||||
Requires: bash
|
||||
Requires: curl
|
||||
Requires: bind-utils
|
||||
Requires: cloud-utils-growpart
|
||||
Requires: parted
|
||||
Requires: ruby
|
||||
Requires: rubygem-json
|
||||
Requires: sudo
|
||||
Requires: shadow-utils
|
||||
Requires: openssh-server
|
||||
Requires: qemu-guest-agent
|
||||
Requires: gawk
|
||||
Requires: virt-what
|
||||
Recommends:open-vm-tools
|
||||
Conflicts: cloud-init
|
||||
Conflicts: one-context-ec2
|
||||
Obsoletes: cloud-init
|
||||
%description
|
||||
.
|
||||
Contextualization tools for the virtual machine running in the OpenNebula
|
||||
cloud. Based on parameters provided by the cloud controller configures the
|
||||
networking, initial user password, SSH keys, runs custom start scripts,
|
||||
resizes the root filesystem, and provides tools to communicate with
|
||||
OneGate service.
|
||||
.
|
||||
Check the OpenNebula web page (http://opennebula.org) to get the support.
|
||||
|
||||
|
||||
%prep
|
||||
# noop
|
||||
|
||||
%build
|
||||
# noop
|
||||
|
||||
%install
|
||||
# noop
|
||||
|
||||
%clean
|
||||
# noop
|
||||
|
||||
|
||||
%post
|
||||
upgrade() {
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Reload udev rules
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
### Enable services ########################################
|
||||
|
||||
SERVICES=${SERVICES:-one-context-local one-context-online one-context}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && \
|
||||
[ -d /etc/systemd ] && \
|
||||
[ -f /usr/lib/systemd/system/one-context.service ];
|
||||
then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
|
||||
for S in ${SERVICES} ${TIMERS}; do
|
||||
systemctl enable "${S}" >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --add "${S}" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# EL6: refresh initramfs via dracut for growroot module
|
||||
if [ -f /usr/share/dracut/modules.d/50growroot/install ]; then
|
||||
for I in $(find /boot -name 'initramfs-*.img'); do
|
||||
KERNEL_VERS=$(echo "${I}" | sed -e 's/.*initramfs-\(.*\)\.img/\1/')
|
||||
dracut -f "${I}" "${KERNEL_VERS}" || :
|
||||
done
|
||||
fi
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d "${S}" enable >/dev/null 2>&1
|
||||
update-rc.d "${S}" defaults >/dev/null 2>&1
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update add "${S}" boot >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Add crontab action for 1min schedules
|
||||
if ! crontab -l -u root | grep -qF '/etc/periodic/1min'; then
|
||||
(
|
||||
crontab -l -u root
|
||||
echo -e '\n# Added by one-context'
|
||||
echo -e '* * * * * run-parts /etc/periodic/1min'
|
||||
) | crontab -u root -
|
||||
fi
|
||||
|
||||
# When existing file is changed, the new one might be created with
|
||||
# .apk-new suffix. Such files need to be processed by update-conf.
|
||||
if update-conf -al 2>/dev/null | grep -q context; then
|
||||
echo 'WARNING: Run update-conf to process any updated one-context files in /etc!' >&2
|
||||
fi
|
||||
|
||||
elif [ -x /bin/freebsd-version ]; then
|
||||
:
|
||||
|
||||
else
|
||||
echo 'WARNING: Contextualization service not enabled automatically' >&2
|
||||
fi
|
||||
|
||||
}
|
||||
_install() {
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SERVICES=${SERVICES:-one-context-local one-context-online one-context}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
rm -f /etc/udev/rules.d/70-persistent-cd.rules
|
||||
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
||||
|
||||
# Reload udev rules
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
|
||||
### Enable services ########################################
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && \
|
||||
[ -d /etc/systemd ] && \
|
||||
[ -f /usr/lib/systemd/system/one-context.service ];
|
||||
then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
|
||||
for S in ${SERVICES} ${TIMERS}; do
|
||||
systemctl enable "${S}" >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --add "${S}" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# EL6: refresh initramfs via dracut for growroot module
|
||||
if [ -f /usr/share/dracut/modules.d/50growroot/install ]; then
|
||||
for I in $(find /boot -name 'initramfs-*.img'); do
|
||||
KERNEL_VERS=$(echo "${I}" | sed -e 's/.*initramfs-\(.*\)\.img/\1/')
|
||||
dracut -f "${I}" "${KERNEL_VERS}" || :
|
||||
done
|
||||
fi
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d "${S}" enable >/dev/null 2>&1
|
||||
update-rc.d "${S}" defaults >/dev/null 2>&1
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update add "${S}" boot >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Add crontab action for 1min schedules
|
||||
if ! crontab -l -u root | grep -qF '/etc/periodic/1min'; then
|
||||
(
|
||||
crontab -l -u root
|
||||
echo -e '\n# Added by one-context'
|
||||
echo -e '* * * * * run-parts /etc/periodic/1min'
|
||||
) | crontab -u root -
|
||||
fi
|
||||
|
||||
# When existing file is changed, the new one might be created with
|
||||
# .apk-new suffix. Such files need to be processed by update-conf.
|
||||
if update-conf -al 2>/dev/null | grep -q context; then
|
||||
echo 'WARNING: Run update-conf to process any updated one-context files in /etc!' >&2
|
||||
fi
|
||||
|
||||
elif [ -x /bin/freebsd-version ]; then
|
||||
:
|
||||
|
||||
else
|
||||
echo 'WARNING: Contextualization service not enabled automatically' >&2
|
||||
fi
|
||||
|
||||
|
||||
### Cleanup network configuration ##########################
|
||||
|
||||
if [ -f /etc/sysctl.d/50-one-context.conf ]; then
|
||||
rm -f /etc/sysctl.d/50-one-context.conf
|
||||
fi
|
||||
|
||||
# Debian based distros
|
||||
if [ -d /etc/network ]; then
|
||||
# Prepare network files
|
||||
cp /etc/network/interfaces "/etc/network/interfaces.$(date '+%s')"
|
||||
rm -rf /etc/network/interfaces.d
|
||||
|
||||
cat > /etc/network/interfaces <<EOT
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
EOT
|
||||
|
||||
# Do not reconfigure network interfaces on boot
|
||||
# if [ -f /etc/default/networking ]; then
|
||||
# if ! grep -q ^CONFIGURE_INTERFACES /etc/default/networking; then
|
||||
# echo 'CONFIGURE_INTERFACES=no' >> /etc/default/networking
|
||||
# fi
|
||||
# fi
|
||||
fi
|
||||
|
||||
# Red Hat based distros
|
||||
if [ -d /etc/sysconfig/network-scripts/ ]; then
|
||||
# Prepare network files
|
||||
find /etc/sysconfig/network-scripts -type f \
|
||||
\( -name 'ifcfg-*' -o -name 'route-*' -o -name 'route6-*' \) \
|
||||
! -name 'ifcfg-lo' ! -name 'route-lo' ! -name 'route6-lo' \
|
||||
-exec rm -f {} \;
|
||||
fi
|
||||
|
||||
# openSUSE based distros
|
||||
if [ -d /etc/sysconfig/network/ ]; then
|
||||
# Prepare network files
|
||||
find /etc/sysconfig/network -type f \
|
||||
\( -name 'ifcfg-*' -o -name 'ifroute-*' -o -name 'ifsysctl-*' \) \
|
||||
! -name 'ifcfg-lo' ! -name 'ifroute-lo' ! -name 'ifsysctl-lo' \
|
||||
-exec rm -f {} \;
|
||||
|
||||
rm -f /etc/sysconfig/network/routes /etc/sysconfig/network/ifsysctl
|
||||
|
||||
sed -i '/^NETCONFIG_DNS_STATIC_SERVERS=/ s/=.*$/=""/' /etc/sysconfig/network/config
|
||||
sed -i '/^NETCONFIG_DNS_STATIC_SEARCHLIST=/ s/=.*$/=""/' /etc/sysconfig/network/config
|
||||
fi
|
||||
|
||||
# Netplan
|
||||
if [ -d /etc/netplan/ ]; then
|
||||
rm -f /etc/netplan/*
|
||||
fi
|
||||
|
||||
# NetworkManager
|
||||
if [ -d /etc/NetworkManager/system-connections/ ]; then
|
||||
rm -f /etc/NetworkManager/system-connections/*
|
||||
fi
|
||||
|
||||
# systemd-networkd
|
||||
if [ -d /etc/systemd/network/ ]; then
|
||||
rm -f \
|
||||
/etc/systemd/networkd/*.network \
|
||||
/etc/systemd/networkd/*.link
|
||||
fi
|
||||
|
||||
# FreeBSD based distros
|
||||
#TODO: pfsense paths?
|
||||
if [ -x /bin/freebsd-version ]; then
|
||||
rm -f /etc/rc.conf.d/network /etc/rc.conf.d/routing
|
||||
|
||||
if [ -f /etc/rc.conf ]; then
|
||||
sed -i '' \
|
||||
-e '/^ifconfig_/d' \
|
||||
-e '/^route_/d' \
|
||||
-e '/^static_routes/d' \
|
||||
-e '/^defaultrouter/d' \
|
||||
/etc/rc.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
if [ "${1}" -eq 1 ]
|
||||
then
|
||||
# "after install" goes here
|
||||
_install
|
||||
elif [ "${1}" -gt 1 ]
|
||||
then
|
||||
# "after upgrade" goes here
|
||||
upgrade
|
||||
fi
|
||||
%preun
|
||||
if [ "${1}" -eq 0 ]
|
||||
then
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SERVICES=${SERVICES:-one-context one-context-online one-context-local one-context-reconfigure one-context-reconfigure-delayed}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
# Disable services
|
||||
if which systemctl >/dev/null 2>&1 && [ -d /etc/systemd ]; then
|
||||
for S in ${TIMERS} ${SERVICES}; do
|
||||
systemctl --no-reload disable "${S}" >/dev/null 2>&1 || :
|
||||
systemctl stop "${S}" >/dev/null 2>&1 || :
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --del "${S}" >/dev/null 2>&1 || :
|
||||
done
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d -f "${S}" remove >/dev/null 2>&1 || :
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update del "${S}" boot >/dev/null 2>&1 || :
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
%postun
|
||||
if [ "${1}" -eq 0 ]
|
||||
then
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && [ -d /etc/systemd ]; then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
%config(noreplace) /etc/NetworkManager/conf.d/one-context.conf
|
||||
%config(noreplace) /etc/udev/rules.d/75-cd-aliases-generator.rules
|
||||
%config(noreplace) /etc/udev/rules.d/75-persistent-net-generator.rules
|
||||
|
||||
%dir /etc/one-context.d
|
||||
%dir /etc/one-context.d/loc-10-network.d
|
||||
# Reject config files already listed or parent directories, then prefix files
|
||||
# with "/", then make sure paths with spaces are quoted. I hate rpm so much.
|
||||
/etc/one-context.d/loc-04-run-dir
|
||||
/etc/one-context.d/loc-05-grow-rootfs
|
||||
/etc/one-context.d/loc-09-timezone
|
||||
/etc/one-context.d/loc-10-network
|
||||
/etc/one-context.d/loc-10-network-pci
|
||||
/etc/one-context.d/loc-10-network.d/functions
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-bsd
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-interfaces
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-netplan
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-networkd
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-nm
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-scripts
|
||||
/etc/one-context.d/loc-14-mount-swap
|
||||
/etc/one-context.d/loc-16-gen-env
|
||||
/etc/one-context.d/loc-20-set-username-password
|
||||
/etc/one-context.d/loc-22-ssh_public_key
|
||||
/etc/one-context.d/loc-30-console
|
||||
/etc/one-context.d/loc-35-securetty
|
||||
/etc/one-context.d/net-15-hostname
|
||||
/etc/one-context.d/net-97-start-script
|
||||
/etc/one-context.d/net-98-execute-scripts
|
||||
/etc/one-context.d/net-99-report-ready
|
||||
/lib/udev/rules.d/65-context.rules
|
||||
/usr/bin/onegate
|
||||
/usr/bin/onegate.rb
|
||||
/usr/lib/systemd/system/one-context-force.service
|
||||
/usr/lib/systemd/system/one-context-local.service
|
||||
/usr/lib/systemd/system/one-context-online.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure-delayed.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure.timer
|
||||
/usr/lib/systemd/system/one-context.service
|
||||
/usr/sbin/one-context-run
|
||||
/usr/sbin/one-contextd
|
||||
/usr/sbin/onesysprep
|
||||
|
||||
%changelog
|
||||
|
@ -1,422 +0,0 @@
|
||||
# Hello packaging friend!
|
||||
#
|
||||
# If you find yourself using this 'fpm --edit' feature frequently, it is
|
||||
# a sign that fpm is missing a feature! I welcome your feature requests!
|
||||
# Please visit the following URL and ask for a feature that helps you never
|
||||
# need to edit this file again! :)
|
||||
# https://github.com/jordansissel/fpm/issues
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
# Disable the stupid stuff rpm distros include in the build process by default:
|
||||
# Disable any prep shell actions. replace them with simply 'true'
|
||||
%define __spec_prep_post true
|
||||
%define __spec_prep_pre true
|
||||
# Disable any build shell actions. replace them with simply 'true'
|
||||
%define __spec_build_post true
|
||||
%define __spec_build_pre true
|
||||
# Disable any install shell actions. replace them with simply 'true'
|
||||
%define __spec_install_post true
|
||||
%define __spec_install_pre true
|
||||
# Disable any clean shell actions. replace them with simply 'true'
|
||||
%define __spec_clean_post true
|
||||
%define __spec_clean_pre true
|
||||
# Disable checking for unpackaged files ?
|
||||
#%undefine __check_files
|
||||
|
||||
# Allow building noarch packages that contain binaries
|
||||
%define _binaries_in_noarch_packages_terminate_build 0
|
||||
|
||||
# Use md5 file digest method.
|
||||
# The first macro is the one used in RPM v4.9.1.1
|
||||
%define _binary_filedigest_algorithm 1
|
||||
# This is the macro I find on OSX when Homebrew provides rpmbuild (rpm v5.4.14)
|
||||
%define _build_binary_file_digest_algo 1
|
||||
|
||||
# Use gzip payload compression
|
||||
%define _binary_payload w9.gzdio
|
||||
|
||||
|
||||
Name: one-context
|
||||
Version: 6.6.0
|
||||
Release: 0%{?dist}.inferit
|
||||
Summary: OpenNebula Contextualization Package
|
||||
Group: default
|
||||
License: Apache 2.0
|
||||
Vendor: OpenNebula Systems
|
||||
URL: http://opennebula.org
|
||||
Packager: OpenNebula Systems <contact@opennebula.io>
|
||||
|
||||
Requires: util-linux
|
||||
Requires: bash
|
||||
Requires: curl
|
||||
Requires: bind-utils
|
||||
Requires: cloud-utils-growpart
|
||||
Requires: parted
|
||||
Requires: ruby
|
||||
Requires: rubygem-json
|
||||
Requires: sudo
|
||||
Requires: shadow-utils
|
||||
Requires: openssh-server
|
||||
Requires: qemu-guest-agent
|
||||
Requires: gawk
|
||||
Requires: virt-what
|
||||
Recommends:open-vm-tools
|
||||
Conflicts: cloud-init
|
||||
Conflicts: one-context-ec2
|
||||
Obsoletes: cloud-init
|
||||
|
||||
%description
|
||||
Contextualization tools for the virtual machine running in the OpenNebula
|
||||
cloud. Based on parameters provided by the cloud controller configures the
|
||||
networking, initial user password, SSH keys, runs custom start scripts,
|
||||
resizes the root filesystem, and provides tools to communicate with
|
||||
OneGate service.
|
||||
Check the OpenNebula web page (http://opennebula.org) to get the support.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -v
|
||||
|
||||
%build
|
||||
# noop
|
||||
|
||||
%install
|
||||
# noop
|
||||
|
||||
%clean
|
||||
# noop
|
||||
|
||||
|
||||
%post
|
||||
upgrade() {
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Reload udev rules
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
### Enable services ########################################
|
||||
|
||||
SERVICES=${SERVICES:-one-context-local one-context-online one-context}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && \
|
||||
[ -d /etc/systemd ] && \
|
||||
[ -f /usr/lib/systemd/system/one-context.service ];
|
||||
then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
|
||||
for S in ${SERVICES} ${TIMERS}; do
|
||||
systemctl enable "${S}" >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --add "${S}" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# EL6: refresh initramfs via dracut for growroot module
|
||||
if [ -f /usr/share/dracut/modules.d/50growroot/install ]; then
|
||||
for I in $(find /boot -name 'initramfs-*.img'); do
|
||||
KERNEL_VERS=$(echo "${I}" | sed -e 's/.*initramfs-\(.*\)\.img/\1/')
|
||||
dracut -f "${I}" "${KERNEL_VERS}" || :
|
||||
done
|
||||
fi
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d "${S}" enable >/dev/null 2>&1
|
||||
update-rc.d "${S}" defaults >/dev/null 2>&1
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update add "${S}" boot >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Add crontab action for 1min schedules
|
||||
if ! crontab -l -u root | grep -qF '/etc/periodic/1min'; then
|
||||
(
|
||||
crontab -l -u root
|
||||
echo -e '\n# Added by one-context'
|
||||
echo -e '* * * * * run-parts /etc/periodic/1min'
|
||||
) | crontab -u root -
|
||||
fi
|
||||
|
||||
# When existing file is changed, the new one might be created with
|
||||
# .apk-new suffix. Such files need to be processed by update-conf.
|
||||
if update-conf -al 2>/dev/null | grep -q context; then
|
||||
echo 'WARNING: Run update-conf to process any updated one-context files in /etc!' >&2
|
||||
fi
|
||||
|
||||
elif [ -x /bin/freebsd-version ]; then
|
||||
:
|
||||
|
||||
else
|
||||
echo 'WARNING: Contextualization service not enabled automatically' >&2
|
||||
fi
|
||||
|
||||
}
|
||||
_install() {
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SERVICES=${SERVICES:-one-context-local one-context-online one-context}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
rm -f /etc/udev/rules.d/70-persistent-cd.rules
|
||||
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
||||
|
||||
# Reload udev rules
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
|
||||
### Enable services ########################################
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && \
|
||||
[ -d /etc/systemd ] && \
|
||||
[ -f /usr/lib/systemd/system/one-context.service ];
|
||||
then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
|
||||
for S in ${SERVICES} ${TIMERS}; do
|
||||
systemctl enable "${S}" >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --add "${S}" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# EL6: refresh initramfs via dracut for growroot module
|
||||
if [ -f /usr/share/dracut/modules.d/50growroot/install ]; then
|
||||
for I in $(find /boot -name 'initramfs-*.img'); do
|
||||
KERNEL_VERS=$(echo "${I}" | sed -e 's/.*initramfs-\(.*\)\.img/\1/')
|
||||
dracut -f "${I}" "${KERNEL_VERS}" || :
|
||||
done
|
||||
fi
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d "${S}" enable >/dev/null 2>&1
|
||||
update-rc.d "${S}" defaults >/dev/null 2>&1
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update add "${S}" boot >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Add crontab action for 1min schedules
|
||||
if ! crontab -l -u root | grep -qF '/etc/periodic/1min'; then
|
||||
(
|
||||
crontab -l -u root
|
||||
echo -e '\n# Added by one-context'
|
||||
echo -e '* * * * * run-parts /etc/periodic/1min'
|
||||
) | crontab -u root -
|
||||
fi
|
||||
|
||||
# When existing file is changed, the new one might be created with
|
||||
# .apk-new suffix. Such files need to be processed by update-conf.
|
||||
if update-conf -al 2>/dev/null | grep -q context; then
|
||||
echo 'WARNING: Run update-conf to process any updated one-context files in /etc!' >&2
|
||||
fi
|
||||
|
||||
elif [ -x /bin/freebsd-version ]; then
|
||||
:
|
||||
|
||||
else
|
||||
echo 'WARNING: Contextualization service not enabled automatically' >&2
|
||||
fi
|
||||
|
||||
|
||||
### Cleanup network configuration ##########################
|
||||
|
||||
if [ -f /etc/sysctl.d/50-one-context.conf ]; then
|
||||
rm -f /etc/sysctl.d/50-one-context.conf
|
||||
fi
|
||||
|
||||
# Debian based distros
|
||||
if [ -d /etc/network ]; then
|
||||
# Prepare network files
|
||||
cp /etc/network/interfaces "/etc/network/interfaces.$(date '+%s')"
|
||||
rm -rf /etc/network/interfaces.d
|
||||
|
||||
cat > /etc/network/interfaces <<EOT
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
EOT
|
||||
|
||||
# Do not reconfigure network interfaces on boot
|
||||
# if [ -f /etc/default/networking ]; then
|
||||
# if ! grep -q ^CONFIGURE_INTERFACES /etc/default/networking; then
|
||||
# echo 'CONFIGURE_INTERFACES=no' >> /etc/default/networking
|
||||
# fi
|
||||
# fi
|
||||
fi
|
||||
|
||||
# Red Hat based distros
|
||||
if [ -d /etc/sysconfig/network-scripts/ ]; then
|
||||
# Prepare network files
|
||||
find /etc/sysconfig/network-scripts -type f \
|
||||
\( -name 'ifcfg-*' -o -name 'route-*' -o -name 'route6-*' \) \
|
||||
! -name 'ifcfg-lo' ! -name 'route-lo' ! -name 'route6-lo' \
|
||||
-exec rm -f {} \;
|
||||
fi
|
||||
|
||||
# openSUSE based distros
|
||||
if [ -d /etc/sysconfig/network/ ]; then
|
||||
# Prepare network files
|
||||
find /etc/sysconfig/network -type f \
|
||||
\( -name 'ifcfg-*' -o -name 'ifroute-*' -o -name 'ifsysctl-*' \) \
|
||||
! -name 'ifcfg-lo' ! -name 'ifroute-lo' ! -name 'ifsysctl-lo' \
|
||||
-exec rm -f {} \;
|
||||
|
||||
rm -f /etc/sysconfig/network/routes /etc/sysconfig/network/ifsysctl
|
||||
|
||||
sed -i '/^NETCONFIG_DNS_STATIC_SERVERS=/ s/=.*$/=""/' /etc/sysconfig/network/config
|
||||
sed -i '/^NETCONFIG_DNS_STATIC_SEARCHLIST=/ s/=.*$/=""/' /etc/sysconfig/network/config
|
||||
fi
|
||||
|
||||
# Netplan
|
||||
if [ -d /etc/netplan/ ]; then
|
||||
rm -f /etc/netplan/*
|
||||
fi
|
||||
|
||||
# NetworkManager
|
||||
if [ -d /etc/NetworkManager/system-connections/ ]; then
|
||||
rm -f /etc/NetworkManager/system-connections/*
|
||||
fi
|
||||
|
||||
# systemd-networkd
|
||||
if [ -d /etc/systemd/network/ ]; then
|
||||
rm -f \
|
||||
/etc/systemd/networkd/*.network \
|
||||
/etc/systemd/networkd/*.link
|
||||
fi
|
||||
|
||||
# FreeBSD based distros
|
||||
#TODO: pfsense paths?
|
||||
if [ -x /bin/freebsd-version ]; then
|
||||
rm -f /etc/rc.conf.d/network /etc/rc.conf.d/routing
|
||||
|
||||
if [ -f /etc/rc.conf ]; then
|
||||
sed -i '' \
|
||||
-e '/^ifconfig_/d' \
|
||||
-e '/^route_/d' \
|
||||
-e '/^static_routes/d' \
|
||||
-e '/^defaultrouter/d' \
|
||||
/etc/rc.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
if [ "${1}" -eq 1 ]
|
||||
then
|
||||
# "after install" goes here
|
||||
_install
|
||||
elif [ "${1}" -gt 1 ]
|
||||
then
|
||||
# "after upgrade" goes here
|
||||
upgrade
|
||||
fi
|
||||
%preun
|
||||
if [ "${1}" -eq 0 ]
|
||||
then
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SERVICES=${SERVICES:-one-context one-context-online one-context-local one-context-reconfigure one-context-reconfigure-delayed}
|
||||
TIMERS=${TIMERS:-one-context-reconfigure.timer}
|
||||
|
||||
# Disable services
|
||||
if which systemctl >/dev/null 2>&1 && [ -d /etc/systemd ]; then
|
||||
for S in ${TIMERS} ${SERVICES}; do
|
||||
systemctl --no-reload disable "${S}" >/dev/null 2>&1 || :
|
||||
systemctl stop "${S}" >/dev/null 2>&1 || :
|
||||
done
|
||||
fi
|
||||
|
||||
if which chkconfig >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
chkconfig --del "${S}" >/dev/null 2>&1 || :
|
||||
done
|
||||
|
||||
elif which update-rc.d >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
update-rc.d -f "${S}" remove >/dev/null 2>&1 || :
|
||||
done
|
||||
|
||||
elif which rc-update >/dev/null 2>&1; then
|
||||
for S in ${SERVICES}; do
|
||||
rc-update del "${S}" boot >/dev/null 2>&1 || :
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
%postun
|
||||
if [ "${1}" -eq 0 ]
|
||||
then
|
||||
:
|
||||
#!/usr/bin/env bash
|
||||
|
||||
udevadm control --reload >/dev/null 2>&1 || :
|
||||
|
||||
if which systemctl >/dev/null 2>&1 && [ -d /etc/systemd ]; then
|
||||
systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
%config(noreplace) /etc/NetworkManager/conf.d/one-context.conf
|
||||
%config(noreplace) /etc/udev/rules.d/75-cd-aliases-generator.rules
|
||||
%config(noreplace) /etc/udev/rules.d/75-persistent-net-generator.rules
|
||||
|
||||
%dir /etc/one-context.d
|
||||
%dir /etc/one-context.d/loc-10-network.d
|
||||
# Reject config files already listed or parent directories, then prefix files
|
||||
# with "/", then make sure paths with spaces are quoted. I hate rpm so much.
|
||||
/etc/one-context.d/loc-04-run-dir
|
||||
/etc/one-context.d/loc-05-grow-rootfs
|
||||
/etc/one-context.d/loc-09-timezone
|
||||
/etc/one-context.d/loc-10-network
|
||||
/etc/one-context.d/loc-10-network-pci
|
||||
/etc/one-context.d/loc-10-network.d/functions
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-bsd
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-interfaces
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-netplan
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-networkd
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-nm
|
||||
/etc/one-context.d/loc-10-network.d/netcfg-scripts
|
||||
/etc/one-context.d/loc-14-mount-swap
|
||||
/etc/one-context.d/loc-16-gen-env
|
||||
/etc/one-context.d/loc-20-set-username-password
|
||||
/etc/one-context.d/loc-22-ssh_public_key
|
||||
/etc/one-context.d/loc-30-console
|
||||
/etc/one-context.d/loc-35-securetty
|
||||
/etc/one-context.d/net-15-hostname
|
||||
/etc/one-context.d/net-97-start-script
|
||||
/etc/one-context.d/net-98-execute-scripts
|
||||
/etc/one-context.d/net-99-report-ready
|
||||
/lib/udev/rules.d/65-context.rules
|
||||
/usr/bin/onegate
|
||||
/usr/bin/onegate.rb
|
||||
/usr/lib/systemd/system/one-context-force.service
|
||||
/usr/lib/systemd/system/one-context-local.service
|
||||
/usr/lib/systemd/system/one-context-online.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure-delayed.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure.service
|
||||
/usr/lib/systemd/system/one-context-reconfigure.timer
|
||||
/usr/lib/systemd/system/one-context.service
|
||||
/usr/sbin/one-context-run
|
||||
/usr/sbin/one-contextd
|
||||
/usr/sbin/onesysprep
|
||||
|
||||
%changelog
|
Loading…
Reference in new issue