mirror of https://github.com/apache/cloudstack.git
108 lines
3.0 KiB
Bash
Executable File
108 lines
3.0 KiB
Bash
Executable File
#!/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
|
|
|
|
case $HYPERVISOR in
|
|
xen-pv|xen-domU)
|
|
systemctl stop ntpd
|
|
systemctl start xe-daemon xenstored
|
|
;;
|
|
xen-hvm)
|
|
systemctl stop ntpd
|
|
systemctl start xe-daemon xenstored
|
|
|
|
;;
|
|
kvm)
|
|
systemctl start qemu-guest-agent
|
|
VPORT=$(find /dev/virtio-ports -type l -name '*.vport' 2>/dev/null|head -1)
|
|
;;
|
|
vmware)
|
|
systemctl stop ntpd
|
|
systemctl start vmtoolsd
|
|
|
|
;;
|
|
virtualpc|hyperv)
|
|
# Hyper-V is recognized as virtualpc hypervisor type. Boot args are passed using KVP Daemon
|
|
systemctl start hyperv-daemons
|
|
;;
|
|
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
|