Skip to content

Commit

Permalink
Handle dappnode install for Ubuntu
Browse files Browse the repository at this point in the history
  • Loading branch information
dappnodedev committed May 28, 2024
1 parent df4605b commit c3aa01c
Showing 1 changed file with 80 additions and 9 deletions.
89 changes: 80 additions & 9 deletions scripts/dappnode_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ LOGS_DIR="$DAPPNODE_DIR/logs"
CONTENT_HASH_FILE="${DAPPNODE_CORE_DIR}/packages-content-hash.csv"
LOGFILE="${LOGS_DIR}/dappnode_install.log"
MOTD_FILE="/etc/motd"
UPDATE_MOTD_DIR="/etc/update-motd.d"
DAPPNODE_PROFILE="${DAPPNODE_CORE_DIR}/.dappnode_profile"
# Get URLs
PROFILE_BRANCH=${PROFILE_BRANCH:-"master"}
Expand Down Expand Up @@ -186,16 +187,59 @@ dappnode_core_load() {
}

customMotd() {
if [ -f ${MOTD_FILE} ]; then
cat <<EOF >${MOTD_FILE}
___ _ _ _ _
| \ /_\ _ __ _ __| \| |___ __| |___
| |) / _ \| '_ \ '_ \ . / _ \/ _ / -_)
|___/_/ \_\ .__/ .__/_|\_\___/\__,_\___|
|_| |_|

generateMotdText

if [ -d "${UPDATE_MOTD_DIR}" ]; then
# Ubuntu configuration
generateMotdScript
fi
}

# Debian distros use /etc/motd plain text file
generateMotdText() {
# Check and create the MOTD file if it does not exist
if [ ! -f "${MOTD_FILE}" ]; then
touch "${MOTD_FILE}"
fi

# Write the ASCII art and welcome message as plain text
cat <<'EOF' >"${MOTD_FILE}"
___ _
| \ __ _ _ __ _ __ _ _ ___ __| |___
| |) / _` | '_ \ '_ \ ' \/ _ \/ _` / -_)
|___/\__,_| .__/ .__/_||_\___/\__,_\___|
|_| |_|
EOF
echo -e "$WELCOME_MESSAGE" >>"$MOTD_FILE"
echo -e "$WELCOME_MESSAGE" >>"${MOTD_FILE}"
}

# Ubuntu distros use /etc/update-motd.d/ to generate the motd
generateMotdScript() {

motd_script_file="${UPDATE_MOTD_DIR}/60-dappnode-info"
disabled_motd_dir="/etc/update-motd.d/disabled"

mkdir -p "${disabled_motd_dir}"

# Move all the files in /etc/update-motd.d/ to /etc/update-motd.d/disabled/
# Except for the files listed in "files_to_keep"
files_to_keep="00-header 50-landscape-sysinfo 90-updates-available 98-reboot-required"
for file in ${UPDATE_MOTD_DIR}/*; do
base_file=$(basename "${file}")
if [ -f "${file}" ] && ! echo "${files_to_keep}" | grep -qw "${base_file}"; then
mv "${file}" "${disabled_motd_dir}/"
fi
done

if [ ! -f "${motd_script_file}" ]; then
touch "${motd_script_file}"
fi

chmod +x "${motd_script_file}"

sh -c 'echo "#!/bin/sh" > ${motd_script_file}'
echo "cat ${MOTD_FILE}" >>"${motd_script_file}"
}

addSwap() {
Expand Down Expand Up @@ -290,6 +334,30 @@ installExtraDpkg() {
fi
}

# The main user needs to be added to the docker group to be able to run docker commands without sudo
# Explained in: https://docs.docker.com/engine/install/linux-postinstall/
addUserToDockerGroup() {
# UID is provided to the first regular user created in the system
USER=$(grep 1000 "/etc/passwd" | cut -f 1 -d:)

# If USER is not found, warn the user and return
if [ -z "$USER" ]; then
echo -e "\e[33mWARN: Default user not found. Could not add it to the docker group.\e[0m" 2>&1 | tee -a $LOGFILE
return
fi

if groups "$USER" | grep &>/dev/null '\bdocker\b'; then
echo -e "\e[32mUser $USER is already in the docker group\e[0m" 2>&1 | tee -a $LOGFILE
return
fi

# This step is already done in the dappnode_install_pre.sh script,
# but it's not working in the Ubuntu ISO because the late-commands in the autoinstall.yaml
# file are executed before the user is created.
usermod -aG docker "$USER"
echo -e "\e[32mUser $USER added to the docker group\e[0m" 2>&1 | tee -a $LOGFILE
}

##############################################
#### SCRIPT START ####
##############################################
Expand All @@ -315,9 +383,12 @@ if [ "$ARCH" == "amd64" ]; then
installSgx

echo -e "\e[32mInstalling extra packages...\e[0m" 2>&1 | tee -a $LOGFILE
installExtraDpkg
installExtraDpkg # TODO: Why is this being called twice?
fi

echo -e "\e[32mAdding user to docker group...\e[0m" 2>&1 | tee -a $LOGFILE
addUserToDockerGroup

echo -e "\e[32mCreating dncore_network if needed...\e[0m" 2>&1 | tee -a $LOGFILE
docker network create --driver bridge --subnet 172.33.0.0/16 dncore_network 2>&1 | tee -a $LOGFILE

Expand Down

0 comments on commit c3aa01c

Please sign in to comment.