blob: d067df2e93ce69779390080073bd1043b592dc88 [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# This scripts before ssh.service but after cloud-early-config
# Eject cdrom if any
eject || true
# set cache back pressure based on amount of physical memory 100 is default
physmem=$(free|awk '/^Mem:/{print $2}')
if [ $((physmem)) -lt 409600 ]; then
sed -i "/^vm.vfs_cache_pressure/ c\vm.vfs_cache_pressure = 200" /etc/sysctl.conf
else
sed -i "/^vm.vfs_cache_pressure/ c\vm.vfs_cache_pressure = 100" /etc/sysctl.conf
fi
sysctl -p
# HYPERVISOR exported by cloud-early-config
HYPERVISOR=$(</etc/cloudstack-agent_detected_hypervisor)
case $HYPERVISOR in
xen-pv|xen-domU)
systemctl stop ntpd
systemctl start xe-daemon
;;
xen-hvm)
systemctl stop ntpd
systemctl start xe-daemon
;;
kvm)
systemctl start qemu-guest-agent
VPORT=$(find /dev/virtio-ports -type l -name '*.vport' 2>/dev/null|head -1)
;;
vmware)
# system time sync'd with host via vmware tools
systemctl stop ntpd
systemctl start open-vm-tools
;;
virtualpc|hyperv)
# Hyper-V is recognized as virtualpc hypervisor type. Boot args are passed using KVP Daemon
systemctl start hyperv-daemons.hv-fcopy-daemon.service hyperv-daemons.hv-kvp-daemon.service hyperv-daemons.hv-vss-daemon.service
;;
virtualbox)
# Virtualbox is used to test the virtual router
;;
esac
# Restart journald for setting changes to apply
systemctl restart systemd-journald
TYPE=$(grep -Po 'type=\K[a-zA-Z]*' /var/cache/cloud/cmdline)
if [ "$TYPE" == "router" ] || [ "$TYPE" == "vpcrouter" ] || [ "$TYPE" == "dhcpsrvr" ]
then
if [ -x /opt/cloud/bin/update_config.py ]
then
/opt/cloud/bin/update_config.py cmd_line.json || true
fi
fi
[ ! -f /var/cache/cloud/enabled_svcs ] && touch /var/cache/cloud/enabled_svcs
for svc in $(cat /var/cache/cloud/enabled_svcs)
do
systemctl enable --now --no-block $svc
done
[ ! -f /var/cache/cloud/disabled_svcs ] && touch /var/cache/cloud/disabled_svcs
for svc in $(cat /var/cache/cloud/disabled_svcs)
do
systemctl disable --now --no-block $svc
done
# Restore the persistent iptables nat, rules and filters for IPv4 and IPv6 if they exist
ipv4="/etc/iptables/rules.v4"
if [ -e $ipv4 ]
then
iptables-restore < $ipv4
fi
ipv6="/etc/iptables/rules.v6"
if [ -e $ipv6 ]
then
ip6tables-restore < $ipv6
fi
# Enable SSH
systemctl enable --now --no-block ssh
date > /var/cache/cloud/boot_up_done