mirror of
https://github.com/bin456789/reinstall.git
synced 2025-06-08 21:39:58 +00:00
core: 删除 cloud-init
This commit is contained in:
parent
aff970c4bc
commit
f8ca315d71
77
trans.sh
77
trans.sh
@ -2978,22 +2978,44 @@ chroot_systemctl_disable() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_cloud_init() {
|
remove_cloud_init() {
|
||||||
os_dir=$1
|
os_dir=$1
|
||||||
info "Disable Cloud-Init"
|
|
||||||
|
|
||||||
# 两种方法都可以
|
if ! is_have_cmd_on_disk $os_dir cloud-init; then
|
||||||
|
return
|
||||||
if [ -d $os_dir/etc/cloud ]; then
|
|
||||||
touch $os_dir/etc/cloud/cloud-init.disabled
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
info "Remove Cloud-Init"
|
||||||
|
|
||||||
|
# 两种方法都可以
|
||||||
|
if false && [ -d $os_dir/etc/cloud ]; then
|
||||||
|
touch $os_dir/etc/cloud/cloud-init.disabled
|
||||||
|
fi
|
||||||
for name in cloud-init-local cloud-init cloud-config cloud-final; do
|
for name in cloud-init-local cloud-init cloud-config cloud-final; do
|
||||||
for type in service socket; do
|
for type in service socket; do
|
||||||
# 服务不存在时会报错
|
# 服务不存在时会报错
|
||||||
chroot $os_dir systemctl disable "$name.$type" 2>/dev/null || true
|
chroot $os_dir systemctl disable "$name.$type" 2>/dev/null || true
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for pkg_mgr in dnf yum zypper apt-get; do
|
||||||
|
if is_have_cmd_on_disk $os_dir $pkg_mgr; then
|
||||||
|
case $pkg_mgr in
|
||||||
|
dnf | yum)
|
||||||
|
chroot $os_dir $pkg_mgr remove -y cloud-init
|
||||||
|
;;
|
||||||
|
zypper)
|
||||||
|
# 加上 -u 才会删除依赖
|
||||||
|
chroot $os_dir zypper remove -y -u cloud-init
|
||||||
|
;;
|
||||||
|
apt-get)
|
||||||
|
chroot_apt_remove $os_dir cloud-init
|
||||||
|
chroot_apt_autoremove $os_dir
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_jeos_firstboot() {
|
disable_jeos_firstboot() {
|
||||||
@ -3080,18 +3102,21 @@ EOF
|
|||||||
# 1. 禁用 selinux kdump
|
# 1. 禁用 selinux kdump
|
||||||
# 2. 添加微码+固件
|
# 2. 添加微码+固件
|
||||||
if [ -f $os_dir/etc/redhat-release ]; then
|
if [ -f $os_dir/etc/redhat-release ]; then
|
||||||
|
# 防止删除 cloud-init / 安装 firmware 时不够内存
|
||||||
|
create_swap_if_ram_less_than 2048 $os_dir/swapfile
|
||||||
|
|
||||||
find_and_mount /boot
|
find_and_mount /boot
|
||||||
find_and_mount /boot/efi
|
find_and_mount /boot/efi
|
||||||
mount_pseudo_fs $os_dir
|
mount_pseudo_fs $os_dir
|
||||||
cp_resolv_conf $os_dir
|
cp_resolv_conf $os_dir
|
||||||
|
|
||||||
disable_cloud_init $os_dir
|
|
||||||
|
|
||||||
# 可以直接用 alpine 的 cloud-init 生成 Network Manager 配置
|
# 可以直接用 alpine 的 cloud-init 生成 Network Manager 配置
|
||||||
create_cloud_init_network_config /net.cfg
|
create_cloud_init_network_config /net.cfg
|
||||||
create_network_manager_config /net.cfg "$os_dir"
|
create_network_manager_config /net.cfg "$os_dir"
|
||||||
rm /net.cfg
|
rm /net.cfg
|
||||||
|
|
||||||
|
remove_cloud_init $os_dir
|
||||||
|
|
||||||
disable_selinux_kdump $os_dir
|
disable_selinux_kdump $os_dir
|
||||||
|
|
||||||
if fw_pkgs=$(get_ucode_firmware_pkgs) && [ -n "$fw_pkgs" ]; then
|
if fw_pkgs=$(get_ucode_firmware_pkgs) && [ -n "$fw_pkgs" ]; then
|
||||||
@ -3116,7 +3141,7 @@ EOF
|
|||||||
find_and_mount /boot
|
find_and_mount /boot
|
||||||
find_and_mount /boot/efi
|
find_and_mount /boot/efi
|
||||||
|
|
||||||
disable_cloud_init $os_dir
|
remove_cloud_init $os_dir
|
||||||
|
|
||||||
# 获取当前开启的 Components, 后面要用
|
# 获取当前开启的 Components, 后面要用
|
||||||
if [ -f $os_dir/etc/apt/sources.list.d/debian.sources ]; then
|
if [ -f $os_dir/etc/apt/sources.list.d/debian.sources ]; then
|
||||||
@ -3282,7 +3307,6 @@ EOF
|
|||||||
find_and_mount /boot
|
find_and_mount /boot
|
||||||
find_and_mount /boot/efi
|
find_and_mount /boot/efi
|
||||||
|
|
||||||
disable_cloud_init $os_dir
|
|
||||||
disable_jeos_firstboot $os_dir
|
disable_jeos_firstboot $os_dir
|
||||||
|
|
||||||
# opensuse leap
|
# opensuse leap
|
||||||
@ -3340,7 +3364,7 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 不能同时装 kernel-default-base 和 kernel-default
|
# 不能同时装 kernel-default-base 和 kernel-default
|
||||||
chroot $os_dir zypper remove -y kernel-default-base
|
chroot $os_dir zypper remove -y -u kernel-default-base
|
||||||
|
|
||||||
# 固件+微码
|
# 固件+微码
|
||||||
if fw_pkgs=$(get_ucode_firmware_pkgs) && [ -n "$fw_pkgs" ]; then
|
if fw_pkgs=$(get_ucode_firmware_pkgs) && [ -n "$fw_pkgs" ]; then
|
||||||
@ -3367,11 +3391,11 @@ EOF
|
|||||||
chroot $os_dir zypper install -y $kernel
|
chroot $os_dir zypper install -y $kernel
|
||||||
fi
|
fi
|
||||||
|
|
||||||
restore_resolv_conf $os_dir
|
# 最后才删除 cloud-init
|
||||||
|
# 因为生成 sysconfig 网络配置要用目标系统的 cloud-init
|
||||||
|
remove_cloud_init $os_dir
|
||||||
|
|
||||||
# 删除 swap
|
restore_resolv_conf $os_dir
|
||||||
swapoff -a
|
|
||||||
rm -f $os_dir/swapfile
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# arch 云镜像
|
# arch 云镜像
|
||||||
@ -3439,6 +3463,10 @@ EOF
|
|||||||
if [ -f "$ci_file" ]; then
|
if [ -f "$ci_file" ]; then
|
||||||
cat -n "$ci_file"
|
cat -n "$ci_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 删除 swap
|
||||||
|
swapoff -a
|
||||||
|
rm -f $os_dir/swapfile
|
||||||
}
|
}
|
||||||
|
|
||||||
modify_os_on_disk() {
|
modify_os_on_disk() {
|
||||||
@ -3516,6 +3544,10 @@ create_swap() {
|
|||||||
swapfile=$2
|
swapfile=$2
|
||||||
|
|
||||||
if ! grep $swapfile /proc/swaps; then
|
if ! grep $swapfile /proc/swaps; then
|
||||||
|
# 用兼容 btrfs 的方式创建 swapfile
|
||||||
|
truncate -s 0 $swapfile
|
||||||
|
# 如果分区不支持 chattr +C 会显示错误但返回值是 0
|
||||||
|
chattr +C $swapfile 2>/dev/null
|
||||||
fallocate -l ${swapsize}M $swapfile
|
fallocate -l ${swapsize}M $swapfile
|
||||||
chmod 0600 $swapfile
|
chmod 0600 $swapfile
|
||||||
mkswap $swapfile
|
mkswap $swapfile
|
||||||
@ -4211,13 +4243,13 @@ EOF
|
|||||||
# 清理
|
# 清理
|
||||||
rm -rf $os_dir/net.cfg $os_dir/out
|
rm -rf $os_dir/net.cfg $os_dir/out
|
||||||
|
|
||||||
|
# 删除 # Created by cloud-init on instance boot automatically, do not edit.
|
||||||
# 修正网络配置问题并显示文件
|
# 修正网络配置问题并显示文件
|
||||||
sed -i '/^IPV[46]_FAILURE_FATAL=/d' $os_dir/etc/sysconfig/network-scripts/ifcfg-*
|
sed -i -e '/^IPV[46]_FAILURE_FATAL=/d' -e '/^#/d' $os_dir/etc/sysconfig/network-scripts/ifcfg-*
|
||||||
for file in "$os_dir/etc/sysconfig/network-scripts/ifcfg-"*; do
|
for file in "$os_dir/etc/sysconfig/network-scripts/ifcfg-"*; do
|
||||||
if grep -q '^DHCPV6C=yes' "$file"; then
|
if grep -q '^DHCPV6C=yes' "$file"; then
|
||||||
sed -i '/^IPV6_AUTOCONF=no/d' "$file"
|
sed -i '/^IPV6_AUTOCONF=no/d' "$file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat -n "$file"
|
cat -n "$file"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
@ -4307,6 +4339,9 @@ EOF
|
|||||||
# 网络配置
|
# 网络配置
|
||||||
# 18.04+ netplan
|
# 18.04+ netplan
|
||||||
if is_have_cmd_on_disk $os_dir netplan; then
|
if is_have_cmd_on_disk $os_dir netplan; then
|
||||||
|
# 避免删除 cloud-init 后,minimal 镜像的 netplan.io 被 autoremove
|
||||||
|
chroot $os_dir apt-mark manual netplan.io
|
||||||
|
|
||||||
# 生成 cloud-init 网络配置
|
# 生成 cloud-init 网络配置
|
||||||
create_cloud_init_network_config $os_dir/net.cfg
|
create_cloud_init_network_config $os_dir/net.cfg
|
||||||
|
|
||||||
@ -4331,6 +4366,9 @@ EOF
|
|||||||
rm -rf $os_dir/net.cfg
|
rm -rf $os_dir/net.cfg
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
# 避免删除 cloud-init 后 ifupdown 被 autoremove
|
||||||
|
chroot $os_dir apt-mark manual ifupdown
|
||||||
|
|
||||||
# 16.04 镜像用 ifupdown/networking 管理网络
|
# 16.04 镜像用 ifupdown/networking 管理网络
|
||||||
# 要安装 resolveconf,不然 /etc/resolv.conf 为空
|
# 要安装 resolveconf,不然 /etc/resolv.conf 为空
|
||||||
chroot_apt_install $os_dir resolvconf
|
chroot_apt_install $os_dir resolvconf
|
||||||
@ -4581,9 +4619,12 @@ EOF
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# 基本配置
|
# 基本配置
|
||||||
disable_cloud_init /os
|
|
||||||
basic_init /os
|
basic_init /os
|
||||||
|
|
||||||
|
# 最后才删除 cloud-init
|
||||||
|
# 因为生成 netplan/sysconfig 网络配置要用目标系统的 cloud-init
|
||||||
|
remove_cloud_init /os
|
||||||
|
|
||||||
# 删除 swapfile
|
# 删除 swapfile
|
||||||
swapoff -a
|
swapoff -a
|
||||||
rm -f /os/swapfile
|
rm -f /os/swapfile
|
||||||
|
Loading…
x
Reference in New Issue
Block a user