File entrypoint.sh of Package grafana-container
#!/bin/bash
#set -euxo pipefail
USER=tester
HOMEUSER=/home/${USER}
PS1NAME=GRAFANA_CONTAINER
HPS1="\e[01;34m [ \t ] \e[01;31m \u@\h \e[01;32m ${PS1NAME} \e[01;34m\w \e[m \n\e[01;31m \e[m# "
create_user() {
useradd -m -N -s /bin/bash -u 1000 ${USER}
mkdir -p ${HOMEUSER}/.ssh
touch ${HOMEUSER}/.ssh/authorized_keys
chmod 700 ${HOMEUSER}/.ssh
chmod 600 ${HOMEUSER}/.ssh/authorized_keys
echo "export PS1='${HPS1}'" >> ${HOMEUSER}/.bashrc
chown -R ${USER} ${HOMEUSER}
# Simple password for tester user
passwd tester <<EOF
opensuse
opensuse
EOF
pwconv
}
# No permit to login as root
# default port for ssh container access is 16022
configure_ssh() {
echo -e "Port 16022\nPermitEmptyPasswords no\nPermitRootLogin no" >> /etc/ssh/sshd_config
/usr/sbin/sshd-gen-keys-start
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
/usr/sbin/sshd -f /etc/ssh/sshd_config
}
# shortcut for podman runlabel calls
if [ $(basename "$2") = 'label-install' ] || [ $(basename "$2") = 'label-uninstall' ];then
exec "$@"
exit 0
else
echo "no parameter label-install label-uninstall found"
fi
TEST=`grep tester /etc/passwd`
if [ -z "$TEST" ]; then
create_user
else
echo "User already present, skipping..."
fi
TEST=`grep 16022 /etc/ssh/sshd_config`
if [ -z "$TEST" ]; then
configure_ssh
else
echo "SSH already configured, skipping..."
fi
# Adjust PS1 for root user
if [ ! -f "/root/.bashrc" ]; then
echo "export PS1='${HPS1}'" >> /root/.bashrc
else
echo "PS1 for root already set, skipping..."
fi
# wget localhost:9090/config --output-document=-
#prometheus --config.file=/etc/prometheus/prometheus.yml &
# FIX perm dir
chown grafana.grafana /var/log/grafana
mkdir /var/run/grafana
mkdir /etc/grafana/provisioning/plugins
mkdir /etc/grafana/provisioning/datasources
mkdir /etc/grafana/provisioning/notifiers
chown grafana.grafana -R /var/run/grafana /etc/grafana/provisioning/
# start grafana-server with grafana user
sudo -u grafana -g grafana sh -c 'source /etc/sysconfig/grafana-server ; /usr/sbin/grafana-server -homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning &'
# use for devel
sleep infinity