| #!/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 | |
| log_it() { | |
| echo "$(date) $@" >> /var/log/cloud.log | |
| log_action_msg "$@" | |
| } | |
| # Restart journald for setting changes to apply | |
| systemctl restart systemd-journald | |
| # Restore the persistent iptables nat, rules and filters for IPv4 and IPv6 if they exist | |
| nftables="/etc/iptables/rules.nftables" | |
| if [ -e $nftables ] | |
| then | |
| nft -f $nftables | |
| fi | |
| 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 | |
| CMDLINE=/var/cache/cloud/cmdline | |
| TYPE=$(grep -Po 'type=\K[a-zA-Z]*' $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 | |
| if [ "$TYPE" == "cksnode" ] || [ "$TYPE" == "sharedfsvm" ]; then | |
| pkill -9 dhclient | |
| 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 | |
| date > /var/cache/cloud/boot_up_done |