Compare commits

...

5 Commits
i9 ... devel

@ -0,0 +1 @@
78b762c1895faa659a4f25a903778ce4a5c3d086 SOURCES/addon-context-linux-6.6.0.tar.gz

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/addon-context-linux-6.6.0.tar.gz

@ -0,0 +1,44 @@
diff --git a/generate.sh b/generate.sh
index c9e3b82..413aec2 100755
--- a/generate.sh
+++ b/generate.sh
@@ -30,11 +30,11 @@ set +e
###
if [ -z "${RELEASE}" ]; then
- if git describe --contains "$(git rev-parse HEAD)" &>/dev/null; then
+ if true; then
RELEASE=1
else
DATE=${DATE:-$(date +%Y%m%d)}
- GIT=$(git rev-parse --short HEAD)
+ GIT=
RELEASE="0.${DATE}git${GIT}"
fi
fi
@@ -85,7 +85,6 @@ fi
set -e
UNAME_PATH=$(mktemp -d)
-BUILD_DIR=$(mktemp -d)
_POSTIN=$(mktemp)
_PREUN=$(mktemp)
@@ -93,7 +92,7 @@ _POSTUN=$(mktemp)
_POSTUP=$(mktemp)
# shellcheck disable=SC2064
-trap "rm -rf ${UNAME_PATH} ${BUILD_DIR} ${_POSTIN} ${_PREUN} ${_POSTUN} ${_POSTUP}" EXIT
+trap "rm -rf ${UNAME_PATH} ${_POSTIN} ${_PREUN} ${_POSTUN} ${_POSTUP}" EXIT
while IFS= read -r -d $'\0' SRC; do
F_TAGS=${SRC##*##}
@@ -185,7 +184,7 @@ else
"${BUILD_DIR}/usr/sbin/onesysprep"
# shellcheck disable=SC2086
- fpm --name "${NAME}" --version "${VERSION}" --iteration "${RELEASE_FULL}" \
+echo 'Info: Composed fpm command is' fpm --name "${NAME}" --version "${VERSION}" --iteration "${RELEASE_FULL}" \
--architecture all --license "${LICENSE}" \
--vendor "${VENDOR}" --maintainer "${MAINTAINER}" \
--description "${DESCRIPTION}" --url "${URL}" \

@ -0,0 +1,97 @@
commit 773e74d25eacaeb123594c5144d5597fdae29cf7
Author: Eugene Zamriy <eugene@zamriy.info>
Date: Wed Apr 5 20:36:32 2023 +0300
Adds MSVSphere distribution support
diff --git a/README.md b/README.md
index ff1b5f5..5f59b3e 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,7 @@ List of tested platforms only:
| Devuan | 2 |
| Fedora | 34, 35 |
| FreeBSD | 12, 13 |
+| MSVSphere | 8, 9 |
| openSUSE | 15 |
| Oracle Linux | 7, 8 |
| Red Hat Enterprise Linux | 7, 8, 9 |
@@ -77,20 +78,20 @@ Following IPv6 configuration methods are supported via NIC attribute `IP6_METHOD
Selectable configuration types and IP configuration methods are **supported only on the following platforms**:
-| Platform | Network Type (`NETCFG_TYPE`) |
-|---------------------------------------------------------------|-------------------------------------------|
-| Alpine Linux 3.14+ | `interfaces` |
-| ALT Linux p10, Sisyphus | `networkd`, `nm` |
-| Amazon Linux 2 | `scripts` |
-| Debian 10+ | `interfaces`, `netplan`, `nm`, `networkd` |
-| Devuan 2 | `interfaces` |
-| Fedora 34+ | `scripts`, `nm`, `networkd` |
-| FreeBSD 12+ | `bsd` |
-| openSUSE 15 | `scripts` |
-| RHEL-like 7 (CentOS, Oracle Linux) | `scripts` |
-| RHEL-like 8 (CentOS, Oracle/Rocky/AlmaLinux) | `scripts`, `nm`, `networkd` |
-| RHEL-like 9 (CentOS Stream 9, Oracle/Rocky/AlmaLinux) | `nm`, `networkd` |
-| Ubuntu 18.04, 20.04, 21.10, 22.04 | `interfaces`, `netplan`, `nm`, `networkd` |
+| Platform | Network Type (`NETCFG_TYPE`) |
+|-----------------------------------------------------------------|-------------------------------------------|
+| Alpine Linux 3.14+ | `interfaces` |
+| ALT Linux p10, Sisyphus | `networkd`, `nm` |
+| Amazon Linux 2 | `scripts` |
+| Debian 10+ | `interfaces`, `netplan`, `nm`, `networkd` |
+| Devuan 2 | `interfaces` |
+| Fedora 34+ | `scripts`, `nm`, `networkd` |
+| FreeBSD 12+ | `bsd` |
+| openSUSE 15 | `scripts` |
+| RHEL-like 7 (CentOS, Oracle Linux) | `scripts` |
+| RHEL-like 8 (CentOS, Oracle/Rocky/AlmaLinux/MSVSphere) | `scripts`, `nm`, `networkd` |
+| RHEL-like 9 (CentOS Stream 9, Oracle/Rocky/AlmaLinux/MSVSphere) | `nm`, `networkd` |
+| Ubuntu 18.04, 20.04, 21.10, 22.04 | `interfaces`, `netplan`, `nm`, `networkd` |
(other than listed platforms are not supported for using `NETCFG_TYPE` nor `METHOD`/`IP6_METHOD`!):
diff --git a/src/etc/one-context.d/loc-10-network b/src/etc/one-context.d/loc-10-network
index 600102b..b37f7e5 100755
--- a/src/etc/one-context.d/loc-10-network
+++ b/src/etc/one-context.d/loc-10-network
@@ -39,7 +39,7 @@ if [ -z "${NETCFG_TYPE}" ] ; then
debian|devuan|ubuntu)
NETCFG_TYPE='interfaces netplan nm networkd'
;;
- fedora|centos|rhel|almalinux|ol|rocky)
+ fedora|centos|rhel|almalinux|ol|rocky|msvsphere)
NETCFG_TYPE='scripts nm networkd'
;;
opensuse*|sles|sled)
diff --git a/src/usr/sbin/onesysprep b/src/usr/sbin/onesysprep
index f13f66f..2a77d9b 100755
--- a/src/usr/sbin/onesysprep
+++ b/src/usr/sbin/onesysprep
@@ -513,7 +513,7 @@ syscheck()
debian|ubuntu|devuan)
return 0
;;
- fedora|centos|rhel|almalinux|ol|rocky|amzn)
+ fedora|centos|rhel|almalinux|ol|rocky|amzn|msvsphere)
return 0
;;
opensuse*|sles|sled)
@@ -553,7 +553,7 @@ enter_single_mode()
return 0
fi
;;
- debian|ubuntu|devuan|fedora|centos|rhel|almalinux|ol|rocky|altlinux|opensuse*)
+ debian|ubuntu|devuan|fedora|centos|rhel|almalinux|ol|rocky|msvsphere|altlinux|opensuse*)
_runlevel=$(runlevel | cut -d" " -f2)
case "$_runlevel" in
1|S)
@@ -589,7 +589,7 @@ enter_single_mode()
msg "Entering single user mode..."
rc single
;;
- debian|ubuntu|devuan|fedora|centos|rhel|almalinux|ol|rocky|altlinux|opensuse*)
+ debian|ubuntu|devuan|fedora|centos|rhel|almalinux|ol|rocky|msvsphere|altlinux|opensuse*)
ask_to_enter_single_user_mode
msg "Entering single user mode..."
telinit 1

@ -0,0 +1,367 @@
# Use md5 file digest method.
%define _binary_filedigest_algorithm 1
# Use gzip payload compression
%define _binary_payload w9.gzdio
Name: one-context
Version: 6.6.0
Release: 1%{?dist}.inferit
Summary: OpenNebula Contextualization Package
AutoReqProv: no
Group: System Environment/Base
License: Apache 2.0
Vendor: MSVSphere
URL: http://opennebula.org
Packager: MSVSphere <packager@msvsphere.ru>
Source: https://github.com/OpenNebula/%{name}/archive/refs/tags/addon-context-linux-%{version}.tar.gz
Patch1: addon-context-linux-msvsphere.patch
Patch2: addon-context-linux-generate.patch
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 <= 21.4
BuildArch: noarch
# Disable shebang mangling
%undefine __brp_mangle_shebangs
%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 -n addon-context-linux-%{version} -p1
%build
TARGET=el9 NAME=one-context BUILD_DIR=./out ./generate.sh
%install
cp -a out/* %{buildroot}/
%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
/etc/one-context.d/*
/etc/one-context.d/loc-10-network.d/*
/lib/udev/rules.d/*
/usr/bin/*
/usr/lib/systemd/system/*
/usr/sbin/*
%changelog
* Fri Apr 28 2023 Alexey Lyubimov <a.lyubimov@msvsphere.ru> - 6.6.0-1.inferit
- De-branded for MSVSphere
- Initial built for MSVSphere 9.1
Loading…
Cancel
Save